top | item 5012195

Ask HN: Is Java a wise career investment?

14 points| vtanase | 13 years ago | reply

Hello,

I have been working for close to 2 1/2 years as a Java developer, and seeing all the job postings on HN as of late, I have been wondering if it is wise to keep learning and investing in Java or if I should consider broadening my horizons by learning other programming languages(I have dabbled a bit in Python and Ruby so far).

Since this question is quite dependent on geographic & economic context, I will provide some more detail. I am living in Romania, and have no plans of relocating. Currently the local job market has a lot of Java openings since enterprise clients from Western Europe are sending their projects to us to reduce development costs. How long this trend will last is quite uncertain, and this makes me wonder if Java is a worthwhile investment.

I have been considering starting to freelance but Java doesn't really seem to be the language in demand. The same goes for doing remote work for companies from outside my country.

I will also mention that I have a CS degree, so I know the universal theory behind programming like OOP, design patterns, algorithms etc.

So, in conclusion what would the kind people here at HN recommend? Sticking with Java, or switching to some more in demand language?

17 comments

order
[+] RyanZAG|13 years ago|reply
HN is mainly startups who need to develop code quickly and be as 'in fashion' as possible. Java is more focused on long term, reliable code. For a general idea of the 'real' popularity of a language outside of the silicon valley startup scene, something like this is a better indicator:

http://www.google.co.za/trends/explore#q=java%20developer%2C...

So it really depends on what you want to do - if you want to work in a large multinational or contact out to larger companies, then Java is a far better choice than Ruby or Python as the job demand is much higher.

If you want to jet out to silicon valley and shack it up with some guys who probably can't afford breakfast the next morning, then Ruby and Python are THE thing to go for! Not that you won't find enterprises using these languages, they're just much further apart and the demand level for these jobs is usually through the roof.

Flamebait It's still true though.

[+] caw|13 years ago|reply
As an enterprise sysadmin, I concur that Java is focused for long term code maintenance. Reliability of the JVM is for another discussion :)

We do have Rails and other "fun" language applications, but there are few people who know how to write or debug them. Mostly it'd be the small internal teams that use it. Larger teams would still be using Java. Phone application development is a similarly rare skill, hence the outsourcing.

Besides Java, we use copious amounts of .NET. That could be another area you want to focus on in addition to Java if you want to stay in the enterprise space.

[+] CommitPush|13 years ago|reply
Try to learn Android and you raise your market value multifold. I would however though learn a scripting language to have a complementary skill-set and put a framework on top of that. I'd recommend Ruby --> Ruby on Rails.
[+] vtanase|13 years ago|reply
Excuse my ignorance, but why would learning Android increase market value by more than say something like Ruby?
[+] kybernetikos|13 years ago|reply
Java is a good thing to know, but I suspect that Java-the-language may not have a massive future. It's pretty telling that some of the major java IDE developers are also pushing their own JVM languages (eclipse: Xtend, jetbrains: Kotlin).

There's some interesting stuff going on in other JVM languages, I'm particularly interested in Scala and Clojure.

I think you've provided yourself with an excellent starting point having learnt java, but it would be a bad idea to stop there.

[+] vtanase|13 years ago|reply
I have no intention of stopping. I guess my curiosity was more along the lines of whether it is worth it to dig deeper and learn more Java, or if it would be better to go for some other languages.

I'm also pondering about switching jobs for this, since the best way to learn in my opinion is to force yourself into real projects with new technologies and not just hack on some small projects for a couple of hours each week.

[+] jerven|13 years ago|reply
Well what do you want to do? What kind of problems do you like to solve? Then look around and see what languages are commonly used and why they are used to solve that category of problems. Then try those languages, and form your own opinion.

I personally think languages are easy to learn enough to get stuff done. API's and libraries with their uses, corner cases is much more work. i.e. the java language specification is just one little book. But once you add all the common API's and libraries and how to interact with most common systems. i.e. DBMS and networks you have a small library.

In the end you are paid for solutions to problems, so learning to understand and solve problems is the most important.

[+] jsmartonly|13 years ago|reply
It depends what you want.

A) If you want to make more money or look for career change, then you have to listen to market and learn whatever it needs or pays well.

B) If your goal is to do long term career investment, then keep learning Java and make yourself an expert of it. To become "expert", you inevitably will have to learn a lot things that are beyond Java language and platform. Later on, these knowledge can be easily reused in other languages.

A) is short term, B) is long term. How about allocate 50% of your learning to each of them, then adjust allocation when you feel you need to?

[+] TheSmoke|13 years ago|reply
i don't think java as a language is a better investment than others however java as an ecosystem is.

jvm is expanding, concurrency and scalability is more important than ever and jvm can provide you these tools. you can learn about jvm optimization, languages like groovy and scala, web frameworks like grails and play.

and of course a little bit of python and ruby won't hurt. :)

[+] wanabeunknown|13 years ago|reply
learn couple of languages not only java but remember java is weapon of choice in enterprise businesses
[+] exelib|13 years ago|reply
very big +1! But not only languages, techniques like TDD, BDD and so on, concepts like prototyping and frameworks.
[+] nXqd|13 years ago|reply
Actually, I don't find any difficult when I change from one language to another. It's not much different, if you are looking for getting a hot job in the market, just playing with ruby, javascript [ coffee .. ] and soon you will get into it pretty quickly.
[+] dotborg|13 years ago|reply
I see no reason, why as an experienced Java developer you couldn't become javascript/ruby/python/scala/whatever expert. There is not that much to learn in Java.
[+] eranation|13 years ago|reply
Hard to tell the future, but I'm betting on Scala. Relevant for enterprise, gaining momentum for startups, and I think has the best of both worlds.
[+] ndeverge|13 years ago|reply
Java is a too verbose language, and it will eventually be replaced by something else. But the JVM will stay for long (it is the actual runtime standard for the enterprise). So now, you'll have to bet on the next JVM language: - Groovy ? - Kotlin ? - Ceylon ? - Scala ? - Other ?

I actually take a bet on Scala and its functional approach.

[+] dnu|13 years ago|reply
As a first step, you could expand to other JVM languages (like Clojure, Scala, Kotlin, ...)