Java is a general-purpose, class-based, object-oriented programming language. Over the years, it has evolved from humble beginnings to power a large share of today’s digital world, by providing the reliable platform upon which many services and applications are built. This roadmap would help you as a developer to get started on learning about Java programming language.
To make your journey easier, pick a path
Bash-Linux Commands
Mark as done
Done
Bash-Linux Commands
Understanding basic command lines for bash-linux command processors should be the starting point. Bash is a command processor that typically runs in a text window where the user types commands that cause actions. Learn more about this using the resources below.
Linux Command Line Basics
Linux Command Line for Beginners
Beginner to Expert: Linux Command Line Full Course
Linux Mastery: Mastering the Command Line
GitHub Fundamentals and Git Basics
Mark as done
Done
GitHub Fundamentals and Git Basics
GitHub is the largest online software development platform used for storing, tracking, and collaborating on software projects. Git on the other hand, is a free and open-source version control system and DevOps tool used for source code management. Learn how to use Git and GitHub efficiently to manage your personal and professional software development projects.
Git Beginner Tutorial
Introduction to Git & GitHub - Coursera
The Ultimate GitHub Course - Udemy
Conditionals and Loops
Mark as done
Done
Conditionals and Loops
A conditional statement is an expression that produces a true or false result. Loops repeats a set of instructions for many number of times. Learn more.
Conditionals - Free Interactive Java Tutorial
Java Programming - Conditional Statements
Java Loops Tutorial
Conditionals and Control Flow Cheatsheet
Java For Loop with Examples optional
Introduction to Loops in Java optional
HTTP / HTTPS
Mark as done
Done
HTTP / HTTPS
The Hypertext Transfer Protocol (HTTP) is an application layer protocol designed to transfer information between networked devices. Hypertext Transfer Protocol Secure (HTTPS) is an extension of the Hypertext Transfer Protocol. It is used for secure communication over a computer network. Learn more.
HTTP Documentation
What is HTTP?
What is HTTPS? Definitions and Workings
HTTP vs HTTPS: Difference between Both
What is HTTP Protocol optional
Data Structures and Algorithms
Mark as done
Done
Data Structures and Algorithms
A data structure is a named location that can be used to store and organize data. An algorithm is a collection of steps to solve a particular problem. Learning data structures and algorithms allow one to write efficient and optimized computer programs. Learn more.
Data Structures and Algorithms using Java
Understanding Data Structures and Algorithms in Java
Data Structures and Algorithm PDF optional
Data Structures and Algorithms for Beginners optional
Data Structures and Algorithm Bootcamp
Data types, variables
Mark as done
Done
Data types, variables
A data type is an attribute of a variable which tells the compiler or interpreter how the programmer intends to use the variable. Variable in Java is a data container that saves the data values during Java program execution. Learn more.
Java Data Types
Java Tutorial - Basic Data Types and Variables
Variables in Java
Introduction to Variables in Java
Functions/Methods
Mark as done
Done
Functions/Methods
The word "method" in Java refers to the same kind of thing that the word "function" is used for in other languages. Basically, a "method" is a function that belongs to a class. A function is a reusable portion of a program, sometimes called a procedure or subroutine. Learn more.
Functions - Free Interactive Java Tutorial
Java Methods with Examples
What are Methods, Functions and Procedures?
Defining Functions and Methods
Working with files
Mark as done
Done
Working with files
A file is a named location that can be used to store related information. Learn more about this in the resources below.
Java Files with Examples
File Handling in Java
Working with Files in Java optional
APIs
Mark as done
Done
APIs
In Java, APIs (Application Programming Interface) are a collection of packages that programmers can import into their programs. Learn more from the resources below.
What is Java API and Its Advantages
APIs in Java
How Does APIs in Java Work
Java API Tutorial for Beginners
OOP (Object Oriented Programming)
Mark as done
Done
OOP (Object Oriented Programming)
OOP stands for Object-Oriented Programming. It is a programming paradigm where everything is represented as an object. Learn more.
Java OOP (Object Oriented Programming)
Object Oriented Programming Principles in Java
Object Oriented Programming in Java
Interfaces
Mark as done
Done
Interfaces
In Java, an interface is an abstract type that is used to specify a behavior that classes must implement. Learn more.
Java Interface Tutorial
Learn Interfaces in Java
What are interfaces in Java? optional
Classes
Mark as done
Done
Classes
A class, in Java, is a template used to create objects and to define object data types and methods. Learn more.
Java Classes and Objects
Java Classes and Objects Explained
Understanding Java Classes & Objects optional
Java Class and Objects with Examples
Exception Handling
Mark as done
Done
Exception Handling
In Java, Exception Handling is an effective means to handle runtime errors so that the regular flow of the application can be preserved. Learn more.
What is an Exception?
Exception Handling in Java
Java Exceptions - Try, Catch
Fundamentals of Exception Handling optional
Packages
Mark as done
Done
Packages
In Java, packages are used to organize and group related classes. Learn more.
Packages in Java and How to use them
How to Create and Use Packages in Java
Packages in Java Tutorial
A Tutorial on Java Packages optional
JVM
Mark as done
Done
JVM
A Java virtual machine is a virtual machine that enables a computer to run Java programs as well as programs written in other languages that are also compiled to Java bytecode. Learn more.
How JVM Works
JVM Architecture Explained
Java Virtual Machine Tutorial optional
Java JDK, JRE & JVM Explained
Streams
Mark as done
Done
Streams
In Java, a Stream can be defined as a sequence of elements from a source. The source of elements here refers to a Collection or Array that provides data to the Stream. Learn more.
Java Stream API with Examples
Stream in Java
Java Streams Tutorial
Threads
Mark as done
Done
Threads
In Java, a thread can simply be defined as the path followed when executing a program. Learn more.
Introduction to Threads
Multithreading in Java
Basics: All About Java Threads
Java Generics
Mark as done
Done
Java Generics
Java Generics allows us to create a single class, interface, and method that can be used with different types of data (objects). Learn more.
What are Generics in Java
Java Generics Explained
Getting Started with Generics in Java
Java Generics Tutorial optional
Networking and sockets
Mark as done
Done
Networking and sockets
In Java, Networking is a concept of connecting two or more computing devices together so that we can share resources. A socket in Java is one endpoint of a two-way communication link between two programs running on the network. Learn more.
Java Networking Tutorial
Java Socket Programming
Understanding Socket Programming in Java
Networking with Java optional
All You Need to Know on Socket Programming optional
Serialization
Mark as done
Done
Serialization
In Java, Serialization is the conversion of the state of an object into a byte stream. Learn more.
Introduction to Java Serialization
What is Serialization?
Object Serialization in Java
Serialization and Deserialization
Memory Management
Mark as done
Done
Memory Management
In Java, Memory Management is the process of allocating and deallocating memory to java objects. Learn more.
Master Guide to Java Memory Management
Understanding Memory Management
Memory Management - Java Stack vs Heap
Java Memory Management and Garbage Collection optional
Collection framework
Mark as done
Done
Collection framework
The Java collections framework works more as a library than a framework and is basically a set of classes and interfaces that implement commonly reusable collection data structures. Learn more.
Introductions to Collections
Collections Framework in Java
Java Collections Framework
Collections Framework Full Course optional
Garbage collection
Mark as done
Done
Garbage collection
This concept ties in with Memory Management from before. Java garbage collection is the process by which Java programs perform automatic memory management. Learn more.
What is Garbage Collection?
How Does Garbage Collection work in Java
Understanding Garbage Collection in Java with Animations Discussions
Choosing a Garbage Collector in Java optional
Apache Maven
Mark as done
Done
Apache Maven
Apache Maven is a build automation tool used primarily for Java projects. Learn more.
Maven Introduction
Building Java Projects with Maven
Introduction to Maven in Java optional
Core Concepts of Maven Explained
Learn Maven from Scratch - Full Course optional
Gradle
Mark as done
Done
Gradle
Gradle is a build automation tool for multi-language software development. Learn more.
What is Gradle?
Building Java Project with Gradle
Why you should use Gradle and how to get started
Gradle Tutorial for Beginners optional
Apache Ant
Mark as done
Done
Apache Ant
Apache Ant is a software tool for automating software build processes. Learn more
Hello World with Apache Ant
Easy Explanation of Apache Ant in Java
What is the Apache Ant Build Tool?
Apache Ant Tutorial optional
Spring
Mark as done
Done
Spring
Spring Framework is an open-source application framework that provides infrastructure support for developing Java applications. Learn more with the resources below.
Spring Documentation
Spring Tutorial
Getting Started with Spring Framework
Spring Full Course optional
Play framework
Mark as done
Done
Play framework
Play is an open-source web application framework which follows the model–view–controller (MVC) architectural pattern. Learn more from the resources below.
Play Framework Official Webpage
Introduction to Play in Java
Getting Started with Play Framework
Introduction to Play Framework for Java Developers optional
GitHub Play Framework
Spring boot
Mark as done
Done
Spring boot
Spring Boot is an open source Java-based framework used to create a micro Service. Learn more from the resources below.
Building an Application with Spring Boot
Tutorial: Learn Spring Boot
Spring Boot Tutorial Full Course
Bootstrap a Simple Application - Spring boot Tutorial optional
Spark
Mark as done
Done
Spark
Spark is a free and open-source software web application framework and domain-specific language written in Java. Learn more from the resources below.
Spark Java
Intro to Spark Framework
A Java Microframework - Spark
The Java Spark Framework Lecture optional
JPA
Mark as done
Done
JPA
The Java Persistence API (JPA) is a specification of Java. It is used to persist data between Java objects and relational databases. Learn More
What is JPA?
A Guide to JPA with Spring
Java Persistent API Introduction
Accessing Data with JPA
Learn JPA and Hibernate optional
Spring Data JPA
Mark as done
Done
Spring Data JPA
Spring Data JPA, makes it easy to implement JPA based repositories. Learn more from the resources below.
Spring Data JPA
Spring Data JPA Tutorial
Introduction to Spring Data JPA
Spring Data JPA Documentation optional
Hibernate
Mark as done
Done
Hibernate
Hibernate ORM is an object–relational mapping tool for the Java programming language. Learn more from the resources below.
Hibernate Documentation
What is Hibernate in Java?
Hibernate Full Course
Learn Hibernate - Tutorial optional
Ebean
Mark as done
Done
Ebean
Ebean is an object–relational mapping product written in Java. Learn more from the resources below.
Ebean ORM
Guide to Ebean ORM
Java Ebean Documentation
JDBC Intro
Mark as done
Done
JDBC Intro
JDBC stands for Java Database Connectivity, which is a standard Java API for database-independent connectivity between the Java programming language and a wide range of databases. Learn more about this from the resources below.
JDBC Basics
Introduction to JDBC
JDBC Tutorial for Beginners
JdbcTemplate
Mark as done
Done
JdbcTemplate
JdbcTemplate is the central class in the JDBC core package. It simplifies the use of JDBC and helps to avoid common errors. Learn more using the resources below.
Spring JDBC Template Tutorial
Spring JDBC Template Example
Using Spring JdbcTemplate optional
JdbcTemplate Class optional
JDBI3
Mark as done
Done
JDBI3
Learn about JDBI3 from the resources below.
Jdbi Documentation
A Guide to Jdbi
Logback
Mark as done
Done
Logback
Logback is a logging framework for Java applications. You can learn more from the resources below.
Logback Basics
Logback Tutorials for Beginners
How to use Logback in Spring Boot - Rolling File Example
Logback Tutorial: Configuration Example for Java Applications
A Guide to Logback optional
Tinylog
Mark as done
Done
Tinylog
Tinylog is a lightweight open-source logging framework for Java and Android, optimized for ease of use. You can learn more from the resources below.
Tinylog Tutorial
Tinylog: Simplified Logging Framework for Java
Tinylog Implementation for Java
Log4j
Mark as done
Done
Log4j
Log4j is an open-source, fast, reliable and flexible logging framework API for java. You can learn more from the resources below.
Apache Log4j Framework for Beginners
Log4j Tutorial
Logging in Java with Log4j
Introduction to Logging and Log4j optional
Log4j2
Mark as done
Done
Log4j2
Log4j2 is the updated version of log4j. You can learn more from the resources below.
Log4j2 Tutorial with Examples
Intro to Log4j2 - Appenders, Layouts and Filters
How to do logging in Java
Log4j2 and Java Configurations optional
Java-ML
Mark as done
Done
Java-ML
Java-ML is basically a collection of machine learning algorithms in java. Learn more about this from the resources below.
Looking into Java ML/DL Libraries
Java Machine Learning Libraries
Overview of AI Libraries in Java optional
Apache Mahaut
Mark as done
Done
Apache Mahaut
Apache Mahout is an open source project that is used to build scalable libraries of machine learning algorithms. Learn more about this from the resources below.
What is Apache Mahout?
Machine Learning with Mahout
Understanding Apache Mahout
Deeplearning4j
Mark as done
Done
Deeplearning4j
Deeplearning4j also known as Eclipse Deeplearning4j is a Java Virtual Machine (JVM) programming library written in Java. Learn more about this from the resources below.
A Guide to Deeplearning4j
Introduction to Machine Learning with Eclipse Deeplearning4j
Getting Started with Deeplearning4j
WEKA
Mark as done
Done
WEKA
Weka is an open source software that is basically a collection of machine learning algorithms for data mining tasks. Learn more about this from the resources below.
Getting Started with Weka
Weka Tutorial
Data Mining with Weka
Unit Testing
Mark as done
Done
Unit Testing
Unit Testing is a methodology of testing source code for its fitment of use in production. There are various types of Unit Testing frameworks and you can learn more from the resources below.
What is Unit Testing?
Unit Testing Tutorial
Learn Unit Testing
TestNG
TestNG (Unit Testing Framework)
Mark as done
Done
TestNG (Unit Testing Framework)
TestNG, where the "NG" stands for "Next Generation" is an automation testing framework that covers a wider range of test categories like unit, functional, end-to-end, integration, etc. You can learn more about this from the resources below.
Test NG official Webpage
Introduction to TestNG
How to Write your First Test Case Using TestNG
Learn TestNG from Scratch optional
JUnit (Unit Testing Framework)
Mark as done
Done
JUnit (Unit Testing Framework)
JUnit is an open-source testing framework for java programmers. The java programmer can create test cases and test his/her own code with this. You can learn more about this framework from the resources below.
Learn how to write unit test with JUnit
JUnit Tutorial
JUnit Test Framework
JUnit 5 Crash Course optional
Integration Testing
Mark as done
Done
Integration Testing
Integration testing comes after Unit testing in the software testing process. There are various frameworks for Integration testing in Java and you can learn more about these from the resources below.
What is Integration Testing?
How to perform Integration Testing
Integration Testing: Top-Down and Bottom-Up Testing
REST Assured is a java library used for testing and validating the Restful Web Services. Learn more about this framework/library from the resources below.
REST Assured Documentation
Learn API testing step-by-step with REST Assured
A Guide to REST-assured optional
REST Assured Beginner Tutorial
JMeter (Integration Testing Framework)
Mark as done
Done
JMeter (Integration Testing Framework)
JMeter is an open-source test tool used to analyze and measure the performance of applications, different software services and products. Learn more using the resources below.
JMeter Tutorial for Beginners
JMeter Masterclass optional
A Complete JMeter Guide for Beginners
Behavior Driven Development
Mark as done
Done
Behavior Driven Development
Behavior Driven Development (BDD) is a software development process that includes test case development on the basis of the behavior of software functionalities. Learn more about some of the BDD frameworks as well.
What is Behavior Driven Development: Tools for BDD
Behavior Driven Development and Functional Testing
Behavior Driven Development in Java
Guide to BDD in Java optional
The Ultimate Guide to BDD Test Automation Frameworks optional
JBehave (BDD Framework)
Mark as done
Done
JBehave (BDD Framework)
JBehave is a Java-based framework supporting Behavior-Driven Development (BDD). Learn more from the resources below.
JBehave Tutorial
An Introduction to JBehave and BDD
JBehave Tutorial for Beginners
Testing a REST API with JBehave
JBehave Framework Tutorial optional
Mockito (BDD Framework)
Mark as done
Done
Mockito (BDD Framework)
Mockito is an open source testing framework for Java. Learn more from the resources below.
Mockito Tutorial
Mockito Framework Tutorial
Mockito JUnit Tutorial optional
Unit Test with Mockito optional
Cucumber-JVM (BDD Framework)
Mark as done
Done
Cucumber-JVM (BDD Framework)
Cucumber is a software tool that supports behavior-driven development (BDD). It allows expected software behaviors to be specified in a logical language that customers can understand.
Cocumber Documentation
Getting Started with Cocumber in Java
Cocumber JVM with Selenium Web Driver optional
Test Your Skills
Mark as done
Done
Test Your Skills
There is no better way to consolidate your knowledge besides testing yourself. So, if you have made it this far, well done! Here's a chance to see how much you have learned. Take a Java test below.