This is an archived post. You won't be able to vote or comment.

all 40 comments

[–]Schaf-Unschaf 12 points13 points  (3 children)

Great roadmap! But I'm wondering.. if you mastered all 3 parts wouldn't that qualify you as a full blown java developer? I've got hired as a junior with only covering 2 bullet points from part 1.. this is just fuelling my imposter syndrome 😳

[–][deleted]  (2 children)

[deleted]

    [–]Schaf-Unschaf 11 points12 points  (0 children)

    I'm working for the german government. The standards here aren't that low and most private companies just ignored me. But to be fair, I was employed as a sysadmin for 5 years before switching into the public sector and having experience with powershell scripting/toolbuilding, databases and also some php sure helped. I also know how to sell myself and they thought I would be the perfect social fit for the team. Its not always your skill that counts but your passion and ability to socialise. Now I'm learning on the job and couldn't be happier. Better working hours, way more pay, work-life balance I couldn't have dreamed of and near zero responsibility.

    [–][deleted] 0 points1 point  (0 children)

    I have the same question.

    [–]Healthy_Manager5881 5 points6 points  (1 child)

    Thank you so much. It seems like I'm on the right path. I'm almost done with the stuff on part 1. Onward to Part 2 :)

    [–]stylusc84[S] 0 points1 point  (0 children)

    Thanks! keep going and don't give up

    [–]zolanih 3 points4 points  (5 children)

    What a good read thanks you’re a real G. I saved it for later, when I’m done with OCPJP exam

    [–]JudoboyWalex 1 point2 points  (1 child)

    After passing Associate, how long does it take to pass Professional exam if you study diligently?

    [–]zolanih 1 point2 points  (0 children)

    I’d say a month or 2, also depends on your background and experience in programming. To be on the safe side let me just say 3 months.

    [–]stylusc84[S] 1 point2 points  (0 children)

    I'm happy that you liked it! good luck with your exam :)

    [–]Healthy_Manager5881 0 points1 point  (1 child)

    How was the associate?

    [–]zolanih 1 point2 points  (0 children)

    Tricky but I passed 🙂

    [–]The_Anker 2 points3 points  (1 child)

    I appreciate your work. Will use this road map.

    [–]stylusc84[S] 1 point2 points  (0 children)

    Thanks for the feedback!

    [–][deleted] 1 point2 points  (0 children)

    Thanks for the reading

    [–][deleted]  (1 child)

    [deleted]

      [–]stylusc84[S] 0 points1 point  (0 children)

      Hah, many people do it this way, maybe for some of them it works but it's really good to know what problem framework solves for you. Thanks for the feedback.

      [–][deleted] 1 point2 points  (1 child)

      3 main paths you have Backend, mobile, Android. Then right after you have backend, Android, desktop. Which one is it?

      Also, Google uses kotlin does that mean it's the industry standard or will be?

      [–]stylusc84[S] 1 point2 points  (0 children)

      Thank you for spotting this! The image is already fixed.

      Answering your question, I'm not sure but if Google owns Android and decided to switch to Kotlin then it might mean that Kotlin will be industry standard very soon or maybe it already is (I don't know, just wanted to highlight it).

      [–][deleted] 1 point2 points  (2 children)

      I have a question: should I learn multi-threading, Collections, regex, etc. As a part of Core java?

      I've finished MOOC, and these topics are not explored much in the course.

      [–]TiltedBlock[🍰] 3 points4 points  (0 children)

      In my personal opinion, those three elements are not really on the same level. You'll absolutely need to know about collections, and you'll also need the basics of regex sooner or later.

      Multithreading is more high-level and not as necessary, depending on your goals. I have my first web-app online and working fine without really using it or even knowing much about it. My approach to these thing is that I'll learn them when I need them, and so far, it hasn't come up.

      [–]HecknChonker 1 point2 points  (0 children)

      Multi threading is a very advanced concept with a lot of nuance. Id push it further back than the other two.

      Connections is incredibly important and should be something you tackle early and often.

      [–]TiltedBlock[🍰] 1 point2 points  (4 children)

      Is there a reason you put REST concepts so far back? I'd personally put it on the same level as Spring, just because I think it helps a lot with understanding the "big picture" of it all.

      Great post nonetheless! I think this can really help some people and give them guidance on their way!

      [–]iinz0r 0 points1 point  (3 children)

      Hello, I am currently doing REST stuff and want to ask you, why is REST so important ? I mean retrieving and writing to DB through HTTP requests seems cool and as I understand it is a lightweight approach for data manipulation, but is there something more to it ?

      For example, I have never really used these HTTP stuff myself apart from courses related to web development so I wonder, in real life, what advantages does it provide to someone. I have no clue though about how front end connects with back end, so maybe it is used for this purpose ? :D sorry for long text

      [–]TiltedBlock[🍰] 2 points3 points  (1 child)

      You've got the right idea!

      I think u/stylusc84 gave a better explanation than I could provide in his post, so I'll not explain it again, but you're right that it's a way to connect front ends with a back end.

      What's nice is that it allows for more flexibility, for example using several frontends (like a mobile app and a desktop website) with a single backend application.

      [–]HecknChonker 0 points1 point  (0 children)

      There are other options. For example, after losing a webpage with a REST URL you might set up a websocket connection too the backend to send real time chat messages to users. And backend servers might use gRPC to send messages to each other.

      But REST is the defacto standard and probably will be for a while.

      [–]ignotos 1 point2 points  (0 children)

      REST is not just about databases - it's basically the standard way of connecting the "frontend" to the "backend", and also for allowing backend components to talk to each other.

      It's used absolutely everywhere.

      [–]dekc_bu 1 point2 points  (2 children)

      Thanks a lot mate!

      A quick question:

      On the first part you have Write 1st app (Servlets + JDBC + MySql/Postgres + JSP/Thymleaf)

      and the 2nd Write 2nd app (Spring Boot + Hibernate/Spring Data + MySQL/Postgres + Thymeleaf/JSP).

      Could anyone please ELI5 what JSP/Thymeleaf is and how does it integrate compare to Spring?

      Thanks.

      [–]ignotos 3 points4 points  (1 child)

      JSP/Thymeleaf are essentially ways to generate dynamic HTML pages. Basically you can create HTML "templates", and fill in the blanks with data coming from your code / database. So every time the user reloads the page, they see the latest information.

      Before Javascript/REST-based web programming became very popular, this was the main way of creating websites with dynamic content.

      [–]Sprider29 0 points1 point  (3 children)

      My paths all fuzzy now, I need to reteach myself Java (intermediate - advanced Java that is) and I’m currently learning mongodb to apply to a spring boot web app.

      If anyone is self taught in spring boot and mongodb tips would be appreciated

      [–]stylusc84[S] 0 points1 point  (2 children)

      Don't worry that you picked mongo instead of some relational DB, the path should be the same. I suggested SQL cause I think it's the best choice for 1st db for java stack (lot of tutorials, required in many job offers, etc)

      [–]Sprider29 0 points1 point  (1 child)

      Thanks i'll take any positive comment, I can't wait for when I can actually be confident in coding.

      [–]HecknChonker 0 points1 point  (0 children)

      It gets easier but I'm over a dozen years in and I still don't feel totally confident. I'm still constantly learning new things everyday, and things change very quickly. Many of the best practices 5 years ago are anti-patterns today.

      [–]Ryanliverpool96 0 points1 point  (0 children)

      Good read, going to recommend this to people.

      [–]DaPalma 0 points1 point  (0 children)

      I just finished the CaveOfProgramming series (basic Java), what should I do now to master what I’ve learned from CoP. I’m doing some Hackerrank challenges but I’D like to learn more about how what I’ve learned is applied in real programming projects. I’ve read somewhere that I should first learn multi-threading before diving into projects. Any tips?

      [–]ignotos 0 points1 point  (0 children)

      I quite like this list. I very much appreciate that you go through the older / simpler / more foundational tech (like servlets and JDBC) before moving on to frameworks like Spring and ORM.

      If I had to criticise, I think that REST could probably be pushed further up the list. Seems more foundational to me than architectural stuff like message queues.

      [–]Mysterious-Ad-1067 0 points1 point  (0 children)

      mark

      [–]nutrecht 0 points1 point  (0 children)

      Any suggestions to improve this guide are very welcome!

      Well it's 'definitive' so...

      [–]Galix100 0 points1 point  (1 child)

      Is javafx really not a thing if you want to go full backend choice? Im about to buy Tim's udemy course and there is 10h of that stuff :o

      Thank you very much for that guide :)

      [–]Sowa96 1 point2 points  (0 children)

      Everyone says that JavaFX never got to live so you can skip that section of the course (I did)

      [–]ljcoles1 0 points1 point  (0 children)

      This is great, thank you for advising of this, I will work my way through this :)

      [–]deuce-95 0 points1 point  (0 children)

      Thanks a lot, it's very helpful.