Follow these tutorials to build and run programs that successively demonstrate more features of the language and object-oriented programming (OOP) techniques. Tutorials Point offers text-based learning and includes descriptions of everything you might want to do from learning hello-world to doing multiple inheritance and polymorphism. It compiles and runs programs on the command-line but this can easily be done in VSCode. The youtube tutorials use eclipse by default. Several topics are duplicated between the following pages, so choose the source that works best for you: * Tutorials Point: http://www.tutorialspoint.com/java/java_basic_syntax.htm * thenewboston Video Tutorials: https://www.youtube.com/playlist?list=PLFE2CE09D83EE3E28 * John Purcell Video Tutorials: https://www.youtube.com/playlist?list=PL9DF6E4B45C36D411 * Java tutorial for beginners, with coding challenges: http://beginnersbook.com/java-tutorial-for-beginners-with-examples/ * Interactive Java Tutorial (code online): http://www.learnjavaonline.org/ (not as good, but has code interactivity) * Oracle Java Tutorials: https://docs.oracle.com/javase/tutorial/java/index.html Your goal should be to cover at least these topics: * basic syntax * variables * strings * arrays * loops * conditionals * file IO * classes * inheritance * overloading. {{{ #!div style="border:1pt solid;color:blue" For some programming exercises/challenges, use the programming prompts [wiki:ProgrammingPrompts here]. }}} == Learn how to build a command-based robot project Go [wiki:ControlSystems/SoftwareTeam/Training/WPILib here] to learn more about command-based programming. The major distinguishing feature of the command-based robot project is that subsystems and commands are their own java classes, and that commands are "scheduled" to be run in a continuous loop during the match. Commands perform a sequence of actions, and these actions may be taken on subsystems. Subsystems are code that control the actual hardware of the robot itself.