Skip to content

gavr-dev/java-developer-roadmap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Backend Developer Roadmap (Java)

Today, a Java backend developer is expected to be familiar with a vast array of technologies, frameworks, and tools, which can be overwhelming. This repository and accompanying mind map are intended to help both novice and experienced developers find their way through this variety. Additionally, you can view the project specifications for the educational project by following the provided link, where I have included 90% of the technologies currently used in professional settings.

Algorithms

Topics

  • Complexity
    • Big O
  • Data structure
    • Array
    • Linked List
    • Stack
    • Queue
    • Graph
    • Tree
    • Trie
    • Heap
    • Hash table
  • Base algorithms
    • Sort
      • Bubble Sort
      • Selection Sort
      • Insertion Sort
      • Merge Sort
      • Quick Sort
      • Heap Sort
      • Radix Sort
      • Counting Sort
    • Search
      • Linear Search
      • Binary Search
    • Graph
      • Traversal
        • Depth-First Search (DFS)
        • Breadth-First Search (BFS)
      • Shortest Path
        • Dijkstra’s algorithm
        • Bellman-Ford algorithm
        • A* search
      • Minimum Spanning Tree
        • Prim’s algorithm
        • Kruskal’s algorithm
      • Network Flow
  • Advanced algorithms
  • Paradigms
    • Brute Force
    • Greedy Algorithms
    • Divide and Conquer
    • Dynamic Programming
  • Patterns
    • Two Pointers
    • Fast and Slow Pointers
    • Sliding Window
    • Merge Intervals
    • In-place Reversal of a Linked List
    • Two Heaps
    • Top K Elements
    • Subsets
    • Greedy Techniques
    • Dynamic Programming
    • Backtracking
    • Matrices
    • Bitwise Manipulation

Backend

Note

Books

  • Refactoring: Improving the Design of Existing Code - Martin Fowler
  • Patterns of Enterprise Application Architecture - Martin Fowler
  • Clean Code - Robert Martin
  • The Clean Coder - Robert Martin
  • Code Complete - Steve McConnell
  • Working Effectively with Legacy Code - Michael Feathers
  • The Pragmatic Programmer - David Thomas

Courses

Principles & Patterns

Note

Books

  • Head First Design Patterns - Eric Freeman 

Resources

Topics

  • OOP
  • SOLID
  • KISS
  • Design patterns (GoF)
  • DDD
  • Anti patterns

Java Core

Note

Books

  • Head first Java - Kathy Sierra
  • Core Java, Vol 1 & 2 - Horstmann 
  • Core Java for the Impatient - Horstmann
  • Effective Java - Joshua Bloch
  • Java Concurrency in Practice - Goetz,  Joshua Bloch

Documentation

Courses

Topics

Base

  • Syntax
  • DataTypes, Variables
  • Conditionals
  • DataStructures
  • OOP, Interfaces, Classes
  • Packages
  • IO
    • File IO
    • Network IO
    • Sockets
    • NIO
  • Loops
  • Exception Handling
  • Collections

Intermediate

  • Serialization
  • Generics
  • Lambdas
  • Stream API
  • Data Time API
  • Optional
  • Sealed Class
  • Record
  • Concurrency
    • Thread, Runnable
    • volatile
    • synchronize
  • Networking & Sockets

Advanced

  • JVM, Heap, Stack
  • GC
  • Classloader
  • Memory Managment (JMM)
  • Concurrency
    • Atomic
    • Executors
    • ReentranceLock
    • Collections
    • Virtual threads
  • Profiling
    • jconsole
    • jvisualvm
    • jProfiler
    • thread dump
    • heap dump

Java EE

Topics

  • Servlets
  • JSP
  • JMS
  • Application Servers
    • Tomcat
    • Jetty
    • WildFly

Frameworks

Note

Books

  • "Spring in Action" series

Documentation

  • Official documentation

Topics

Spring

  • Spring Core
    • Configuration
    • DI, IoC
    • AOP
    • Annotations
    • Bean Scope
    • Bean Factory
    • Application Context
  • Spring Boot
    • Starters
    • Autoconfiguration
    • Actuators
    • Embedded Server
  • Spring MVC
    • Architecture
    • Components
  • Spring Data
    • Spring Data JPA
    • Spring Data JDBC
  • Spring Security
    • Authentification
    • Authorization
    • OAuth2
    • JWT
    • SAML
    • LDAP
    • Databases

