Week 1: Java Core & OOD |
Day 1-2 |
Java Core Concepts |
OOPs (Polymorphism, Inheritance, Encapsulation, Abstraction), Interfaces vs. Abstract Classes, Exception Handling, Collections Framework (List, Set, Map implementation details, use cases, complexity), Generics, Annotations, Reflection. |
Cracking the Coding Interview, LeetCode (Easy/Medium on Java Basics), GeeksforGeeks. |
Day 3-4 |
Advanced Java |
Concurrency (Threads, Executors, Synchronizers, Locks, volatile , synchronized ), Stream API, Lambdas, Optional, Functional Interfaces, New features in Java 8+ (modules, records, pattern matching etc.). |
Java Concurrency in Practice, Baeldung, Java documentation. |
Day 5-7 |
Object-Oriented Design (OOD) |
SOLID Principles, Design Patterns (Singleton, Factory, Builder, Observer, Strategy, Decorator, Adapter, Facade, Proxy), UML diagrams for design. |
Design Patterns: Elements of Reusable Object-Oriented Software (Gang of Four), Refactoring.Guru. Practice designing small systems (e.g., ATM, Elevator). |
Week 2: Spring Ecosystem & ORM |
Day 8-9 |
Spring Core |
IoC Container, Dependency Injection (DI types, advantages), Bean Scopes, Bean Lifecycle, Spring AOP, Spring Expression Language (SpEL). |
Spring Framework Documentation, Baeldung, official Spring guides. |
Day 10-11 |
Spring Boot |
Auto-configuration, Starters, Actuator, Profiles, Externalized Configuration, Embedded Servers, RESTful APIs with Spring Boot, exception handling in REST. |
Spring Boot Documentation, Spring Initializr for quick projects. |
Day 12-14 |
JPA & Hibernate |
ORM concepts, Entity Life Cycle, @Entity , @Id , @Table , @Column , Relationships (@OneToOne , @OneToMany , @ManyToOne , @ManyToMany ), Fetching strategies (Eager/Lazy), N+1 problem, Caching (L1/L2), Transaction Management (@Transactional ), JPQL, Criteria API. |
Official JPA specification, Hibernate documentation, Baeldung. |
Week 3: Database, Messaging & Containers |
Day 15-16 |
JDBC |
Connection pooling (HikariCP, c3p0), Statement vs. PreparedStatement, ResultSet processing, ACID properties, Transaction isolation levels. |
JDBC API documentation, various articles on connection pooling. |
Day 17-18 |
Kafka |
Producer/Consumer concepts, Topics, Partitions, Brokers, Zookeeper, Consumer Groups, Offsets, At-least-once/At-most-once/Exactly-once semantics. |
Kafka documentation, Confluent blog/resources. |
Day 19-21 |
Docker |
Dockerfile, Images, Containers, Volumes, Networks, Docker Compose, Basic Docker commands. Containerization principles. |
Docker official documentation, Play with Docker. |
Week 4: Microservices & Cloud Native |
Day 22-23 |
Kubernetes |
Pods, Deployments, Services, Namespaces, Ingress, ConfigMaps, Secrets, Basic kubectl commands. Deployment strategies (Rolling update, Blue/Green, Canary). |
Kubernetes official documentation, KodeKloud (for hands-on labs). |
Day 24-26 |
Microservices Architecture |
Principles (Loose Coupling, High Cohesion), Service Discovery, API Gateway, Load Balancing, Circuit Breakers (Resilience4j, Hystrix), Distributed Tracing (Sleuth, Zipkin), Centralized Logging (ELK stack basics), Event-Driven Architecture, Saga Pattern. |
Martin Fowler's microservices articles, Microservices patterns by Chris Richardson. |
Day 27-28 |
Security in Microservices |
OAuth2, JWT, Spring Security basics, API Key management, Best practices for securing microservices. |
Spring Security documentation, articles on OAuth2/JWT. |
Week 5: System Design & Coding Practice |
Day 29-31 |
System Design |
Scalability, Availability, Reliability, Performance, Data consistency models (CAP theorem), Sharding, Caching strategies, Load balancing, Database choices (SQL vs. NoSQL), Message queues in design. Practice designing common systems (e.g., URL shortener, social media feed, Uber-like service). |
Grokking System Design Interview, Exponent. |
Day 32-34 |
Coding Practice (DSA) |
Focus on medium to hard level problems on Data Structures (Arrays, Linked Lists, Trees, Graphs, Hash Maps) and Algorithms (Sorting, Searching, Dynamic Programming, Greedy, Recursion). Prioritize problems related to concurrent programming and object-oriented design. |
LeetCode (Medium/Hard), HackerRank. Solve problems that require good data structure and algorithm choices. |
Week 6: Advanced Topics, Mock Interviews & Review |
Day 35-37 |
Advanced Java/Spring Topics |
JVM internals (Memory Management, Garbage Collection, Class Loading), JIT Compilation, Performance Tuning, Bytecode manipulation (AspectJ). Deeper dive into Spring Boot actuators, custom starters. |
JVM Performance Tuning books/articles, official Java docs. |
Day 38-39 |
Behavioral Questions & Resume Review |
Prepare answers for "Tell me about yourself," "Why do you want to leave your current role," "Where do you see yourself in 5 years," "Strengths/Weaknesses," conflict resolution, handling failures. Review your resume, highlight achievements with numbers. |
Common behavioral interview question lists, your own career experiences. |
Day 40-42 |
Mock Interviews (Technical) |
Simulate technical interviews with friends/colleagues. Focus on explaining thought processes for coding problems and system designs. Get feedback on communication and problem-solving approach. |
Pramp, interviewing.io (if budget allows), or simply peer-to-peer. |
Day 43-45 |
Final Review & Rest |
Quickly revise all key concepts, frequently asked questions. Don't learn anything new. Get adequate rest. Prepare your questions for the interviewer. |
Your notes, flashcards, quick online refreshers. |