I think I figured out why good Java developers are so hard to find
Let me start by saying I have an open java position that has been open for about 3 months now.
The problem has everything to do with what you do in your free time. Let’s say a family member asked you to create a website that had some dynamic content, but they only had a $10/mo budget for hosting. What do you do ? Let me tell you what most guys don’t do: chose java. Let’s say you wanted to teach yourself programming, what might have motivated you to take this on: a video game, a phone app, a website, a facebook app ? Take your pick, and when you decide to take the plunge what are the chances that you’ll end up choosing java? Slim, at best. Android, would be the only thing that could pull you to Java given those very likely choices.
If you’re already a good programmer, you probably program in your free time. If nothing more than dabbling or trying new stuff out, you probably spend time doing programming related stuff on your free time. This “dabbling” is probably how you managed to learn ”tool X” and you eventually ended up using ”tool X” at work or answering questions about it in an interview. My own experience goes something like, when I was a C++ developer, I taught myself VB and got a job as a VB developer. When I was a VB developer, I taught myself ASP and got a job as a ASP developer. When I was an ASP developer I taught myself Java and got a job as a Java developer and so on. I don’t think my evolution as a developer is unique at all. I suspect, this is how most programmers manage to keep themselves employed.
I’ve been looking for a junior java developer with about 3 years of experience who knows java and sql. That’s it. We’ve interviewed a little over 10 people. Here’s what is extremely obvious about the candidates I’ve seen: none of them do java development of any kind on their free time. Whenever anyone of them mentioned anything they’ve done on their own, it almost always was a website and almost always involved PHP. When as I evolving as a developer, Java was an attractive language so much so that I spent my free time learning it and developing applications in it – just because.
My theory goes like this: Good java developers are hard to find because fewer and fewer of them are being created. New developers are not choosing java to “cut their teeth” on. And I suspect that coming from whatever they are coming from, java doesn’t look appealing. Those after-hours projects that really give you that “learned the hard way” experience seems to be happening less in the Java world. When you take my original scenario, where you have to create a simple app and host it inexpensively; what do you think an inexperienced person will chose when they stumble on the Google App Engine and realize they can host their app for free: Java or Python ?