Java.
Enterprise Java software engineering, core OOP principles, generics, concurrency, and automated test runners.
Beginner
Start here — no prior experience needed
Introduction to Java
What Java is, where it's used, how Java code is structured, and a complete roadmap for learning Java from beginner to advanced.
Setting Up Java
Install the JDK, set up IntelliJ IDEA, write your first Java program, and understand how Java code compiles and runs.
Data Types in Java
Master Java's 8 primitive types, their wrapper classes, type casting, String handling, and how Java stores values in memory.
Operators in Java
Complete guide to Java operators — arithmetic, relational, bitwise, shift, logical, ternary, instanceof, and operator precedence.
Variables and Operators in Java
Learn how to declare variables, use Java's operators, take user input with Scanner, work with constants, and use the Math class.
Control Flow in Java
Master Java's decision-making and looping constructs — if/else, switch expressions, for/while/do-while loops, break, and continue.
Arrays in Java
Learn Java arrays — single and multi-dimensional arrays, array operations, sorting, searching, and the Arrays utility class.
Functions (Methods) in Java
Master Java methods — from basic declarations to lambda expressions, method references, and functional interfaces.
Strings in Java
Deep dive into Java String — immutability, common methods, StringBuilder, StringBuffer, string formatting, and regular expressions.
Methods in Java
Learn how Java methods work — parameters, return types, method overloading, scope, recursion, and the difference between pass-by-value and pass-by-reference.
Java OOP — Complete Guide
A complete map of Java Object-Oriented Programming concepts — from beginner classes and objects through intermediate interfaces and composition to advanced SOLID principles and design patterns.
Introduction to Object-Oriented Programming in Java
Understand what OOP is, why it exists, and how Java organises code around classes and objects with real-world examples.
Encapsulation in Java
Learn how to protect object state with access modifiers, getters, setters, and immutable design — with production-grade Java examples.
Inheritance in Java
Learn how to build class hierarchies using extends, super, method overriding, and the Liskov Substitution Principle with real Java examples.
Polymorphism in Java
Understand runtime and compile-time polymorphism in Java — method overriding, dynamic dispatch, and the power of programming to interfaces.
Abstraction in Java
Learn how Java's abstract classes and interfaces hide complexity and let you define contracts that decouple callers from implementations.
Error Types in Java
Understand Java's exception hierarchy — checked vs unchecked exceptions, Errors, finally blocks, and when to use each.
Intermediate
For developers with core concepts down
Regular Expressions in Java
Learn Java regex with Pattern and Matcher — character classes, groups, named groups, lookahead, lookbehind, and real-world patterns.
Interfaces in Java — A Deep Dive
Go beyond the basics — learn interface segregation, default methods, functional interfaces, and how interfaces enable real-world design patterns.
Abstract Classes in Java
Master abstract classes — when to use them over interfaces, template method pattern, and how they enable shared behaviour across a class hierarchy.
Method Overloading in Java
Understand compile-time polymorphism through method overloading — parameter types, varargs, autoboxing pitfalls, and real-world builder patterns.
Composition vs Inheritance in Java
Learn when to favour composition over inheritance, how to use the Decorator and Strategy patterns, and how to build flexible, loosely coupled Java classes.
Generics in Java
Deep dive into Java generics — generic methods, bounded type parameters, wildcards (? extends, ? super), type erasure, and the PECS principle.
Exception Handling in Java
Learn how Java handles errors — the exception hierarchy, try/catch/finally, checked vs unchecked exceptions, throw/throws, and creating custom exceptions.
Java Streams API
Master the Java Streams API — filter, map, collect, flatMap, reduce, and Collectors for expressive data processing pipelines.
Collections Framework in Java
Master Java's Collections Framework — ArrayList, LinkedList, HashSet, TreeSet, HashMap, TreeMap, Queue, and PriorityQueue with practical examples.
Optional in Java
Use Optional<T> to eliminate NullPointerException — orElse, orElseGet, orElseThrow, map, flatMap, and Optional design patterns.
File Handling in Java
Read and write files in Java using the File API, BufferedReader/Writer, FileInputStream/OutputStream, and the modern NIO.2 Path/Files API.
Records in Java
Learn Java records (Java 16+) — immutable data carriers, compact constructors, custom methods, and when to use records over classes.
Java 8 Features
Master Java 8's most impactful features — lambda expressions, functional interfaces, the Streams API, method references, Optional, and the Date/Time API.
Sealed Classes and Interfaces in Java
Master sealed classes and interfaces (Java 17+) — restrict class hierarchies, use permits, and combine with pattern matching for exhaustive switching.
Multithreading in Java
Learn Java concurrency — creating threads, the Runnable interface, thread lifecycle, synchronization, the Executor framework, and CompletableFuture.
JDBC — Database Access in Java
Connect Java to MySQL using JDBC — establishing connections, executing CRUD operations, using PreparedStatement, and managing transactions.
Maven — Java Build and Dependency Management
Learn Maven — the industry-standard Java build tool for managing dependencies, project structure, build lifecycle, and producing deployable artifacts.
Gradle — Modern Java Build Tool
Learn Gradle — a flexible, fast build tool for Java. Covers build scripts, dependency management, tasks, and the Kotlin DSL.
Unit Testing with JUnit 5 and Mockito
Learn to write effective unit tests in Java using JUnit 5 annotations and assertions, and mock dependencies with Mockito.
Logging in Java with SLF4J and Logback
Learn how to add production-grade logging to Java applications using SLF4J as the facade and Logback as the implementation.
Spring Boot — Introduction
Get started with Spring Boot — what it is, how it differs from Spring Framework, project setup with Spring Initializr, and your first REST endpoint.
Dependency Injection in Spring Boot
Understand how Spring's IoC container manages beans, the types of dependency injection, component scanning, and bean scopes.
Java Project Ideas
Five Java project ideas with full descriptions, skills practiced, tech stack recommendations, and difficulty ratings to build your portfolio.
Building REST APIs with Spring Boot
Build production-quality REST APIs with Spring Boot — request mapping, path variables, query params, request bodies, response entities, and HTTP status codes.
Validation in Spring Boot
Validate request data in Spring Boot using Bean Validation annotations, custom validators, and global error handling for clean API error responses.
Spring Data JPA — Database Access
Persist data with Spring Data JPA — entity mapping, repositories, JPQL queries, pagination, and relationships.
Exception Handling in Spring Boot
Build a consistent, production-grade error handling layer in Spring Boot using @ControllerAdvice, custom exceptions, and RFC 7807 problem details.
Spring Security — Authentication and Authorization
Secure Spring Boot applications with Spring Security — HTTP security config, user details, password encoding, role-based authorization, and method-level security.
JWT Authentication in Spring Boot
Implement stateless JWT authentication in Spring Boot — generating tokens, validating them in a filter, refresh tokens, and securing endpoints.
Dockerizing Spring Boot Applications
Package and run Spring Boot applications in Docker — writing Dockerfiles, multi-stage builds, Docker Compose for local development, and best practices.
Advanced
Production-grade patterns for experienced engineers
SOLID Principles in Java
Master the five SOLID design principles with concrete Java examples — the foundation of maintainable, extensible object-oriented code.
Design Patterns in Java
Learn the most important Gang of Four design patterns with production-grade Java implementations — Singleton, Factory, Builder, Observer, and Strategy.
Generics and OOP in Java
Learn how Java generics and OOP work together — generic classes, bounded type parameters, wildcards, generic methods, and type-safe collection design.
Virtual Threads in Java
Master Project Loom's virtual threads (Java 21) — lightweight concurrency, structured concurrency, and migrating from platform threads.
Java Module System (JPMS)
Master the Java Platform Module System — module-info.java, exports, requires, opens, services, and modular application structure.
JVM Memory Model
Understand JVM memory — heap, stack, metaspace, GC algorithms, G1/ZGC tuning, and diagnosing memory leaks and OutOfMemoryError.
Advanced Concurrency in Java
Master Java's advanced concurrency — ExecutorService, CompletableFuture, Fork/Join framework, BlockingQueue, and concurrent data structures.
Java Performance Tuning
Profile and optimize Java applications — JMH benchmarks, Java Flight Recorder, JIT compilation, heap analysis, and common performance pitfalls.
Java Security
Secure Java coding practices — input validation, OWASP Top 10 for Java, KeyStore, TLS/HTTPS setup, and protecting against common vulnerabilities.
Java Interview Preparation
Essential Java interview topics — JVM internals, memory model, garbage collection, collections deep dive, multithreading questions, and Java 8+ questions with answers.
Advanced Testing in Java
Master advanced Java testing — JUnit 5 extensions, Mockito deep dive, TestContainers for integration tests, and test architecture patterns.