--- image: https://i.imgur.com/tFW9IxW.png --- # Learning to Program with Java If you never programmed at all before or if you are interested in starting with the basics, spend the first few months focused on learning Java. Learn the syntax and understand how everything works. You’ll need to be able to create classes, create and call methods, use interfaces as well as know how inheritance works, before you can go to the next step. These are the basics of Java, and you’ll use them extensively when developing Android apps. :exclamation: :point_right: [Start with these Java Interactive Guides](https://www.ktbyte.com/java-tutorial/book#chapters) or these [online Java Programming Tutorials](http://tutorials.jenkov.com/java) ## Where to Start Check out the links below first to brush up on Java: * [Start with these Java Interactive Guides](https://www.ktbyte.com/java-tutorial/book#chapters) * [Great online Java Programming Tutorials](http://tutorials.jenkov.com/java) ## Beginner Resources There are plenty of other helpful resources for learning Java: * [Programming by doing Java](http://programmingbydoing.com/) - Great step-by-step guide with challenges along the way * [TutsPlus Java Overview](http://mobile.tutsplus.com/tutorials/android/java-tutorial/) - Solid Java overview tutorials * [CodingBat Java Exercises](http://codingbat.com/) - Exercises to practice Java * [TutorialsPoint Java Guide](http://www.tutorialspoint.com/java/java_basic_syntax.htm) * [Java tutorial](https://hackr.io/tutorials/learn-java) - A programming community & a great place to find the best online programming courses and tutorials. ## Books For a more in-depth look, you can also check out books (available online or in print): * [Head First Java Book](http://www.amazon.com/Head-First-Java-2nd-Edition/dp/0596009208) * [Java: A Beginners Guide](http://www.amazon.com/Java-Beginners-Guide-Herbert-Schildt/dp/0071809252) * [Free Java Book](http://java2s.com/Book/Java/CatalogJava.htm) - Solid online book ## Additional Learning Resources * [Best Ways to Learn Java Overview](http://www.onvard.com/tracks/best-way-to-learn-java) - Overview article * [Udemy Free Java Course](https://www.udemy.com/java-tutorial/) - Free videos to learn Java * [Java Language Fundamentals](http://en.wikibooks.org/wiki/Java_Programming/Language_Fundamentals) * [The Java help subreddit](http://www.reddit.com/r/javahelp) * [The official Oracle Java tutorials](http://docs.oracle.com/javase/tutorial/getStarted/index.html) ## Intermediate Topics Be sure to check out these particular Java topics as well: * [Dealing with Exceptions](http://en.wikibooks.org/wiki/Java_Programming/Exceptions) * [Understanding Threads and Runnables](http://en.wikibooks.org/wiki/Java_Programming/Threads_and_Runnables) * [Using Interfaces](http://en.wikibooks.org/wiki/Java_Programming/Interfaces) * [Using Event Listeners](http://docs.oracle.com/javase/tutorial/uiswing/events/intro.html) * [Creating your own Callbacks and Listeners](http://stackoverflow.com/a/1477229/362298)