Java Developer Roadmap

157 Free Learning Resources .

I am currently writing a java guide where we build a complex application together.
You can view the first chapter of the guide here: Java Developer Roadmap - Part One.


CategoryDescriptionLink
Setupjdk8 downloadhttp://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
SetupEclipse Downloadhttps://www.eclipse.org/downloads/
SetupIntellij Downloadhttps://www.jetbrains.com/idea/download/
SetupNetbeans Downloadhttps://netbeans.org/downloads/
Setupjedit (Texteditor)http://www.jedit.org
BasicsHello Worldhttps://docs.oracle.com/javase/tutorial/getStarted/cupojava/index.html
BasicsHello Worldhttp://www.learnjavaonline.org/en/Hello,_World!
BasicsHello Worldhttps://www.geeksforgeeks.org/beginning-java-programming-with-hello-world-example/
BasicsSyntaxhttps://www.tutorialspoint.com/java/java_basic_syntax.htm
BasicsIntroduction to Java https://www.ibm.com/developerworks/java/tutorials/j-introtojava1/index.html
BasicsIntroduction to Java http://www.visionsdeveloper.com/tutorial/java/java-basic-program.jsp
BasicsIntroduction to Java https://data-flair.training/blogs/basic-java-syntax/
BasicsDatatypeshttps://cs.fit.edu/~ryan/java/language/java-data.html
BasicsDatatypeshttps://www.geeksforgeeks.org/data-types-in-java/
BasicsDatatypeshttps://en.wikibooks.org/wiki/Java_Programming/Primitive_Types
BasicsOperatorshttps://www.tutorialspoint.com/java/java_basic_operators.htm
BasicsOperatorshttps://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html
Basicsif statementhttps://docs.oracle.com/javase/tutorial/java/nutsandbolts/if.html
Basicsif statementhttps://www.javatpoint.com/java-if-else
Basicsif statementhttps://www.javamex.com/tutorials/java/if.shtml#.W3bHmBxCQ5k
Basicswhile loophttps://docs.oracle.com/javase/tutorial/java/nutsandbolts/while.html
Basicswhile loophttps://beginnersbook.com/2015/03/while-loop-in-java-with-examples/
Basicsfor loophttp://www.learnjavaonline.org/en/Loops
Basicsfor loophttps://docs.oracle.com/javase/tutorial/java/nutsandbolts/for.html
Basicsjava loopshttps://www.baeldung.com/java-loops
Basicsfor each loophttps://www.geeksforgeeks.org/for-each-loop-in-java/
Basicsfor each loophttps://docs.oracle.com/javase/8/docs/technotes/guides/language/foreach.html
Basicsarrayshttps://www.tutorialspoint.com/java/java_arrays.htm
Basicsarrayshttps://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html
Basicsarrayshttps://www.learnjavaonline.org/en/Arrays
DatastructuresCollectionshttps://www.tutorialspoint.com/java/java_collections.htm
DatastructuresCollectionshttps://beginnersbook.com/java-collections-tutorials/
DatastructuresCollectionshttp://tutorials.jenkov.com/java-collections/index.html
OOPJava Objectshttps://www.tutorialspoint.com/java/java_object_classes.htm
OOPJava Objectshttps://www.learnjavaonline.org/en/Objects
OOPJava Objectshttps://www.javaworld.com/article/2979739/learn-java/java-101-classes-and-objects-in-java.html
OOPInterfaceshttps://www.tutorialspoint.com/java/java_interfaces.htm
OOPInterfaceshttps://docs.oracle.com/javase/tutorial/java/IandI/createinterface.html
OOPAbstract Classeshttps://docs.oracle.com/javase/tutorial/java/IandI/abstract.html
OOPAbstract Classeshttps://www.javatpoint.com/abstract-class-in-java
OOPAbstract Classeshttps://www.geeksforgeeks.org/abstract-classes-in-java/
OOPAbstract Classeshttps://medium.com/modernnerd-code/java-for-humans-abstract-classes-interfaces-aa4b2ee37418
OOPWhen to use an abstract class / interfacehttps://dzone.com/articles/when-to-use-abstract-class-and-intreface
OOPOOP Basicshttp://www.ntu.edu.sg/home/ehchua/programming/java/J3a_OOPBasics.html
OOPOOP Basicshttps://docs.oracle.com/javase/tutorial/java/concepts/
OOPOOP Basicshttps://www.edureka.co/blog/object-oriented-programming/
Working with datesjava8 datetimehttps://www.oracle.com/technetwork/articles/java/jf14-date-time-2125367.html
Working with datesjava8 datetimehttps://www.baeldung.com/java-8-date-time-intro
Working with datesjava8 datetimehttps://www.tutorialspoint.com/java8/java8_datetime_api.htm
StringBuilderStringBuilderhttps://docs.oracle.com/javase/tutorial/java/data/buffers.html
StringBuilderStringBuilderhttps://www.tutorialspoint.com/java/lang/java_lang_stringbuilder.htm
StringBuilderStringBuilderhttps://examples.javacodegeeks.com/core-java/lang/stringbuilder/java-stringbuilder-example/
Exception HandlingException Handlinghttps://beginnersbook.com/2013/04/try-catch-in-java/
Exception HandlingException Handlinghttps://www.learnjavaonline.org/en/Try_and_Catch
Exception HandlingException Handlinghttps://docs.oracle.com/javase/tutorial/essential/exceptions/
Exception HandlingException Typeshttps://www.geeksforgeeks.org/types-of-exception-in-java-with-examples/
Exception HandlingList of BuiltIn Exceptionshttps://programming.guide/java/list-of-java-exceptions.html
Exception HandlingException Handlinghttps://beginnersbook.com/2013/04/java-exception-handling/
Exception Handlingtry with ressourceshttps://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html
Exception Handlingtry with ressourceshttps://www.baeldung.com/java-try-with-resources
Exception Handlingtry with ressourceshttps://programming.guide/java/try-with-resources.html
BasicsJava Basic IOhttps://docs.oracle.com/javase/tutorial/essential/io/scanning.html
BasicsJava Basic IOhttp://javatutorialhq.com/java/util/scanner-class-tutorial/
BasicsJava Basic IOhttps://docs.oracle.com/javase/tutorial/essential/io/
BasicsJava Basic IOhttps://www.tutorialspoint.com/java/io/index.htm
BasicsHow to compile a programhttps://www.oracle.com/technetwork/java/compile-136656.html
BasicsHow to compile a programhttp://www.learnjavaonline.org/en/Compiling_and_Running_with_Arguments
BasicsHow to compile a programhttps://www.avajava.com/tutorials/lessons/how-do-i-compile-and-execute-a-java-class.html
GUISwinghttps://docs.oracle.com/javase/tutorial/uiswing/
GUISwinghttp://zetcode.com/tutorials/javaswingtutorial/
GUISwinghttps://www.javatpoint.com/java-swing
Functional javaLambda Expressionshttps://www.tutorialspoint.com/java8/java8_lambda_expressions.htm
Functional javaLambda Expressionshttp://www.oracle.com/webfolder/technetwork/tutorials/obe/java/Lambda-QuickStart/index.html
Functional javaLambda Expressionshttps://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html
Functional javaLambda Expressionshttps://www.baeldung.com/java-8-lambda-expressions-tips
Working with Collection'sIteratorhttps://www.geeksforgeeks.org/iterators-in-java/
Working with Collection'sIteratorhttps://beginnersbook.com/2014/06/java-iterator-with-examples/
Working with Collection'sJava8 streamshttps://stackify.com/streams-guide-java-8/?utm_referrer=https%3A%2F%2Fwww.google.com%2F
Working with Collection'sJava8 streamshttps://winterbe.com/posts/2014/07/31/java8-stream-tutorial-examples/
Working with Collection'sJava8 streamshttps://www.oracle.com/technetwork/articles/java/ma14-java-se-8-streams-2177646.html
Working with Collection'sJava8 streamshttps://www.tutorialspoint.com/java8/java8_streams.htm
DebuggingDebugging (Eclipse)https://www.eclipse.org/community/eclipse_newsletter/2017/june/article1.php
DebuggingDebugging (Eclipse)https://www.wikihow.com/Debug-with-Eclipse
DebuggingDebugging (Eclipse)https://dzone.com/articles/tips-and-tricks-debugging-ecli
DebuggingDebugging (Netbeans)http://www.cs.columbia.edu/~cmurphy/summer2008/1007/netbeans/7_debugging.html
DebuggingDebugging (Netbeans)http://www.itk.ilstu.edu/faculty/bllim/itk168/Labs/NetBeans_DebuggingW4/NetBeans_DebuggingW4_New.htm
DebuggingDebugging (IntellIj)https://www.jetbrains.com/help/idea/debugging-your-first-java-application.html
DebuggingDebugging (IntellIj)https://dzone.com/articles/how-to-debug-java-with-intellij-breakpoints-evalua
DebuggingDebugging (IntellIj)http://blog.javafortesters.com/2016/07/how-to-debug-java-with-intellij.html
TestingJUnithttps://www.tutorialspoint.com/junit/
TestingJUnithttp://www.vogella.com/tutorials/JUnit/article.html
TestingJUnithttps://www.javatpoint.com/junit-tutorial
NetworkingJava Network Programminghttps://docs.oracle.com/javase/tutorial/networking/sockets/index.html
NetworkingJava Network Programminghttps://www.baeldung.com/a-guide-to-java-sockets
NetworkingJava Network Programminghttps://www.tutorialspoint.com/java/java_networking.htm
NetworkingJava Network Programminghttps://www.oracle.com/webfolder/technetwork/tutorials/obe/java/SocketProgramming/SocketProgram.html
ConcurrencyJava Concurrencyhttps://docs.oracle.com/javase/tutorial/essential/concurrency/
ConcurrencyJava Concurrencyhttp://www.vogella.com/tutorials/JavaConcurrency/article.html
ConcurrencyJava Concurrencyhttps://www.baeldung.com/java-concurrency
Basicsvarargshttps://www.javatpoint.com/varargs
Basicsvarargshttps://www.baeldung.com/java-varargs
Problem SolveHacker Rankhttps://www.hackerrank.com/
Problem SolveHacker Earthhttps://www.hackerearth.com/
Problem SolveCodeforceshttp://codeforces.com/
Problem SolveCodilityhttps://codility.com/
Problem SolveTop Coderhttps://www.topcoder.com/
Problem SolveSpojhttp://www.spoj.com/
Problem SolveInterview Bithttps://www.interviewbit.com/
Problem SolveLeet Codehttps://leetcode.com/
CourseJava Programming Basics by Googlehttps://udacity.com/course/java-programming-basics--ud282
CourseObject Oriented Programming in Javahttps://www.udacity.com/course/object-oriented-programming-in-java--ud283
CourseObject-Oriented programming with Java, part I by Helsinki Universityhttp://moocfi.github.io/courses/2013/programming-part-1/
CourseObject-Oriented programming with Java, part II by Helsinki Universityhttp://moocfi.github.io/courses/2013/programming-part-2/
Problem SolvePractice ithttps://practiceit.cs.washington.edu/
DebuggingJava Assertionshttps://docs.oracle.com/javase/7/docs/technotes/guides/language/assert.html
DebuggingJava Assertionshttps://www.javatpoint.com/assertion-in-java
DebuggingWhen to use Assertionshttps://www.geeksforgeeks.org/assertions-in-java/
Web DevelopmentWeb development basicshttps://www.journaldev.com/1854/java-web-application-tutorial-for-beginners
Web DevelopmentIntroduction to java web developmenthttp://www.vogella.com/tutorials/JavaWebTerminology/article.html
Garbage CollectorJava Garbage Collector Basicshttps://www.oracle.com/webfolder/technetwork/tutorials/obe/java/gc01/index.html
Garbage CollectorJava Garbage Collectior Best Practiceshttps://dzone.com/articles/java-garbage-collection-best-practices-tutorials-and-more
Garbage CollectorGarbage Collector Implementationshttps://www.baeldung.com/jvm-garbage-collectors
AutoboxingAutoboxing and Unboxinghttps://docs.oracle.com/javase/tutorial/java/data/autoboxing.html
AutoboxingAutoboxing and Unboxing with Exampleshttps://beginnersbook.com/2014/09/java-autoboxing-and-unboxing-with-examples/
AutoboxingWhat is Autoboxing and Unboxing?https://javarevisited.blogspot.com/2012/07/auto-boxing-and-unboxing-in-java-be.html
Primitive ConversionsJava Primitive Conversionshttps://www.baeldung.com/java-primitive-conversions
Cheat SheetJava Fundamental Cheat Sheethttps://www.cheatography.com/sschaub/cheat-sheets/java-fundamentals/
Cheat SheetJava Programming Cheat Sheethttps://introcs.cs.princeton.edu/java/11cheatsheet/
BasicsMethod Overloadinghttps://beginnersbook.com/2013/05/method-overloading/
BasicsMethod Overloading in Javahttps://www.javatpoint.com/method-overloading-in-java
Regular ExpressionsRegular Expressions in Javahttp://www.vogella.com/tutorials/JavaRegularExpressions/article.html
Regular ExpressionsRegular Expressionshttps://www.tutorialspoint.com/java/java_regular_expressions.htm
Regular ExpressionsRegEx Cheat Sheethttps://zeroturnaround.com/rebellabs/java-regular-expressions-cheat-sheet/
DatabaseUsing Prepared Statementshttps://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html
DatabaseJava PreparedStatementhttps://www.javatpoint.com/PreparedStatement-interface
DatabasePrepared Statement Examplehttps://www.tutorialspoint.com/javaexamples/jdbc_prepared_statement.htm
DatabaseJDBC Basicshttps://docs.oracle.com/javase/tutorial/jdbc/basics/index.html
DatabaseJDBC Tutorialhttps://www.javatpoint.com/java-jdbc
DatabaseMkyong JDBC Tutorialhttp://www.mkyong.com/tutorials/jdbc-tutorials/
Web DevelopmentJSF (Java Server Faces)http://www.vogella.com/tutorials/JavaServerFaces/article.html
Web DevelopmentJSF (Java Server Faces) Tutorialhttps://www.tutorialspoint.com/jsf/
Web DevelopmentJSF 2.0 Tutorialhttp://www.mkyong.com/tutorials/jsf-2-0-tutorials/
Exception HandlingWhen to throw an Runtime Exceptionhttps://docs.oracle.com/javase/tutorial/essential/exceptions/runtime.html
Exception HandlingEffictive NullPointerException Handlinghttps://www.javaworld.com/article/2072719/effective-java-nullpointerexception-handling.html
Exception HandlingHow to handle NullPointerExceptionhttps://examples.javacodegeeks.com/java-basics/exceptions/java-lang-nullpointerexception-how-to-handle-null-pointer-exception/
GUIGetting started with JavaFXhttps://docs.oracle.com/javafx/2/get_started/jfxpub-get_started.htm
GUIJavaFX Tutorialhttps://www.tutorialspoint.com/javafx/
GUIJavaFX Tutorialhttp://tutorials.jenkov.com/javafx/index.html
GUIIntroduction to JavaFXhttps://www.baeldung.com/javafx
PropertiesJava Properties Tutorialhttps://docs.oracle.com/javase/tutorial/essential/environment/properties.html
PropertiesGetting started with Java Propertieshttps://www.baeldung.com/java-properties
ScannerReading a text file using Scannerhttps://stackoverflow.com/questions/13185727/reading-a-txt-file-using-scanner-class-in-java
ExampleRead a text file line by linehttps://www.mkyong.com/java/java-read-a-text-file-line-by-line/
EnumsJava Enumshttp://tutorials.jenkov.com/java/enums.html
EnumsEnums in Javahttps://www.geeksforgeeks.org/enum-in-java/
EnumsUsing Java Enumshttps://dzone.com/articles/using-java-enums
EnumsA Guide to Java Enumshttps://www.baeldung.com/a-guide-to-java-enums