If I'm looking for a stable career with a ton of job prospects, is there any reason why I shouldn't specialize in Java?

You will find that specializing in any one language or framework is relatively rare in the industry. In fact, with the speed at which libraries/frameworks/api's change, if you try to specialize in any one thing you will be quickly outdated. Plus, by specializing in one thing you're limiting your job opportunities.

In a perfect world this is true, however I believe it pays to do what I call "pseudo-specialize".

The truth is that the vast majority of employers will prefer and find someone that knows their stack, rather than someone who may be a good programmer but has worked in another language. Therefore my opinion for OP's problem is to eventually choose one language or stack and get good at it (OP's would be Java), so that you are easily able to get jobs past junior level while keeping an eye open to new stuff and the industry in general. If Java seems to be dying, don't be stubborn and look at what has replaced it.

With regards to Java I know people who have been doing only Java for twenty years. Java doesn't seem to go away any time soon and you can find jobs for it both in big cities and your suburb's enterprise area. If you want a straight-forward career it does pays to focus on it. Honestly most of the older devs I know seem to have been working in the same language for a long time, be it Java or something else. Maybe our current generation of developers will be different, though.

Of course, this assumes /u/rubynew is also a good programmer in general. What I am saying is that sometimes it does pay to specialize and focus on being good at X language because more often than not that's what the employer wants. Also (and this is just my opinion) I find that people raise the "all languages are just syntax" flag too often, when more often than not, the correct way to write languages differs greatly.

/r/cscareerquestions Thread Parent