Databases

  • JDBC
    • JDBI3
    • JDBC Template
  • ORM/JPA
    • Hibernate
      • ORM
      • Persistence Context
      • Relationships
      • Lazy, Eager
      • Entity Lifecycle
      • Cache
    • OpenJPA
  • JOOQ
  • Liquibase/Flyway

Other

  • Logging
    • Log4j2
    • Logback
    • SLF4J
  • Apache Spark
  • Utils
    • Guava
    • Apache Commons
    • Jackson
    • Quartz

Reactive

  • Flux
  • RXJava
  • Spring WebFlux
  • Vert.x
  • Akka

System Design

Topics

Patterns

  • Enterprise Integration Patterns
  • Monolithic
  • Microservices
    • BFF
    • CQRS
    • Event sourcing
    • Circuit Breaker
    • Strangler Facade
    • Pub/Sub
    • Ambassador
    • Leader Election
  • CAP
  • Consistency
  • SOA
  • Serverless
  • Service Mash
  • Twelve Factor Apps

Networks

  • Topologies
  • DNS
  • OSI & TCP/IP models
  • Protocols

Integration

  • Frameworks
    • Spring Integration
    • Apache Camel
  • API
    • REST
      • HATEOAS
    • GraphQL
    • gRPC
    • SOAP
    • Websockets
    • Webhook
  • Messaging
    • JMS
    • MQ
      • ActiveMQ
      • RabbitMQ
    • Kafka
  • Proxy
    • Load Balancers
      • Nginx
      • HAProxy
    • Reverse Proxy
    • API Gateway
  • Process management
    • BPM
    • BPEL
    • Activiti
    • Camunda

DB

  • RDBMS
    • Core
      • DML & DDL
      • Transactions
      • ACID
      • Isolation
      • Normalization
      • N+1 problem
    • PostgreSQL
    • H2
  • NoSQL
    • Document
      • MongoDB
      • CouchDB
    • Time Series
      • InfluxDB
      • TimeScale
    • Realtime
      • Firebase
      • RethingDB
    • Column
      • Cassandra
      • HBase
    • Key-Value
      • Redis
      • DynamoDB
    • Graph
      • Neo4J
  • IMDG
    • Hazelcast
    • Apache Ignite
    • GridGane
  • Scaling
    • Indexes
    • Replication
    • Sharding
    • Profiling
    • CAP theorem

Cache

  • Client side
  • CDN
  • Server side
    • Redis
    • Memcached

BigData

  • Hadoop
  • HDFS
  • Ozone
  • S3
  • Hive
  • MapReduce
  • Spark
  • Oozie

Search Engine

  • Elasticsearch
  • Solr

Security

  • Authentification
    • OAuth
    • Basic Auth
    • Token Auth
    • JWT
    • OpenID
    • SAML
  • Hashing
    • MD5
    • SHA
    • scrypt/bcrypt
  • SSL/TLS
  • HTTPS
  • API Security

Frontend

Topics

  • JavaScript
  • React, Vue, Angular
  • SPA, SSR, SSG

Testing

Note

Books

  • Тестирование Дот Ком - Роман Савин

Topics

  • Unit
    • JUnit
    • Mockito
    • TestNG
    • PowerMock
    • TDD
  • Integration
    • Cucumber
    • JMeter
    • Selenium
  • Behavior
    • JBehave
    • BDD

Practices and methodologies

  • Waterfall
  • Agile
    • Scrum
    • Kanban
  • Lean
  • Prototype
  • RAD
  • FDD
  • XP (Extreme Programming)

Soft skills

  • Communication
  • Conflict management
  • Creativity
  • Critical thinking
  • Decision-making
  • Emotional management
  • Flexibility
  • Leadership
  • Orientation to results
  • Planning
  • Problem-solving
  • Teamwork
  • Time management

DevOps

Topics

  • Build Tools
    • Maven
    • Gradle
    • Ant
    • jShell
  • VCS
    • Git
      • Github
      • Gitlab
      • Bitbucket
    • GitFlow
    • Trunk-based Development
  • CI
    • Сoncepts
    • Jenkins
    • SonarQube
    • PMD, CheckStyle
    • JaCoCo
  • CD
    • Сoncepts
    • Ansible
  • Containers
    • Concepts
    • Docker
    • Docker Compose
    • K18s
  • Linux
    • Core commands
    • OS Concepts
    • shell

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published