= Software Training = === Introduction === * [wiki:ControlSystemsOverview Software 101] === Java === All robot programming is done in the Java programming language. See [wiki:Software/WhyJava here] for why we program in Java. If you don't know Java yet, these training links will help: * [wiki:BeginnerSoftwareVideos Java Tutorial Videos] * [http://www.sololearn.com/Play/Java/# Sololearn] Computer Based Java Training * [wiki:JavaWPI_Training Java Training]: links to several other tutorials which help teach Java * [wiki:SoftwareTrainingBeginner Beginning Exercises] * [wiki:ProgrammingPrompts Training Prompts]: more Java programming exercises * [wiki:Exercises Object Oriented Programming] === Robocode === Once you have a solid foundation in Java, you can use the Robocode to hone your skills in a fun way. Robocode creates a virtual robot arena on your computer where you can program virtual robots and battle them against pre-programmed robots supplied with the simulator or robots programmed by your friends. * [wiki:Setting_Up_Robocode Robocode Resources] * [http://robowiki.net/ Robowiki] === Java Interfacing === Robots operate real world and must be able to sense their environment and manipulate it.  The !ZebraZero platform and exercises help you learn to use Java to interface with sensors and control motors [[BR]] * [wiki:ZebraZeroTraining Zebra Zero Training] === WPILib === When you've mastered Robocode and are ready to start programming FRC robots, you'll need to set up a suitable development environment, learn how to access the robot software, understand the WPILib environment, and learn how to load and run code on a robot. * Basic * [http://wpilib.screenstepslive.com/s/currentCS/m/java ScreenStepsLive] describes the process; you can also follow some video tutorials: [https://www.youtube.com/watch?v=OyOcsmkp-uk here] or [https://www.youtube.com/watch?v=dNXu97q08uI here] or [https://www.youtube.com/watch?v=tlZexc02TTc here] * STEMRobotics has a nice tutorial [http://stemrobotics.cs.pdx.edu/node/4196 here] * Building your first robot with [https://www.youtube.com/watch?v=hbPVbdkpkls RobotBuilder] or see [https://www.youtube.com/watch?v=ef-jqacGUFU here] * Video tutorial: your first (iterative) robot program [https://www.youtube.com/watch?v=pZkDhVKDG-g here] * For the brave: a 1-hour '''comprehensive''' [https://www.youtube.com/watch?v=tR8wtXd2Ack Crash Course] in FRC programming in Java. * [https://wpilib.screenstepslive.com/s/4485/m/13809/l/145307-creating-your-benchtop-test-program Hello FRC World] - the simplest robot example * Intermediate * [http://wiki.team2537.com/wiki/Setting%20Up%20Git Setting up git] Setting up the Git DVCS (how to access the robot code) * [wiki:SoftwareTrainingIntermediate Intermediate Training] * Advanced * [wiki:AdvancedTraining Advanced Training] === Future Planning === * [wiki:ControlSystemTrainingCurriculum Control System Training Curriculum Workspace]