== Java Gym == All 2537 robot programming is done in the Java programming language. See [wiki:Software/WhyJava here] for why we program in Java. Many of the Getting Started examples involved cutting and pasting code, but to become a skilled software engineer, you'll need to be able to read and write code effectively on your own. Spend some time in the Java Gym strengthening your knowledge of Java these training links will help (and they'll help if you take AP Computer Science too): * [wiki:BeginnerSoftwareVideos Java Tutorial Videos] * [http://www.sololearn.com/Play/Java/# Sololearn] and [https://www.tutorialspoint.com/java/index.htm Tutorials Point] Computer Based Java Training * [https://www.onlinegdb.com/ Online GDB] Free online editor/compiler/debugger * [wiki:JavaWPI_Training Java Training]: links to several other tutorials which help teach Java * [wiki://ControlSystems/SoftwareTeam/Training/GettingStarted/JavaExercises Beginning Exercises] * [wiki:ProgrammingPrompts Training Prompts]: more Java programming exercises * [https://introcs.cs.princeton.edu/java/11cheatsheet/ Princeton Java CheatSheet] == Robocode == To practice your Java skills in a fun way, 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] * A fancier challenge courtesy of MIT: [https://www.battlecode.org/#/ BattleCode]