r/softwareengineer • u/hydanon • 7d ago
Java vs Python: Which one is better?
As a fresher who wants to land a job faster, which language is better to focus on?
Points for context:
1. Planning to move from non-tech to tech. Have 3+ years of experience as Data Analyst.
Already good at basic python scripting for automation.
Based in Hyderabad.
Goal is to make the move as developer by building a portfolio of projects soon.
Should I build projects in python and stick with it (add more frameworks and get better by building more) or should I learn Java (Ofcourse spend enough time to build here too)?
As I feel like there are relatively more opportunities for someone who is good at Java. After I learn Java maybe I can showcase both Python and Java on my resume?
I want to understand the perspective of someone who is in the field.
2
u/a_day_with_dave 7d ago
I don't think the language matters so much in this world. Other than threading and private classes idk what else java can do any differently than python under the hood
2
u/Low_Breakfast773 7d ago
JAVA (if the choice is only between those two).
It will make you overall a better engineer (compiled, statically typed, faster etc.)
Python is a glue/scripting language. It’s fun, as long as you don’t have to build something serious. Too much hype, especially because of AI, but 99.999999% of those so called AI engineers don’t really know Python, as most of them come from different backgrounds and think Python is all about Pandas, Numpy (best case Pytorch, JAX and FastAPI).
2
u/Low_Breakfast773 7d ago
PS. Funny thing is that I hate JAVA more than Python. If you allow for another choice, I would highly recommend to look into C++ (potentially also Rust).
1
u/hydanon 7d ago
I believe the suggestions (C++ or Rust) you just gave are from the perspective that these languages will help me to become a better engineer. But I do have a question whether they have as many number of openings as Java? I recently remember a friend of mine (C++) who was preparing for interviews and mentioned that Java has more volume of vacancies when compared to other languages.
My perspective is that more volume of openings = more opportunities to land interviews and relatively get a job faster?
Please correct me if I’m not thinking in the right direction
2
u/Low_Breakfast773 7d ago
That might be true, but also depends which sector you are looking at. I am currently working for big financial institution. Most of the stack (core systems) are either C++ and Rust is catching up. Internal tooling is/was mainly Java, but most of it migrated to Kotlin. When I look at the job board of the company the ratio of C++ vs Kotlin jobs is about 5:1.
1
u/hydanon 7d ago
What did you infer when you chose Java and said that if the choice is only between these two? Would recommend something else?
2
u/Low_Breakfast773 7d ago
Java is a solid language but languages are "tools and communities" at the end of the day. If you choose a specific language then you bind yourself to a specific community and a specific tool. Not all tools are good for everyone, some are faster, sharper, more flexible etc.
2
1
u/hellomoto320 6d ago
java will never go out of style because so much enterprise software is built upon the java jvm. That being said you should learn scala. Boris Cherney(inventor of claude code) recommended the scala redbook and said that scala teaches a lot of principles and ideas that you can adapt to any programming language by learning fundamental concepts in imperative programming and declarative programming
1
u/hilbertglm 3d ago
Knowing more languages is generally a good idea. Since Python is not strongly-typed, and Java is strongly-typed, I would suggest that you pick up Java to understand the difference (and the importance of type safety).
1
1
u/Ok-Zookeepergame4391 7d ago
Python for AI or general. Java is COBOL of the enterprise. It is still widely used in Enterprise but wouldn’t bet careers. Learn Rust
0
7d ago
[removed] — view removed comment
1
u/softwareengineer-ModTeam 7d ago
Your post or comment has been removed under moderator discretion. As the community grows, not every situation can be covered by a specific rule. Moderators reserve the right to remove content that negatively impacts the quality of the community.
3
u/AkiAki1 7d ago
Python for scrappy buggy fast results. Java for high quality long term results.