How I approach Java Web Development to the first job
Tags: roadmap, webdev, java, spring
Published: 2023-08-14 07:58:39

After a period of study and self-training, today, I will summarize the basic roadmap from learning to before entry points to apply for a Java Backend Job.
A few months ago, I tried to explore the proper map for learning to satisfy the fundamental and real job requirements also. The first challenge is that a lot of resources are mentioned in many guides, are a little bit confusing to start, and have some questions like **what to go with** and **which order**. Yeah, of course, I've played with Google for hours to find a roadmap that fits my needs and goals.
Fortunately, I have consulted many different articles and built my own roadmap.

**Overview of my roadmap:**

- Phase 1: Basic front-end (HTML, CSS, JS)
- Phase 2: Core pre-knowledge for Java Backend (JSE, OOP, Database, Networking)
- Phase 3: Fundamental of Java web development (J2EE)
- Phase 4: Frameworks for real work and a real job. (Spring)
- **Note*:**
    - *The roadmap is for reference only and needs to be adjusted to suit each person's own goals and orientation.*
    - *In addition to the main knowledge mentioned in the roadmap, there are a few other additional knowledge or skills you should consider including in your roadmap if necessary by yourself on your own.*

**Phase 1: Basic front-end (HTML, CSS, JS)**

- Why?
    - The main reasons is that help you can approach:
        - How to simple website work basically.
        - What front-end role do.
        - Required knowledge to learn J2EE and Spring in an effective way.
        
        Basically, it’s one effective way to understand basic concepts about the web app, know about tasks of front-end roles to collaborate better, and the importance it’s required to pre-enroll in Java web app development (at least HTML).
        
- How?
    - HTML is the most important factor in the phase; you should understand clearly about basic structure and syntax of HTML documentation.
    - About CSS, it’s optional for you, but of course, it’s better if we have, one that helps you make a friendly & pretty UI for user experience.
    - About JS, it’s optional too, if you can, let's find a crash course JS, understand basic HTML DOM, event & listener,…. fetch API if you want, but not really needed in this phase, you can explore it later.
- Resources?
    - I recommend an English resource list as I tried before, but let’s consider by yourself ^^:
        - [SuperSimpleDev | ****Frontend web development - a complete overview****](https://www.youtube.com/watch?v=WG5ikvJ2TKA)
        - [SuperSimpleDev | ****HTML & CSS Full Course - Beginner to Pro****](https://www.youtube.com/watch?v=G3e-cpL7ofc&t=15s)
    - Bonus for Vietnamese readers, https://fullstack.edu.vn/ is a website with many valuable free courses, yeah I tried, and thanks a lot to Mr. Son Dang & F8 team.

**Phase 2:  Core pre-knowledge for Java Backend (JSE, OOP, Database, Networking)**

- JSE: Java core, it’s totally pre-requirements for the Java Backend role right? Since you choose Java for going, so it’s totally required. you can find some courses or tutorials to start with. Personally, I recommend this course [Mosh | ****Java Tutorial for Beginners](https://www.youtube.com/watch?v=eIrMbAQSU34).**
- OOP: In basically, OOP is a style of programming that enhances clarity, reusability, and scalability. Luckily Java OOP is in my curriculum at university, so let's try to search and evaluate some courses by yourself. I haven't really experienced any free internet courses on Java OOP, but I did experience [Mosh | **Object-oriented Programming**](https://codewithmosh.com/p/ultimate-java-part-2), that’s an experience worthy of my own, you can refer.
- Database: Uhmmm, that require the fundamental, you should search for some resource for that, since I learn about the topic at my university. Basically, you **should** understand and do some basic concepts and tasks, like Database, Database System, DBMS, Database schema, SQL, DML, DDL, Primary key, Composite key, Referent/Foreign key,… hmmm, I don’t have any recommendations about it, try to play with google ^^.
- Networking: I already have a post [**here**](https://ducdmd152.hashnode.dev/how-i-completed-basic-concepts-of-computer-networking-as-a-developer), you can explore it.

**Phase 3: Fundamental of Java web development (J2EE)**

- Yeah, if you are here right now, so gleeful ^^.
- In this phase, you need to learn the basis of Java Web Development with Servlet & JSP technology and MVC2 model.
- So hard to say what really it’s in a short quote, but simple it’s basic technology and basic knowledge also to learn about Java web. You have 2 reasons to take care of the phase carefully, the first is it’s basic and it helps you can understand the fundamentals; in my mind, fundamental is normally really important for some reason in some cases, and the second is when you learn J2EE with a good base knowledge, you can easy to go with Spring MVC or some aspects else in an effective way in quick going.
- I took advantage of the school curriculum with a Java Web course for this phase, so I only researched for specific problems, but haven't really experienced an entire course on it on the internet. However, here I have a recommendation for you to consider, it’s a course from Mr. Chad Darby, I have experience with him through his Spring course and I will cover it in the next section, but he also has a course about J2EE ([JSP, Servlets & JDBC for Beginners](https://www.udemy.com/course/jsp-tutorial/)), I really haven't experienced it, I only recommend it to you because I have experienced learning with Mr. Chad Darby, so great with me, but you should consider it by yourself. Check information and reviews to choose the right one, no one will be responsible for your choice but you.
- Ok, try it.

**Phase 4: Frameworks for real work and a real job. (Spring)**

- Okay, you've been through challenging periods, and here's a challenge also ^^.
- But it will be lighter since you are already working with J2EE. However in this phase, there will still be challenges for you, you should understand the basics of Spring Core, Spring MVC, ORM, JPA, Hibernate, and something else; and can implement them in action basically.
- Okay, this is a course I recommend everyone to refer to learn about Spring: [Spring & Hibernate for Beginners (includes Spring Boot)](https://www.udemy.com/course/spring-hibernate-tutorial/). In my own experience, it's so great with a scientific and effective map, and teaching also, thanks a lot to Mr.Chad.

So, we just overview my roadmap from the entry point of learning to before the entry point of a job. One key I want to share is that let’s make a project in the last time of each phase to confirm and re-firm your knowledge and skills, which makes the learning more effective. ^^ 

With the knowledge and skills through an experience like the above, you can take some additional skills and totally able to apply for a position in business like fresher or junior.

Okay, now your turn, let’s make your own roadmap and keep on going ^^.

**Appendix**: *In the process of creating my own Java web learning path, there was an article that helped me a lot, let’s feel free to check it [here](https://www.devoxify.com/posts/the-definitive-guide-to-java-backend-developer-career-path/), I also send my deep thanks to the author, so grateful.*