From Zero to Full-Stack – Java Road Map
These are my thoughts about the Programmer roadmap, based on the knowledge from the internet and my experience.

Who is a full stack developer?

A universal developer who can:

  • works in frontend and knows frontend technologies
  • can design API and work in the backend, sometimes can’t make super optimizing programs, but these programs can work fine
  • can use and display databases
  • has basic knowledge of architecture, testing, security, Linux, CI / CD

it’s simple, can work in all areas

Areas

  • Frontend – all technologies running in the browser, generally written in JavaScript/TypeScript or written in different languages and use WASM compiler to convert to WebAssembly
  • Backend – all technologies running in the servers or cloud ecosystems (AWS, Amazon, Google, etc)
  • DevOps – ensures the functioning of servers and software
  • Security
  • Architecture
  • Database relational and NoSQL

T-Shaped Skills

The developer can’t know everything about all IT disciplines. The knowledge in the full-stack developer is like a T shape letter.

Discipline Discipline Discipline Discipline
Skill Skill Skill Skill
Skill Skill Skill
Skill Skill
Skill
Skill
Skill

RoadMap (Java)

Basic

Internet

  • Basic Network and IP concept
  • TCP and UDP Protocols
  • HTTP
  • HTTP Methods
  • DNS and domain name
  • Hosting

Computers

  • How to OS works
  • Process Management
  • CPU, Memory and cache
  • Thread and Concurrency
  • Linux
  • Basic Linux commands
  • Bash script
  • I/O Management

GIT

  • Basic Git commands
  • GitBash and Git tools
  • GitHub
    • GitLab
    • Bitbucket

Developer Skils

  • SOLID
  • KISS
  • YANGI
  • DRY
  • Clean Code
  • Basic Architecture
    • Monolithic
    • Microservices
    • SOA
    • CORS and Event Sourcing
    • Serverless
    • Hexagonal Architecture
  • Basic Design Patterns (GOF)
  • Basic DDD
  • Basic TDD
  • APIs:

    • Rest
    • JSON
    • GraphQL
    • JSON-RPC
    • HATEOAS
    • SOAP
    • Open Api
    • Swagger
  • Security
    • HTTPS + TLS
    • CORS
    • Algoritsm: MD5, SHA, SCrypt, BCrypt
    • OWASP
    • Content security policy
    • Authentication – Jwt, oAuth, Token Auth, HTTP basic auth

Frontend

  • HTML
    • basic tags
    • forms
    • symantic Web
  • CSS
    • basic
    • layouts – CSS grid, box model, flex box
    • responsive design and media queries
  • CSS extend
    • Object Oriented CSS
    • BEM – Block Element Modifier
    • Styled components
    • CSS Module
    • Sass/Less
  • CSS Framewoks
    • Material UI
    • Reactstrap
    • Bootstrap
  • JavaScript
    • sytanx
    • dom
    • Ajax/Promise
    • ES6
    • Hoisting, Event bubbling, Scope, propotype, shadow dom, strick mode
    • HTML templates, Custom elements
  • TypeScript
    • concept
    • types
    • object oriented programing
    • type checker
    • compatybility rules
  • Package manager
    • npm
    • yarn
  • JS extend
    • ES Lint
    • WebPack
    • JQuery
  • Fronend Frameworks
    • Angular
    • Redux
    • React
    • Redux
    • Veu.js
    • VueX
  • Testing
    • Jest
    • Cypress
    • Enzyme

Backend (Java)

  • Java Core
    • Basic types
    • Collections
    • Concurrency
    • Lambda
    • Stream API
    • Date Time API
    • Functional Programming
    • File IO
  • Spring
    • DI and IOC
    • Aspect
  • SpringBoot
  • Hibernate
  • Spring Security
  • Spring Data/JPA
    • JDBC
    • JooQ
  • Microservices
    • Spring Cloud
    • Micronaut
    • Quarks
    • Histrix
  • Api Clients:
    • JAX-RS
    • JAX-WS
    • Jersey
  • Testing
    • JUnit
    • Mockito
    • PowerMock
    • Spock
    • Testcontainers
  • Libs
    • Apache commoons
    • Vavr
    • Jakson JSON
    • Log4J

Databases

  • Database Teory
    • Object-Relational Mapping
    • ACID
    • CAP
    • N+1 Problem
    • Sharding
    • Normalization
    • Indexes
    • Transaction
    • Data replication
  • Relational Databases
    • Teory of Realtional databases
    • MySQL
    • PostgreSQL
    • MS Sql
    • Oracle
  • NoSQL Databases
    • Types of NoSQL Databases
    • MongoDb
    • ElasticSerach
    • Cassandra
  • Cache
    • Redis
    • Memcached
  • Messaging
    • RbbitMq
    • Kafka

Testing

  • Testing
    • TDD/BDD
    • Unit Test
    • Integration Test
    • E2E Testing
    • Contract Testing
    • Functional testing
  • Testing tools
    • Swagger
    • Selenium
    • Cucumber

Other

  • CI/CD
    • Theory
    • Jankins
    • Docker
    • Kubernetes
    • OpenShift
  • Dektop
    • JavaFX
    • Swing
  • Web Servers
    • Apache
    • Nginx
    • Haproxy
  • Monitoring
    • Metrics

Summary

  • a lot of it but we learn in the period
  • focus only on the one thing in the time – learn one technology or watch one course at one time not all
  • start doing your project using the elements you are learned
  • at the beginning, make simple things in your project
  • find someone who will be able to view your code
  • use version control systems from the beginning

Links

  • https://dev.to/ender_minyard/full-stack-developer-s-roadmap-2k12
  • https://github.com/kamranahmedse/developer-roadmap
  • https://www.freecodecamp.org/news/how-to-learn-web-dev-in-2021-roadmap/
  • https://javarevisited.blogspot.com/2019/10/the-java-developer-roadmap.html
  • https://levelup.gitconnected.com/the-2020-web-developer-roadmap-76503ddfb327
  • https://roadmap.sh/