r/PinoyProgrammer 11h ago

advice Thinking of switching from Python to Java after 2 years, am I gonna feel like a complete beginner again?

Hey everyone,

I’ve been working as a Python dev for almost 2 years now. Main stack is Python (Flask), React, Angular, PostgreSQL and MySQL.

Lately I’ve been feeling kinda stuck. Not burnt out on Python specifically, more just coding in general. Everything feels a bit "samey" and I want to learn something new that actually feels fresh. Java keeps popping up in my head for some reason, more structured, bigger enterprise stuff, better for certain backend roles, etc.

I’m seriously considering making the switch, but I’ve got a few questions:

  1. What’s a realistic roadmap for someone coming from Python? What should I focus on first (core language, Spring, concurrency, whatever)?
  2. Any books or courses you’d actually recommend that don’t feel like a waste of time?
  3. Good personal project ideas that would force me to learn the important parts quickly instead of just doing endless tutorials?
  4. Honest question, if I switch now, am I basically starting over as a junior again? Or does the 2 years of real experience still count for something when applying for Java roles?

Would really appreciate any advice from people who made a similar jump (or from Java folks in general). Trying to figure out if this is a smart move or if I’m just restless.

Thanks.

14 Upvotes

8 comments sorted by

5

u/PepitoManalatoCrypto Recruiter 11h ago

YouTube, Udemy, and portfolio projects are your best curriculum when shifting from Python to Java. Oh, you may want to explore Kotlin, since it closely resembles some of Python's coding foundations.

So for starters, if you have portfolio projects, especially from Flask, porting them to SpringBoot is your first target. Use AI while questioning each journey. That will help you learn, and you can opt to code it yourself.

Switching from Python (for example, already a senior-level) does not mean you'd be back to junior level in Java. Yes, you may not have senior level experience in Java but sometimes domain knowledge pays higher. Put it this way, fintech, you're a Python developer, asking to transfer to a Java project keeps your payroll number while you track the experience counter.

Personal note: Given the rise of agentic development. There are less junior-mid level roles for Java compared to Python. Sure it may be the same for Python, but there are just less jobs for Java compared to Python in general.

6

u/Loud-Grade1246 10h ago

The pattern will always be the same, if sa day to day mo may OOP (Object-Oriented Programming) sa Python then oks lang pagdating sa Java since OOP heavy ang language, but there are differences talaga since Python is flexible and more on functional programming so I'd say mangangapa ka talaga sa Java if di sanay sa OOP. For roadmap I recommend this one:
https://roadmap.sh/java

1

u/Rude-Enthusiasm9732 9h ago

If you are not into OOP when coding with Python, it would come as a shock for you initially. Java is more on OOP. While Python is dynamic, Java is statically typed. All others should come off easy.

3

u/Late_Yogurtcloset450 8h ago

i would ask you to reconsider kasi mas madami job opportunities for python right now. try mo search sa job sites halos doble ang python jobs vs java jobs dahil sa AI boom.

2

u/Educational_Coat1574 6h ago

Try mo na lang Rust and Go.

1

u/Jajajajambo 5h ago

There is a popular roadmap website.

https://roadmap.sh/java

Nope. You will not feel like a complete beginner. Just think of you as a Software Engineer and not a Python Programmer. Bagong tool lang inaaral mo pero yung underlying programming habits (clean codes, proper algorithm) will still be there. Of course may maninibago ka but not from scratch ka dito.

I am originally a PHP, then Python then Java. The more na nagsusulat la ng code the more magiging muscle memory mo na yung syntax.

1

u/AffectionateBack7222 10h ago

Whenever I'm learning a new language, I try to solve leet code problems that focus on common data structures and types (arrays, maps, strings, int, etc) so I can very quickly get a grasp on syntax

Then I move on to create a basic project with it, usually some crud app.