Programming Basics
Almost all teams use Java to program their robots. This is done through Android Studio and requires the downloading of a special SDK. The programming can be difficult, but in exchange is very versatile and effective. Prior programming experience is helpful, but all which is necessary for the basics is if statements and while loops. Extensive knowledge of functions is helpful as well for more advanced coding. You will also want some form of version control, typically through github. This will act both to store backups and previous versions of your code and for collaboration between multiple programmers.
Programming Resources
FTC has a set of tutorials for programming, link here. The first video talks about choosing programming languages. From our experience, the block programming language is slower to run, less efficient and not even particularly easy to use. However, that was two years ago. If you have absolutely no experience programming, it could be worth a shot. However, I would still recommended to use Android Studio. Aside from installing Java, Android Studio, and the SDK, this tutorial goes over defining and moving motors, using a basic sensor and downloading programs onto the phones which will ultimately control the robot. Note that the code which is given assumes you are using a drivetrain with two normal wheels in the back and two omni wheels in the front. Aside from this, there is a plethora of templates included within the SDK which includes code for sensors, encoders and more. These resources should be enough to get your robot moving and perhaps performing basic tasks.