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/
Możliwość komentowania jest wyłączona.