Advertisement
Georgi_Benchev

Untitled

Mar 7th, 2025
189
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 7.30 KB | None | 0 0
  1. Junior's Roadmap
  2.  
  3. Labels
  4.  
  5. 🔴 (Advanced Junior) – Requires deeper knowledge - Advanced Juniors/ Mid-level developers
  6.  
  7. 🟢 (Junior) – Fundamentals, should be known by any junior developer
  8.  
  9. Core Java Fundamentals 🟢
  10.  
  11. Object-Oriented Programming (OOP)
  12.  
  13. · Encapsulation – Private fields, getters, setters
  14.  
  15. · Inheritance – Superclass, subclass, extends
  16.  
  17. · Polymorphism – Static (method overloading) vs Dynamic (method overriding)
  18.  
  19. · Abstraction – Interfaces, abstract classes, partial vs complete abstraction
  20.  
  21. · The Diamond Problem
  22.  
  23. Java Basics
  24.  
  25. · Primitive types vs Wrapper classes
  26.  
  27. · Strings & String Pool (what is and how does it work)
  28.  
  29. · Immutable vs Mutable objects
  30.  
  31. · Static keyword (fields, methods, blocks)
  32.  
  33. · Access Modifiers
  34.  
  35. · final keyword (class, method, variable)
  36.  
  37. · Enums & Usage
  38.  
  39. · equals() and hashCode() contract
  40.  
  41. · Important Java 8 / 11 Features
  42.  
  43.  
  44. Data Structures, Collections & Algorithms 🟢
  45.  
  46. · What is a data structure?
  47.  
  48. · Array vs. ArrayList vs. LinkedList (how do they actually work, how they are implemented)
  49.  
  50. · Stack, Queue, PriorityQueue
  51.  
  52. · Set (HashSet, LinkedHashSet, TreeSet)
  53.  
  54. · Map (HashMap, LinkedHashMap, TreeMap)
  55.  
  56. · HashTable vs HashMap
  57.  
  58. · Hash function and Hashing techniques
  59.  
  60. · Collisions in HashMap & how Java resolves them
  61.  
  62. · Comparable vs Comparator
  63.  
  64. · Iterable vs Iterator
  65.  
  66. · Big O Notation – Alg. Complexity
  67.  
  68. · Sorting Algorithms vs/and Searching Algorithms
  69.  
  70.  
  71. Java Concurrency (Multithreading) 🔴
  72.  
  73. · Thread Lifecycle
  74.  
  75. · Thread vs Runnable (which one is preferred to be used)
  76.  
  77. · synchronized keyword & Locks
  78.  
  79. · Executors & Thread Pools
  80.  
  81. · Deadlock, Livelock, Starvation
  82.  
  83. · Atomic Variables (AtomicInteger, AtomicLong)
  84.  
  85.  
  86. Functional Programming in Java 🟢
  87.  
  88. · Lambda Expressions
  89.  
  90. · Stream API (methods, usage, operations)
  91.  
  92. · Intermediate vs Terminal Operations in Stream API
  93.  
  94. · Functional Interfaces (Function, Predicate, Consumer, Supplier)
  95.  
  96. · Optional Datatype & Avoiding NullPointerException
  97.  
  98.  
  99. Design Patterns 🟢
  100.  
  101. Here I will list most used patterns, but you may know more than just these.
  102.  
  103. · Categories in design patterns (Creational, Structural, Behavioral)
  104.  
  105. · Singleton (Eager vs Lazy initialization)
  106.  
  107. · Factory Method Pattern
  108.  
  109. · Builder Pattern
  110.  
  111. · Strategy Pattern
  112.  
  113. · Observer Pattern Useful link: https://refactoring.guru/design-patterns
  114.  
  115.  
  116. Java Memory Model 🔴
  117.  
  118. · Java Memory Model
  119.  
  120. · Heap vs Stack
  121.  
  122. · Garbage Collection (GC)
  123.  
  124. · Strong, Weak, Soft, and Phantom References
  125.  
  126. · OutOfMemoryError
  127.  
  128. · Heap Space vs Metaspace
  129.  
  130.  
  131. Spring & Spring Boot 🟢
  132.  
  133. Core Spring (IoC, DI, Beans)
  134.  
  135. · Inversion of Control (IoC) & Dependency Injection (types of DI)
  136.  
  137. · IoC container, IoC Container Implementation in Spring
  138.  
  139. · ApplicationContext vs. BeanFactory
  140.  
  141. · Stereotype annotations (@Component, @Service, @Repository, @Controller)
  142.  
  143. · Bean (declaration, usage)
  144.  
  145. · Bean Scopes (singleton, prototype, request, session)
  146.  
  147. · @Autowired on Field vs. Constructor Injection
  148.  
  149. Spring Boot Basics
  150.  
  151. · Spring Boot vs Spring Framework
  152.  
  153. · Spring Boot Starter Packages (spring-boot-starter-web, spring-boot-starter-data-jpa)
  154.  
  155. · Embedded Web Servers (Tomcat, Jetty, Undertow)
  156.  
  157. · Auto-configuration & Properties (application.properties vs application.yml)
  158.  
  159. · Schedulers and Caching
  160.  
  161. · Layered Architecture (Presentation Layer, Service Layer, Data Access Layer)
  162.  
  163. Spring Boot Configuration
  164.  
  165. · @Configuration and @Bean
  166.  
  167. · @Value usage
  168.  
  169. · Externalized Configuration with application.properties
  170.  
  171. · Spring Profiles (@ActiveProfiles, spring.profiles.active)
  172.  
  173.  
  174. Spring MVC & RESTful APIs
  175.  
  176. MVC 🟢
  177.  
  178. · Model-View-Controller Components
  179.  
  180. · Spring MVC Flow (from sending the HTTP request to returning the response)
  181.  
  182. · DispatcherServlet
  183.  
  184. · Model-Attribute
  185.  
  186. · Form Handling & Validation (BindingResult, @Valid, .hasErrors())
  187.  
  188. · Session & Cookies
  189.  
  190. · Interceptors
  191.  
  192. · View Technology
  193.  
  194. · View Resolver
  195.  
  196. · Thymeleaf Integration
  197.  
  198. REST 🟢
  199.  
  200. · What is REST?
  201.  
  202. · What makes an API RESTful? (REST Constraints)
  203.  
  204. · HTTP Methods
  205.  
  206. · RESTful Endpoint Design Best Practices
  207.  
  208. · HATEOAS
  209.  
  210. · API Versioning (/v1/users vs. Accept-Version header)
  211.  
  212. · Status Codes (200 OK, 201 Created, 400 Bad Request, 404 Not Found, 500 Internal Server Error)
  213.  
  214. REST APIs with Spring 🟢
  215.  
  216. · @RestController, @RequestMapping, @GetMapping, @PostMapping
  217.  
  218. · Path Variables (@PathVariable) vs. Request Params (@RequestParam)
  219.  
  220. · Request Body (@RequestBody)
  221.  
  222. · Response Handling (ResponseEntity<T>)
  223.  
  224. · Exception Handling with @ExceptionHandler and @ControllerAdvice
  225.  
  226. · Swagger Documentation
  227.  
  228.  
  229. Security 🟢
  230.  
  231. · How does Spring Security work?
  232.  
  233. · Stateless vs Stateful
  234.  
  235. · SecurityFilterChain
  236.  
  237. · Authentication vs Authorization
  238.  
  239. · Principle (what & how to retrieve it in methods)
  240.  
  241. · SecurityContext and Authentication object 🔴
  242.  
  243. · Authentication provider vs Authentication manager 🔴
  244.  
  245. · UserDetails vs Principle
  246.  
  247. · UserDetailsService + PasswordEncoder
  248.  
  249. · JWT - what & why (Header, Payload, Signature) (Stateless authentication) 🔴
  250.  
  251. · What is JWT Secret? 🔴
  252.  
  253. · How to implement JWT Authentication in Spring 🔴
  254.  
  255. · Security Filters (OncePerRequestFilter)
  256.  
  257. · Role-Based Access Control (@PreAuthorize, @Secured)
  258.  
  259.  
  260. Database & JPA/Hibernate 🟢
  261.  
  262. · ORM (Object-Relational Mapping)
  263.  
  264. · ORM Implementation - Hibernate
  265.  
  266. · JPA vs Hibernate
  267.  
  268. · What is Entity?
  269.  
  270. · @Entity, @Table, @Column, @Id, @GeneratedValue
  271.  
  272. · Entity Relationships (@OneToOne, @OneToMany, @ManyToMany)
  273.  
  274. · Cascade Types & Fetch Types
  275.  
  276. · ACID
  277.  
  278. · Transaction Management (@Transactional)
  279.  
  280. · Isolation levels and propagation in transactions 🔴
  281.  
  282. · Connection Pooling (HikariCP) 🔴
  283.  
  284. · Database indexes (what is and why do we need them)
  285.  
  286. · How to create column indexes in Hibernate
  287.  
  288.  
  289. Aspect-Oriented Programing 🔴
  290.  
  291. · AOP (what is and why do we need this)
  292.  
  293. · Spring AOP
  294.  
  295. · AOP Core concepts (Aspect, Advice, Pointcut)
  296.  
  297. · Proxy Mechanisms (JDK Dynamic Proxies vs CGLIB Proxies)
  298.  
  299. · Performance Impact of AOP
  300.  
  301. · @Before, @After, @Around and other useful annotations
  302.  
  303.  
  304. Microservices & Cloud 🔴
  305.  
  306. · Monolith vs Microservices Architecture
  307.  
  308. · Benefits of using Microservices
  309.  
  310. · Data consistency problem across microservices: SAGA Pattern - THIS IS REALLY ADVANCED TOPIC FOR JUNIORS
  311.  
  312. · Monolith -> Microservice migration strategies (Parallel runs, Strangler Pattern)
  313.  
  314. · What is API Gateway, how to implement one in Spring?
  315.  
  316. · Load balancing (what is and why do we need this?)
  317.  
  318. · Inter-Service Communication (FeignClient)
  319.  
  320. · Docker & Kubernetes Basics - images, containers, basic commands
  321.  
  322. · Datadog/Grafana tools (what is observability and why do we need this)
  323.  
  324. · CI/CD tools - just the basics (what is and why do we need this)
  325.  
  326. · Event Driven Architecture - Message Brokers, Message Queues, Publisher, Listener, Events, Kafka
  327.  
  328. · DLQ (dead letter queue)
  329.  
  330.  
  331. Testing 🟢
  332.  
  333. · JUnit & Assertions - Unit Tests
  334.  
  335. · Mockito & Mocking Dependencies
  336.  
  337. · Test Lifecycle (@BeforeEach, @AfterEach)
  338.  
  339. · @WebMvcTest – API Testing
  340.  
  341. · MockMvc
  342.  
  343. · @SpringBootTest – Full Context Testing (Integration Testing)
  344.  
  345. · H2 Database
  346.  
  347. · WireMock – Mocking External APIs 🔴
  348.  
  349. · TestContainers
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement