Learning path

Chapters stay in this order. A filename number is an address. When it disagrees with this path, the path wins.

  1. 01Foundation
  2. 02Core Java
  3. 03Java versions
  4. 04Data structures
  5. 05Algorithms
  6. 06LeetCode
  7. 07JVM
  8. 08Concurrency
  9. 09Patterns
  10. 10I/O
  11. 11Networking
  12. 12JDBC
  13. 13REST
  14. 14Standard libraries
  15. 15Testing
  16. 16Modules
  17. 17Serialization
  18. 18Performance
  19. 19Interview preparation
  20. 20Metaprogramming
  21. 21Resilience
  22. 22Spring
  23. 23Projects

Foundation

  1. 01Getting Started
  2. 02Variables & Types
  3. 03Operators & Casting
  4. 04Control Flow
  5. 05Loops
  6. 06Methods
  7. 07Arrays
  8. 08Strings
  9. 09User Input

Core Java

  1. 10Classes & Objects
  2. 11Constructors & Encapsulation
  3. 12Inheritance & Polymorphism
  4. 13Abstraction & Interfaces
  5. 14Static Members & Enums
  6. 15Records & Sealed Classes
  7. 16Exceptions
  8. 17Collections
  9. 18Generics
  10. 19Lambdas & Functional Programming
  11. 20Streams & Optional

Java versions

  1. 21Java Version Features (5 → 21)

Data structures

  1. 22Data Structures

Algorithms

  1. 23Algorithms

LeetCode

  1. 24LeetCode Practice

JVM

  1. 25JVM & Memory

Concurrency

  1. 26Concurrency

Patterns

  1. 27Design Patterns

I/O

  1. 28File I/O & NIO

Networking

  1. 29Networking & HTTP

JDBC

  1. 30JDBC & Databases

REST

  1. 31REST APIs

Standard libraries

  1. 32Standard Libraries

Testing

  1. 33Testing

Modules

  1. 34Modules & SPI

Serialization

  1. 35Serialization & Data Formats

Performance

  1. 36Performance & Build Tools

Interview preparation

  1. 37Interview Prep

Metaprogramming

  1. 38Metaprogramming

Resilience

  1. 39Resilience Patterns

Spring

  1. 40Spring Boot Intro

Projects

  1. 41REST & Frontend