Is this everything I need to be a decent Full Stack Java developer?
Java full stack or web dev full stack???
Roadmap to Java Full Stack Development [Top-Notch Edition]
Suggestions for learning java fullstack development
What projects are included in the Java Full Stack Developer specialization?
What is this Java Full Stack Developer specialization all about?
What makes the Java Full Stack Developer specialization so unique?
Videos
After spending a whole day searching through Senior Java positions, I've put together a list of the most requested technologies. Currently, as a 19-year-old, I am a mediocre Spring developer willing to take a new start in my life to truly be one of the web developers of all time.
If I spend 10 hours a day studying until the front-end section, would you say I'd be at least a "decent" dev to start applying? For better evaluation, you might want to check the notes at the end.
If helps, I'm going to start my C.S. major in a private, cheap, and unknown college this or next year here in my country.
Foundational Concepts:
-
Data Structures and Algorithms
-
Java
-
Git and GitHub
-
HTML
-
CSS
-
JavaScript
Backend Development:
-
Java OOP (+ File I/O, Collections, Lambda, Generics, Exceptions, Streams, net, JDBC, etc.) 1.5 perhaps just the basics of Servlets, JSP, and JSF
-
SOLID principles
-
Design Patterns (Factory, Singleton, etc.)
-
Maven (and maybe Gradle if going with Kotlin)
-
JSON and XML
-
SOAP and REST API
-
Spring Framework (Core Concepts)
-
Spring Boot (Spring MVC, Spring Data, and Spring Security - JWT and OAUTH2)
-
Hibernate and JPA
-
Event-Driven Programming (Kafka, RabbitMQ)
-
Clean Architecture, Onion architecture, and Hexagonal architecture
-
J2EE (idk if this one is worth it 🤔)
Front-end Development:
-
TypeScript;
-
Vue.js, Angular, or React (choose one or two)
-
CSS Frameworks (Tailwind, Bootstrap, etc.)
Database and Data Storage:
-
Relational Databases (Oracle, PostgreSQL and MySQL)
-
NoSQL DBs (MongoDB and Redis)
-
Elasticsearch
-
DDD (Domain-Driven Design)
Containerization and Deployment:
-
Docker
-
Kubernetes
-
CI/CD Principles
-
Jenkins, GitLab, Azure DevOps, Bitbuck Pipelines (Choose one, or more)
-
Terraform
-
Cloud Services (OpenShift, AWS, GCP, Azure)
Microservices and Distributed Systems:
-
Spring Cloud (including Eureka, Ribbon and Hystrix)
-
Service Mesh
-
Event-Driven Architectures (more like reviewing Kafka and RabbbitMQ)
-
Camunda (Workflow and Decision Automation)
Monitoring and Logging:
-
Dynatrace
-
ELK Stack (Elasticsearch AGAIN, Logstash, Kibana)
-
Grafana and Splunk
-
DataDog
Other topics:
-
Linux
-
Shell Scripting
-
Groovy (for Jenkins and other scripting needs).
-
Functional Programming Concepts
-
Node.js (to expand backend knowledge)
-
BFF
-
Jira
NOTES:
-
I already know some programming basics, such as variables, conditionals, loops, OOP, debugging, exceptions, etc.
-
Got some practical experience with API RESTful applications.
-
Only know a bit of HTML - like creating divs, forms (input, select, action file, etc.), tables, header, footer, images, etc. I learned more when developing a PHP MVC CRUD web system for a local business, which led me to learn AJAX and JSON because it was counterproductive to redirect the user all time he wanted to retrieve customers' data when searching names or IDs.
-
I'm a joke at CSS - I usually only use padding, margin, border, display, width, height, and sometimes box-shadow. I've been using W3.CSS lately because it's easy enough to understand.
-
I think I'm decent at SQL? Like, I can do all the DDL, DML and DCL dirty work, plus create Triggers, Functions, Views, and Stored Procedures. Also, I can do queries using joins (Inner, Left, Right, Cross), parameters, functions (count, sum, min, max, etc.), nested queries, etc.
-
I really enjoy creating UML diagrams and ERD, plus applying normalization forms (usually till the 3rd one).
-
I've been using Java for almost a year and a half now. Still, only know the basics, so no Servlets, JSP, JSF, and File I/O.
-
I understand collections (ArrayList, LinkedList, LinkedHashMap, HashMap, HashSet, etc.) but always struggle when doing LeetCode and HackerRank challenges.
-
Studied and understood client-server concepts, like the difference between HTTP and HTTPS, and what is: SSL; hand-shake; master key; request header and body; and response HTTP codes.
-
I studied Stream API and Lambda expressions, thus meaning I can understand them - tho I struggle when using them.
-
Did an IBM coding assessment and discovered I know nothing about data structures. After some chatting with my senior assistant, ChatGPT, I discovered the challenge required an approach using recursion (what on earth is that?). Even tho it was an entry-level position, I lowered my ego, sent a blank page, and recognized I need to study more.
-
I understand Docker concepts and usage. Also, got a bit of practical experience with docker-compose and how to upload and download images from Docker Hub. BUT WHO IS THIS GUY NAMED KUBERNETES, AND WHY IS HE FOLLOWING ME?! Hell, I died to understand the basics of containerization just to be rejected because I didn't know something about this dude - must be some historical champ like Alan Turing or sum.
-
Used AWS RDS one time to host data from an API REST program - so I at least know how to set that.
-
I know nothing about Angular and React.
"I am unsure whether to pursue Java full stack development or web development full stack. I find the backend languages confusing, and I'm looking for guidance on which one to choose. While the frontend path is clear for me, I need a clear direction for backend development. Could you provide insights on which backend language to choose, along with its future scope, to help me make an informed decision?"
P.S: i'm not interested in DSA (i love backend but don't want to do dsa)
#java #javascript #webdev #dsa