What is a good way to practice coding for the First competition?

I know Java and some C++, but I mostly code in java. This is my first time participating in a FIRST competition and I am looking for a good way to practice.

Docs.WPILib.org is the documentation. Really take a look at the simulation stuff, because it’s upgraded for 2021 and it looks very helpful.


I finished reading the documentation (thank you for recommending it). Is there any guide for learning how to spin a motor or anything more complex?

What kind of motor and controller?

1 Like

Here is a cool cheep kit you can do at home

Pololu - Romi Robot Kit for FIRST - Red.


In the documentation, this section is all about spinning a motor. The Romi are incredible to learn this and many more advanced techniques too.

There are also two simulator examples in Wpilib that you can use to learn how to do some things even without a robot.

1 Like

I think it is called a spark brushless motor

Oof. Those aren’t well supported in the simulation yet.

1 Like

While those motors are not supported as a CAN interface, if you want to learn how to program a robot, you can use the regular spark and PWM (or the Romi). This will be the same as using those controllers on a real robot in PWM mode. If you want to learn about programming a robot using CAN, you can try learning to use the CTRE CAN simulator interface. It is similar (but not the same) as the Rev CAN interface.

Then what are some good motors to practice with?

Well for what you’re doing, you do probably want to start with the Spark ( not spark max). It’s a PWM output so it has built in support in both the simulator and the real robot. Like @Mr.R_2 said, you’ll probably want to move to a CAN interface at some point but for right now just to get some output, stick with PWM.

Thanks for the help. One last thing: are there any other tutorials for programming a robot you would recommend?

Nothing in particular I can recommend from experience besides what you can find on the docs. I can hardly keep track of the resources being added to those docs.