This year, the programming subteam will be making the switch from Java to Kotlin. This paper explains the benefits of this move. If you're already proficient in Java, Python, or any similar language, the best place to get acquanited with Kotlin is from the Kotlin Koans.
If you're a beginner, most Kotlin tutorials you'll find online are either designed for people who already know Java, or are looking to do Android development. The best resource for this situation is Head First Kotlin. Here is a pretty good Youtube tutorial that you can follow along with as well.
Before you start the rest of your prog training, you'll need to demonstrate proficiency good at Kotlin. To make sure everyone is on the same page during programming discussions, write a program that meets the following requirements:
Item, and subclasses that extend it
Itemobjects, that the user can manipulate and view
Although the official development environment is VSCode, you should use IntelliJ for most of your development.
For collaboration, we use Github to share code. When you first start learning Git and Github, it's important to know the difference between them:
Here is a slide deck that explains the basics of Git.
After you understand general Git concepts, install GitHub Desktop and read some of the documentation here.
Then, to verify that your Git knowlegde:
WPILib is the library that lets you control the robot with Kotlin. Knowledge of WPILib features and how to use them is essential for the programming subteam. You can access the documentation is here.
Here is a short video that'll help you understand PID control. WPILib can do PID for you, but understanding how it works will allow you to better tune your constants and debug issues.
This explains trajectory tracking using WPILib.
This explains a robot project's general structure, and although all the info is in the WPILib docs, this is just another way