Ask HN: Is Java a wise career investment?
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?
[+] [-] RyanZAG|13 years ago|reply
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
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
[+] [-] vtanase|13 years ago|reply
[+] [-] kybernetikos|13 years ago|reply
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'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
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
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
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
[+] [-] exelib|13 years ago|reply
[+] [-] nXqd|13 years ago|reply
[+] [-] dotborg|13 years ago|reply
[+] [-] eranation|13 years ago|reply
[+] [-] ndeverge|13 years ago|reply
I actually take a bet on Scala and its functional approach.
[+] [-] dnu|13 years ago|reply
[+] [-] shobhitpandey|13 years ago|reply
[deleted]