Slashdot Mirror


Only 32% of Java developers really know Java

prostoalex writes "Research firm Gartner draws attention to the fact that less than a third of people who put Java on their resume actually know their stuff. The knowledge gap between someone who can successfully write a System.out.println() and someone capable of designing and implementing a complex Java system brings to companies being back-logged with pending projects."

15 of 220 comments (clear)

  1. Not at all suprised by smari · · Score: 5, Interesting

    Java was the popular thing of it's time. If you didn't know it at the apogee of the internet bubble, you didn't get a job in the computer idustry; it's a lot easier to say that you know it, and hope that you never have to use it. I for one hope that I don't have to write Java code again...

    Now things are pointing similarly towards C# and .NET - buzzwords rule the market from the big business' point of view.

    However, those who really know their stuff normally stick to the older languages... hype is good in some ways, but in the grand scheme of things, it's the older, better stuff that will prevail.

    1. Re:Not at all suprised by AJWM · · Score: 3, Interesting

      I've seen some people do a skills matrix -- list each language (or other computer related skill, like system administration or particular packages) and give a level of experience for each, sometimes also with a "last used" date.

      I used to categorize them in groups, something like:
      Highly skilled in: C, C++, Java
      Experience in: Python, PL/SQL
      Some exposure to: Ruby, Coral 66, BF

      If I'd just done a couple of classes, it'd be in the "some exposure to" category. Anything less I wouldn't bother mentioning. (Hey, I've done the equivalent of "hello world" in a lot of obscure languages, and (like a lot of programmers) I can read more than I can write code in.)

      These days I have enough trouble cramming my resume into just three pages, so I don't bother listing anything I'm not prepared (by both knowledge and inclination) to immediately sit down and start coding in. If there's some other language that might also be relevant to the job, I'll mention it in the cover letter. And there's stuff I leave out -- I've been an APL resident expert, even taught courses in it, but I don't mention it on my resume because (a) I'm very rusty and (b) I have no particular desire to do develop in APL again (and I guess (c), there's no demand for it). Now, if someone were looking to convert an APL application to Java, say, I might be interested.

      (And on one job, despite never having claimed any knowledge of COBOL and even actively denying any knowledge of it, the boss stuck me with extending a COBOL application, over my protests, saying "it's easy, you'll pick it up". (Fortunately I managed to put it right back down again after that project ;-)

      --
      -- Alastair
    2. Re:Not at all suprised by JanneM · · Score: 2, Interesting

      Hm. Ok, this kind of "statistics" is of course just fo fun, and have very little relevance. That said:

      "java" - 60 million hits

      but

      "java -coffee -island" - 9.3 million hits

      Still quite a lot, but not as huge as the first search made it out to be.

      --
      Trust the Computer. The Computer is your friend.
  2. It's worse than this by dhk42 · · Score: 3, Interesting

    My real world experience tells me it is much less than 32%. 15% at best (though another 15% THINK they know java - this is where the real danger lies).

    If you require knowledge of complex topics like sensible J2EE architecture or multi-threading it falls into the single digits.

    The second half of the article recommends Model Driven Architecture for the masses as the solution. This amounts to putting complex tools into the hands of idiots. Tools that go out of their way to keep people ignorant, while simultaneously giving them the power to commit their sins on a grand scale. Brilliant.

    dhk

  3. Code-completion interviewer by Latent+Heat · · Score: 4, Interesting
    I am of the mind that asking technical questions are fair interview questions -- I mean what are you supposed to ask in an interview for a technical job?

    On the other hand, most of us mortals don't store all the details of API's in our heads. Back in the Stone Age we used manuals and in the Information Age we use the SUN Web site. If your interview objective is to see how someone would get the information to solve the problem, that is fine, but if your objective is to see if that person already has some narrow set of information, you are going to exclude some capable people.

    I am mainly a Delphi developer (I should say a Delphi component developer), and my Java experience is only 4 months old, and gee, my Java experience is limited to using JNI to allow a Delphi ActiveX component to invoke an extension module written in Java and using a class loader so that extension module can be reloaded while the ActiveX component is still running.

    I don't know the answer to your question about Java collection objects without looking it up, although I have enough sense to know that you have to use Object wrappers for value types in collections and then have to cast those objects back to their original types when you pull Object references out of collections -- I know that from "wasting" time reading Slashdot.

    I guess I would fail your interview.

    1. Re:Code-completion interviewer by C10H14N2 · · Score: 2, Interesting

      I had an interview recently where they were looking for someone who "knew" VB, a VERY obscure piece of middleware that runs both VB and Java, and Websphere. Ok, got all of the above. However, my working Java experience is limited to J2EE, you know, the sort of Java that's relevant to the aforementioned systems. The interviewer look utterly blank when I explained that, even though his job description did not explicitly say anything about Java that it was necessarily implied and that, yes, I have J2EE experience but not Swing/AWT GUI design, so please fortheloveofgod, make sure the Java you don't know you are asking for does not involve blasted Java GUIs. Sure, I *could* do it, but I've NEVER needed to and I don't want to. Ever. I hate AWT and Swing. Blech. Conversely, I know quite a few people who "know" Java in the sense of building pretty applications in Swing. God bless them, but they don't know the first thing about J2EE. Unfortunately, HR types wrap the whole thing up in "knows Java." That's as useful as "Knows C." Ok, now somewhere between "can write 'hello world'" and "can write nuclear power safety systems" we must find a usable definition of "knows," because if all you need is someone to write accounting functions and you've got a nuclear engineer across the desk, or vice versa, even "has the entire API committed to memory" is not a sufficient yardstick to work with.

  4. Re:Only 0% of editors proofread their articles. by saden1 · · Score: 3, Interesting

    Was I the only one that got the feeling that they were trying to sell me OptimalJ? Although I agree with the lack of "skilled" Java develoeprs I really can't their numbers seriously as they are quite lacking in the credibility department.

    --

    -----
    One is born into aristocracy, but mediocrity can only be achieved through hard work.
  5. Re:It's True. by humblecoder · · Score: 3, Interesting

    I have been on both sides of the interviewing table, and in my experience, the best technical interviews are language-agnostic, regardless of what language is used in your shop. All of the questions that I ask start with "here's a programming problem, now solve it in whatever language you want". I am more interested in seeing a person's thought process as they go through the steps of solving the problem than their syntactic recall for a particular language.

    My rationale is that a software developer who has excellent problem solving skills can transfer their skills to any language. However, someone who knows the syntax and tricks of a language cold may or may not be a good problem solver.

    The only exception to this is that if I want someone with OO skills, I will ask language-agnostic questions about OO design and development concepts (ex: define polymorphism, state why it is useful, and give an example of how it can be used).

    Also, a question that "tricks people into trying to store a primitive in a collections object", doesn't seem like a very useful question. First, you are testing for knowledge of a Java syntactic quirk. Secondly, even if a person didn't know about this quirk right off the bat, any developer worth their salt certainly would figure it out the first time they tried to compile the progam.

    In fairness, I do like the question about determining if a bit is set, although I wouldn't hold it against the person if they didn't have the Java bit operators memorized. As long as they understood the CONCEPT of bit manipulation, I'd be happy.

  6. Re:Resume by metamatic · · Score: 3, Interesting

    I've been writing code for (thinks) over 20 years now, and whatever the language I always need to make extensive reference to documentation for simple things like names of API calls and order of arguments. For instance, in spite of writing C for over 20 years, I still need to refer to the man pages to check the parameters for fopen. Any employer who expected me to write code at an interview and get the syntax correct would be in for a big disappointment.

    So I have a big problem with syntax. That's why I like Scheme and hate C++. To me, syntax seems like a silly arbitrary distraction. I wish more languages took the Smalltalk approach to function arguments, too.

    I'd have no problem with questions about architecture, abstraction, the development process and design trade-offs though.

    --
    GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
  7. Re:Why do people keep making excuses for Java? by the+eric+conspiracy · · Score: 2, Interesting


    It doesn't work well for an applet in a browser, and it doesn't work well for stand alone apps.

    Yes, and those are not the areas where Java has been very successful. However there are others, like server programming where Java is clearly the best choce.

    I think most Java programmers are like me, they played with it enough to find out it's not worth the trouble.

    I hope so. That will make it easier for those of us who actually understand Java and where it is appropriate to charge high hourly consulting rates.

  8. "know Java" vs "programming java" is still legit by Anonymous Coward · · Score: 2, Interesting

    I list Java among my skills, even though I cannot write Java code worth a damn. And I'm not lying to the resume reader.

    I know what Java is, I know how to use the Java commandline to turn on Debugging, manage memory usage, turn off GC, etc. I know more about idiosyncracies in Java VM versions on 6 different platforms then most programmers.

    I never said I knew how to program Java.

  9. Re:Whooha! Gartner is right this time! by hsoft · · Score: 2, Interesting

    The VB thing is absolutely right. And I was *lucky* enough to have this type of guy as my project manager. He first started the project with Delphi (which rules, as everybody know), and when I was hired there, I started talking about refactoring the whole thing after 3 months (Trust me, the project really needed (and still needs, since that refactoring has never been done ) it.), and this guy said: "I think we should rewrite the whole thing in VB".

    I then knew that I needed to work under another project manager. I had to argue a lot before he finally gave up about VB. Darnit, this guy programmed 8 years with delphi, and has absolutely no clue about what OOP is (He knows that he must add code in the OnClick events).

    I don't call these guys "programmers", I call them "barely-over-the-average users how can effectively point-and-click-and-sometimes-even-type-stuff". Hopefully, a lot of these guys are laid off because of the india outsourcing.

    There was a great comment about VB on ask.slashdot.

    --
    perception is reality
  10. This is even more chocking!! by Anonymous Coward · · Score: 1, Interesting

    I got my first Java job without any knowledge of Java at all!! chock!. Only after several days working with Java did I understand the basic packages java.lang, awt, applet, net and text!!

    Turns out a lot of the "very experienced/but selftaught java programmers" in that company didnt really understand object orientation and still wrote code that was completely unmaintanable even after several years!! but on their resume they can truthfully state that they know most of the language and api.

  11. 'Knowing' Java by cavalierlwt · · Score: 2, Interesting

    At what point does a person *know* java? I graduated a few years ago, and I listed Java on my resume. I had taken two semesters (Introduction and Client/Server) and felt like I should list it. I would venture a guess that no project done for a class rivals the complexity of a real world project, but are college students supposed to leave their resumes blank? Naturally I didn't list Java under the experienced listings,but under languages known. Maybe there should be industry standardized tests for each language, not unlike A+ certifications or Redhat Linux Certifications.

  12. Death of Java by randall_burns · · Score: 2, Interesting
    Java from the start was _way_ overhyped IMHO. The big thing that Java was supposed to do early on:
    provide a development platform by which developers could do applications applications that would run either on the client or the server. The big problem is that Java never really delivered on the client end. Applets run, but they are so poorly engineered, in the words of Marc Andreeson "client side java is dead'--and Javascript has take much of the role it was anticipated that Java would take on the client.


    I previous poster made legitimate points that Java brought garbage collection, reflection and runtime safety into the popular eye. However, there are other widely used, well-standardized languages with those same features, namely Javascript.


    C# may be better in key respects than Java, but I have trouble conceiving of C# as a really open standard. The ECMA standard for Javascript is already supported by a variety of companies(i.e. IBM, Lotus, Microsoft, AOL/Time/Warner/Netscape) in a variety of products.


    The folks at have shown that they can extend Javascript quite a bit-even in browser implementations.For all of the talk of C#, one thing that is interesting about .Net IMHO is the they've provided an interesting platform for server side Javascript. If mono takes off at all on Linux, I'd expect we'd see a growth in the server-side Javascript community and the promised that were made for Java early on would start to be delivered through a different language.


    I'm a DBA and Perl/Python programmer. I've used Java for class projects at CMU. Java and C# both strike me as overly complicate for most of the work I do on a day by day basis. Javscript isn't there yet-but I can see that it might get there. There is a real niche for a well standardized, universally available scripting language that just hasn't been filled yet. If a small fraction of the engineering effort applied to Java were applied in this direction, I'd expect big benefits.