Sunday, 30 August 2009

Wondering about the state of Java Developers

A friend of mine forwarded this article by Yakov Fain on -

The essence of the article is this

The author interviewed a lot of people for developer positions, and most of them who call themselves Java developers and cite extensive experience in J2EE lack basic knowledge of core Java.

This might sound suspiciously like a gross generalization, but I believe that's not the case. I had a similar experience when I interviewed people for developer positions on my team last month. The position called for both Java and Javascript experience. These are the things I encountered -

  • Most people who have worked solely on services (read outsourced) projects list all J* technologies on their resume, but know very little in depth of Java programming.
  • There are people who lack any kind of programmer mentality or skills at all and put their current role as something like Programmer Analyst, and this fact cannot be ascertained from their resume alone. They often try to highlight other (non-software development) achievements.
  • SCJP certification is no guarantee that a person can code in Java (Surprise? Not at all)
  • There are people who have 3.5 years of experience, with multiple services projects under their belts, and familiarity with a host of technologies, who cannot write a Java class which will print out the prime numbers between 0 and 100.
  • Most core CS concepts are forgotten after 2-3 years of working in services projects.

Please note that I am not generalizing, but these facts do indicate a problem somewhere. These developers actually a represent a very small distinct sample of the worldwide developer community, since all my interviews were done in India (both face to face in my Hyderabad office and over the phone).

Another interesting point I noted was that most non-Javascript developers think that Javascript is used only for form validation. Such usage also qualifies as 'extensive Javascript knowledge' in their resumes.
What should I conclude from this? Is this malaise widespread in other parts of the world as well? Is it specific to developers in India working on outsourced projects? (No, as the link by Yakov Fain shows) Is it a result of outsourcing, leading to a lack of innovation? Or is the innovation there, but the signal to noise ratio too low?


  1. Well, added a point to your discussion.

    You cannot gain good knowledge in services based company like how you gain in product based companies.

    Since most of the services based companies in India deal with the Maintenance projects. So, the scope of learning is less.
    and they are time based tasks.

    Yes, the innovation is still there.

    I have one more point to share. In Interviews most people
    asks about threads and thread pools.But once they clear the rounds and enter into the organization.How many are really implementing these concepts.

    Might be you are providing a privilege for your employees to work on it, its great. But it's not happening with most of the people.

    I like your article. Keep Posting.

  2. @Sanjay: Thanks for your views.
    >>"You cannot gain good knowledge in services based company like how you gain in product based companies."

    It's true that the amount of learning is far higher (or should I say deeper) in product based companies - and I suspect that this is mostly, but not solely, due to the environment that the developers work in. There must be a small number of people who are always self driven to learn and grow regardless of the environment.

  3. Hi Hrish,
    You should say deeper in product based companies.
    Well, the second point what you have mentioned makes sense.Self driven people are there in most of the companies,but small in number.