Become a fan of Slashdot on Facebook

 



Forgot your password?
typodupeerror
×
Java Programming

Only 32% of Java developers really know Java 220

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."
This discussion has been archived. No new comments can be posted.

Only 32% of Java developers really know Java

Comments Filter:
  • How shocking... (Score:4, Insightful)

    by davegaramond ( 632107 ) on Saturday March 20, 2004 @09:06AM (#8620242)
    How shocking this news is to me, because it confirmed a survey report I just read yesterday: that 68,015% people lie in their resumes!
    • Add to that the fact that most people that claim know how to program don't know a shit, and you start wondering how they came up with such a HIGH percentage.

      Now, there's a reason of ofcourse, and reading the article explains it quite well: if they accepted any lower percentage (so as to come closer with reality) they'd have to accept that the products advertised in the "article" have awfully low possible market-shares. But then again, the people who ACTUALLY knew their stuff won't need those projects anyw

  • by davegaramond ( 632107 ) on Saturday March 20, 2004 @09:10AM (#8620247)
    Actually, the report is wrong. They just don't read the resumes carefully. The other 68% actually know *Javanese* Java, not Sun Java.
    • Nah. It seems more likely that those 68% know *coffee* java...

      Working knowledge of java? Sure. Enterprise java beans? Of course - the company they last worked for probably had nice grinders for those too.

  • by Anonymous Coward on Saturday March 20, 2004 @09:10AM (#8620249)
    "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."

    We also would have accepted: Only 26% of submitters to Slashdot can create proper sentences.
  • by sepluv ( 641107 ) <<moc.liamg> <ta> <yelsekalb>> on Saturday March 20, 2004 @09:11AM (#8620252)
    Researchers suggest that "less than a third of people who put something on their resume know anything about it". News at 11...

    Also "99% of researchers and statisticians have no idea what they are talking about and don't know what research means"

  • by FricassedMonkey ( 763742 ) <fricassedmonkey@hotmail.com> on Saturday March 20, 2004 @09:16AM (#8620266)
    It really is sad.. I've been dealing with Java for years, and I know that I couldn't bring myself to bother messing with a 'complex' project... Of course, I'm not going to be putting 'Java' on my resume anytime soon, either...
  • Not at all suprised (Score:5, Interesting)

    by smari ( 257143 ) <(si.rajye.gulv) (ta) (mps)> on Saturday March 20, 2004 @09:21AM (#8620281) Homepage
    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.
    • So true, that's why most people walk where they want to go, actually write letters, and live only off what the land provides for them.
    • hype is good in some ways, but in the grand scheme of things, it's the older, better stuff that will prevail.

      Yes, just like MS-DOS has prevailed...
    • by 4of12 ( 97621 ) on Saturday March 20, 2004 @12:00PM (#8620938) Homepage Journal

      those who really know their stuff

      More than buzzword compliant resumes, I've been more interested in people who could show me nice looking code and explain it intelligently to an audience that includes people with varying levels of expertise.

      I figure that anyone sharp enough to have picked up one language and set of libraries and used it well can just as well do it again.

      That said, I can see the temptation to use stupid HR tactics to try to screen out smokeblowers. Problem is that it's difficult to devise a system that simple, where a non-expert in HR can turn a crank and cull the dolts from the field with perfect accuracy (it's like defending against spam). You're likely to let posers through the gates (false positives) and cull out an occassional gem that looks unpolished (false negative).

      There's a good reason people resort to informal social networks for recruiting (that is, asking around if anyone knows anyone that's good and looking for a new position) - it's because the crank turning procedures are so unsatisfying.

      • by AJWM ( 19027 ) on Saturday March 20, 2004 @09:20PM (#8624088) Homepage
        I figure that anyone sharp enough to have picked up one language and set of libraries and used it well can just as well do it again.

        Close but not quite. You're as likely to find that they end up using whatever new language you throw at them as if it were some weird dialect of the only one they know well.

        My rule of thumb if I'm looking for someone that needs to be able to pick up a new language is to find someone that knows at least three different ones (and I wouldn't count C++, Java and C# as three -- one and a half, maybe), or two if they're different enough.

        My first two computer languages were Algol and APL, I've since been paid to write programs in about a dozen other languages and written toy programs in another ten or so. Heck, except for short term contract jobs, I've often ended up developing software in some language other than the one I was originally hired for.

        It's tough being on the hiring end too -- if I've got project deadlines looming and I'm given a foot-high stack of resumes to look through to pick out a few candidates to interview, I'm sorry but my first pass through the stack is to going to be to find any reason at all to not look at a given resume any further, so I can shrink the pile that I actually have to read and think about. I may end up throwing out a gem but as long as there's still one left in the pile I look at, that doesn't matter. (Well, not to me, I know it matters to the one I threw out.)

        Yeah, the whole resume/HR/interview process sucks, and it's one of the least efficient ways to find a job (or a good candidate), but alas most tech types are even worse at social networking, at least with the kind of people one needs to to get the job.
    • buzzwords rule the market from the big business' point of view.

      Java did represent an important step for industry beyond C++: it was the first widely accepted language with runtime safety, garbage collection, and reflection. Those aren't just buzzwords, they make a real difference.

      On the other hand, Java has failed to keep up: Sun's irrational insistence on insulating programmers from the underlying platform, their intellectual property claims and licensing strategy over Java, and their failure to evolve
    • You know, people also lie in their resume about older languages...

      I just hope I don't have to see a C++ template again in my life.
    • "Java was the popular thing of it's time. If you didn't know it at the apogee of the internet bubble[...]

      Let me guess, you are one of those who still think Java is mainly about applets, right? (OK, maybe you are not, but it's such a nice rhetorical opening question ;)) Boy, are you wrong...

      Here's a quick google statistic (mostly bogus, of course, as are most statistics) which, I hope, might shake your belief a little:

      • "Applet": about 3.4 million hits
      • "Java": about 61 million hits
      • "Servlet": about
      • by JanneM ( 7445 )
        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.

    • "Java was the popular thing of it's time."

      I'm unemployeed so I spend A LOT of time looking at job listings.

      In Austin, Texas, at least, it is STILL Java's time. Maybe things are different in Iceland.

      --Richard
  • by Green Light ( 32766 ) on Saturday March 20, 2004 @09:35AM (#8620320) Journal
    I see that I'm not the only one!
    • you laugh, but alot of the "developers" i've met actually don't code their apps from the ground up. Many of them couldn't even if they tried. It's almost become accepted practice in some circles to just google for source code that does something similar to what you need and then cut and paste the parts into your app, then recode it (change variable names, subs/functions) to work together with the whole program...

      is this what they had in mind when they brought out the whole idea of reusable code? or is it a
  • It's True. (Score:5, Insightful)

    by dmorin ( 25609 ) <dmorin@@@gmail...com> on Saturday March 20, 2004 @09:36AM (#8620326) Homepage Journal
    I am the first line interviewer at my company. I ask Java programming questions that I consider easy (like tricking people into trying to store a primitive in a collections object, or knowing how to determine if a bit is set). Sad to say most people fail. Some fail spectacularly.

    For the record I do NOT ask those boring certification style questions that you'd only know the answer to by memorizing the spec. All the questions we ask start with "here's a problem, now solve it with real Java code, please." If I've learned one thing, it's if somebody groans and complains that writing code is so trivial you shouldn't even ask it, then sit there and force them to write code because chances are they can't.

    • by Latent Heat ( 558884 ) on Saturday March 20, 2004 @10:03AM (#8620426)
      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.

      • I don't know the answer to your question about Java collection objects without looking it up,

        Basically I set up a situation where I want to create a hashmap of numeric counters such that I am going to increment a million times, but only store 100k keys into the table, and ask people to write me the structure to do it. Some just try to stick an int into a Hashmap and do a put(key, get(key)++) which shows a horrible lack of understanding of java objects. The better answer is when they know they have to st

        • personally, I'd say "why don't you give me a real business problem, and I'll solve it."

          The hardest thing to do in this business is understand the problem and come up with a solution that is maintainable, easy to code and scalable. If I want to know how to solve a specific algorithm like that, I'll google. Someone, somewhere has already solved it. I should waste my time trying to find the best solution. Instead, I should spend time trying to understand the business.
          • The hardest thing to do in this business is understand the problem and come up with a solution that is maintainable, easy to code and scalable. If I want to know how to solve a specific algorithm like that, I'll google.

            I don't consider myself a Java developer (I design/build UIs) but I would be pretty dismayed if I saw a self-proclaimed Java developer resort to looking up that "algorithm" on google. Granted, the parent post's wording is a little ambiguous but that shouldn't stop an interviewee from ask


        • Basically I set up a situation where I want to create a hashmap of numeric counters such that I am going to increment a million times, but only store 100k keys into the table, and ask people to write me the structure to do it.

          I have [or have had] a fairly extensive knowledge of the J2EE Collections Framework, and I don't have a clue what that "sentence" is supposed to say. In fact, screw the "sentence"; let's concentrate on the clause create a hashmap of numeric counters such that I am going to increment

      • 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 experie
    • Re:It's True. (Score:5, Insightful)

      by GypC ( 7592 ) on Saturday March 20, 2004 @10:10AM (#8620446) Homepage Journal

      The real skill is recognizing and choosing the best ways to solve problems with a computer in a given paradigm (OO, Functional, etc). Languages are easy to pick up, and almost all programmers (except maybe C) have a manual on their desk.

      Memorizing the nitpicky details or anything more than basic syntax is worthless. I'm sure Dr. Knuth would fail your little test. He wouldn't bother memorizing stuff that is easy to look up.

      I managed to get a job doing BASIC programming with little knowledge of BASIC. I knew C, C++, PASCAL, Perl, Python, and sh. It took me maybe 2-3 days to become comfortable with BASIC. Now I'm one of the best programmers they've ever had, and I'm cleaning up a lot of their old crap code written by people who sure knew BASIC, but couldn't design a readable program to save their own lives. I'm talking GOTOs every other line.

      Every good programmer with a background in OO languages worth hiring would be able to pick up Java in a very short time. You're probably weeding out a lot of real talent.

      Now go back to pretending you're a real programmer and getting your jollies mocking people who can't write a bunch of Java code off the tops of their heads without a manual to look at, yet dare to apply for a developer postition!

      • Re:It's True. (Score:5, Insightful)

        by Jmstuckman ( 561420 ) on Saturday March 20, 2004 @11:43AM (#8620854) Journal
        Now, I'm assuming that the original poster was giving this test to people who put Java on their resume. (Otherwise, why bother?) The first example he gave (testing a bit) could be done with simple boolean operators that are the same in many other languages. (there might be a better way but this is one...) The second problem (boxing/unboxing) is something that any Java developer with experience should be able to do in their sleep, because it is a VERY common operation.

        If I'm appling for a C++ development job and I put C++ on my resume, isn't it fair to ask me to, say, write a simple class definition without looking up the syntax? If I can't do it, then I must not have programmed in the language much at all, and I have no business putting C++ on my resume. In theory, the resume's supposed to be for languages you know, not languages that you could learn.

    • Re:It's True. (Score:4, Interesting)

      by humblecoder ( 472099 ) on Saturday March 20, 2004 @11:50AM (#8620891) Homepage
      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.
      • Well, what you say i true in general, except that sometimes you want someone who's not only a good programmer, but really knows a particular language. Becoming really good at C++ or Java still takes a lot of time because you always need to adapt the way you actually think about problems.
    • I'm not really a programmer, I don't know all those algos, language gotchas, APIs etc, so I'd just ask them what they've written recently for fun, and what noteworthy things they can tell me about it.

      They haven't written a program recently for fun? Better give a very good reason then, if they want a programming job. They have but can't describe it or say anything interesting about it? Yeah right... Hello world = fun for them? Woohoo.

      Why hire a person who's going to start work already having little joy wit


    • Of course most people fail. Do you really think an interview-style situation is one where people can regurgitate Java 101 answers to questions?
      When I hear things like this it makes me really glad I have a job. I remember one interview I went on where I was given a set of five questions to answer. I answered 3 out of 5 questions "correctly". I missed two of the questions because the interviewer had the wrong answer. It was funny when she said, "that's OK everyone I've interviewed has missed that question".
    • Re:It's True. (Score:3, Informative)

      by iabervon ( 1971 )
      You can store a primitive in a collections object in Java 1.5; haven't you read JSR 201? (Well, okay, it actually automatically boxes them for you, and you have to declare it as "Collection" instead of "Collection", but the compiler error message is reasonably informative, and it's trivially caught at compile time.

      I'm personally more worried about people who claim to know Java, but think that it is a good idea to keep pools of objects and reuse them. Aside from all of the programming hassles this creates f
      • You can store a primitive in a collections object in Java 1.5; haven't you read JSR 201?

        Of course I have. And every now and then a candidate references this as well -- but rarely. If they don't, I ask. If they do, we discuss whether this makes the language any more efficient or if it is just syntactic sugar to make the programmer's life easier.

        My original point was to give an example of a pretty simple problem -- really only one step removed from "How do you tell if a number is even or odd" or "How can

  • It's worse than this (Score:3, Interesting)

    by dhk42 ( 586518 ) on Saturday March 20, 2004 @09:40AM (#8620332)
    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
  • by Futurepower(R) ( 558542 ) on Saturday March 20, 2004 @09:50AM (#8620372) Homepage

    "Only 32% of Java developers really know Java."

    An old Digital Equipment Company manual for technical writers said that only a small percentage of people really know English. And here is an example of not knowing English, in the Slashdot story:

    "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."
  • 32% are any good? (Score:5, Informative)

    by bluGill ( 862 ) on Saturday March 20, 2004 @09:58AM (#8620402)

    Knowing Java is very different from knowing programming. If you can't do a complex project in Java you can't do a complex project in any language. If you can do it in any language, you can do it in Java. The first step might be learning Java, but any good programmer can handle that in a short time. Now granted I'd want someone who knows all the tricks on the team so I don't re-implement the wheel, but a complex project by definition requires many people so that isn't an issue.

    HR is far too hung up on what you have already done, not realizing that the data structures and algorithms are what counts, and they are the same in any language.

    • by peterdaly ( 123554 ) <{petedaly} {at} {ix.netcom.com}> on Saturday March 20, 2004 @10:17AM (#8620485)
      I agree with your statements if a distinction is added between procedural and object oriented languages.

      I have seen too many "old school" developers who havn't the foggiest idea about OO who think they can code in Java because they know the syntax.

      All languages are not equal.
      • "old school" I know java, somewhat. But I would definately have to say that its the OO stuff that catches me, because I am a C coder by trade... I like functional programming because its what I do 5 days a week eight hours a day (the few things I do that I can use java with afford me the opertunity to work on my OO principles)

        oh and I'm 26 and have only be coding professionally for 5 years. So much for your "old school" idea.... people will always be better at what they are used to working with. Gante
        • Re:32% are any good? (Score:5, Informative)

          by Haeleth ( 414428 ) on Saturday March 20, 2004 @11:59AM (#8620931) Journal
          I am a C coder by trade... I like functional programming because its what I do 5 days a week eight hours a day

          Um, if you're a C coder, then you are not doing functional programming, you are doing procedural programming. Functional programming means languages like Lisp, ML, and Haskell.
          • It is possible to program functionally in C, just avoid side-effects like you would in Lisp.
          • Perhaps he is doing functional programming: the original REBOL code was written in C with closures in the functional style. It is just *harder* to write functional style in C than a language specifically geared for it.
      • "I have seen too many "old school" developers who havn't the foggiest idea about OO who think they can code in Java because they know the syntax."

        I guess what you meant was that these "old school" developers don't take full advantage of OO capabilities. If they know Java syntax, I think that pretty much means they can code in Java. Since any Java program that produces an output uses objects, they must be doing OO programming as well.
    • HR is far too hung up on what you have already done, not realizing that the data structures and algorithms are what counts, and they are the same in any language.

      i think the problem is that it's very hard to tell from someone's resume and an hour or so of interview whether they actually know their stuff, much less whether they can learn new stuff. so most people just rely on job experience to determine whether people can actually be productive using a given tool or language.

      i ran into this problem wh

    • You are correct my good man, java is about knowing your classes hardcore and knowing what interfaces to extend, implement, etc so your code is the most flexible.

      One of the problems with OO programming is you can't always anticipate how an object might be used :) An interface you implement might be perfectly acceptable for your purposes, but there could be another interface which provides the same functionality for your software, and more functionality for another purpose of which you are not aware.

    • If you can do it in any language, you can do it in Java

      Hmmm, let's think over something here. I want to do a simple project: A time sychronization client. Well, I connect to a trusted time source, and I set the system clock to that.

      Can't do that in Java, because there is no API to set the system date. Pretty stupid, if you want my feeling.
  • by peterdaly ( 123554 ) <{petedaly} {at} {ix.netcom.com}> on Saturday March 20, 2004 @10:09AM (#8620444)
    And just because they may know the syntax, that does not mean they can write code worth a crap. I took over a project where a guy wrote his own xml parser while there were tons of free ones on the market. That was a disgusting mess the ended up being easier to convert to real parser rather than fix some parsing problems. He also used count to 1 billion loops when spawning external processes because he didn't know about waitFor(). At first we could not figure out why his code was so slow. Add on top this was all done in static void main, which no other methods or calls.

    He has moved on to writing web application in RPG for another department, where every new group of pages gets deployed on a new port...they seem lost on the whole url concept

    Knowing Java is like knowing English (or any language.) Just because you know the language does not mean you are any good at writing poetry.
  • ...for Compuware's software. For example, from the article:

    "Highly skilled and experienced Java developers are quick to recognise the value of MDA..."

    where "MDA" is Compuware's acronym for "buy our software and generate all your code". And since "highly skilled developers recognise the value", anyone who doesn't "recognise the value" and buy their product is an unskilled dolt.
  • Resume (Score:4, Insightful)

    by illuminatedwax ( 537131 ) <stdrange@nOsPAm.alumni.uchicago.edu> on Saturday March 20, 2004 @10:13AM (#8620459) Journal
    This brings up the point:
    What do you have to know to put a computer language on your resume? Let's say that I put "Java" on my list. Am I expected to, say, know all of the built-in functions for a vector, or string, during my interview? If I put Python down on my resume, am I expected to know the names of built-in function overloaders for classes or the functions and parameters for the re module?

    Basically what I'm asking is, if I put a computer language down on my resume, should I be expected to code something at an interview immediately without looking at any references? This doesn't seem unreasonable, if the program were simple, but I could imagine employers asking for more complex things. How complex is too complex and how much specific information should a computer programmer retain about a certain language, say, after not using it for 3 years (he was doing VBScript just until he could pay off his debt, I swear)?

    I think it's more important to know "how to program" rather than "how to program in X" because the skills you learn in one language are usually easily transferrable to another, as long as you have lots of experience in different kinds of languages: functional, procedural, OO, assembly language, etc.

    As a side-note, it looks in the article like by saying that 68% of employees don't understand Java, he really means that 68% of employees have never heard of MDA and have no idea what the hell it is, or don't quickly "recognise the value of MDA," since, of course, all highly-skilled Java programmers do.

    --Stephen
    • Re:Resume (Score:4, Interesting)

      by metamatic ( 202216 ) on Saturday March 20, 2004 @12:02PM (#8620950) Homepage Journal
      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.
    • I solve this by listing what I used at each job in the experience part of the resume, and listing practically everything I've ever used in the skills part. Then it's clear to anyone slightly technical that I don't really know much java, but I have used it before for some particular task. I put it on the list of things I "know" closer to the end. HR folks get buzzword compliance, hiring managers see better what I actually can and can't do. Rating skills never works either, though I seem to remember some of t
    • What do you have to know to put a computer language on your resume?

      Like many issues, knowledge is not black and white. To clarify the claims on your resume, you should qualify them. For instance, on my resume I would claim:

      Programming Language Skills: Java (Guru), C++ (Expert), C (Expert), Perl (Novice), Python (Novice), Visual Basic (Novice), C# (Novice)

      This provides an opportunity for the interviewer to read my claims of knowledge along a scale of how confident I am. If my terminology is not clear
  • by KamuSan ( 680564 ) on Saturday March 20, 2004 @10:34AM (#8620559) Journal
    This is exactly my experience. I've been developing in Java for about 8 years and I think I met just 10 other people who really know their Java. And of those 10 people just about 2 or 3 are able to design an enterprise class application.

    It's not just Java developers, in the booming years a lot of people were hired by IT consulting firms here (NL) that shouldn't be near any computer at all. I've seen system engineers who studied politicology and got an MCSE who don't know the most basic thing about Windows and are not able to solve any problem at all. I've met tens of 'project managers' who don't know anything about IT and even less about software development and are too stubborn to listen to people who do know their shit.

    The worst of all are VB 'programmers' who are just able to point and click a basic application, but don't have any feeling for what a programmer should be able to do.

    The worst is title inflation. Every donkey is a 'software engineer' these days, and if you are able to actually design a piece of software you should call yourself 'architect', otherwise people won't take you seriously.
    Because 'programmers' are seen as monkeys that type and are doing a trick that every other monkey can do. :-(
    • The worst of all are VB 'programmers' The worst is title inflation So, the absolute worst is a VB Programmer who calls himself a Software Architect?
    • 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

  • by metamatic ( 202216 ) on Saturday March 20, 2004 @12:05PM (#8620964) Homepage Journal
    The studies I'm familiar with showed that it took 5 years to become competent in C++, and that was before they added STL. So I suspect the statistics for the number of alleged C++ programmers who actually know the language would be even worse.
    • Never was a language so misued, so abused, so misunderstood, and more likely to cause a project to derail badly. For systems programming you are far likely to have greater success using plain C. It may be uglier but at least you will get the thing done.

      A better middle ground perhaps is like what the Mozilla folks have done - adopt C++ but make it understood that only a subset would be used.

      As for the anything-goes C++ approach...I advocate this strongly, for my competitors.

    • by Screaming Lunatic ( 526975 ) on Sunday March 21, 2004 @01:49AM (#8625591) Homepage
      The studies I'm familiar with showed that it took 5 years to become competent in C++, and that was before they added STL. So I suspect the statistics for the number of alleged C++ programmers who actually know the language would be even worse.

      I have been programming with C++ for 6 years now and I am competent with it and very productive. I would say 5 years is an overshoot if you're trying to gauge competence.

      I'm not sure what your definition of "knowing the language" is. If someone asked me to rate my C++ skills from 1 to 10, I would give myself a 4 or a 5. Anyone that rates themselves a 7 or higher is either named Sutter, Alexandrescu, Glassborow, or Stroustroup. Or is either grossly unfamiliar with the scope of C++ or flat out lying.

      Their were people that thought they new the language cold until Alexandrescu wrote Modern C++ Design and turned the C++ on end.

      I'm still trying to add policy-based design, template metaprogramming, and generics for more than just containers to my C++ arsenal.

      Give me 6 more years and I'll "know the language cold" until someone else writes a book on how to exploit a language feature of C++ in an absolutely different way.

      However, that is not a bad thing because C++ does not punish you for features that you don't know.

  • by Prien715 ( 251944 ) <agnosticpope@nOSPaM.gmail.com> on Saturday March 20, 2004 @12:21PM (#8621079) Journal
    I don't really know what it means to "know" java. The language's entire approach is to be an object zoo rather than using a few elegant commands to do most anything. Therefore, most of Java programming is looking things up in the docs. That my friend, is the most important skill.

    There's a few main types of programming styles: Object Oriented (Java), Functionally Oriented (C), Procedurally Oriented (LISP), and hybrids (C++, Perl). Once you learn how to think in the way required by each of these styles, all that's left is memorizing syntax and commands. And that's what man pages are for.
    • Yeah, sorry. Typo. Though in all honesty, LISP (common lisp anyway) now has loops and objects and with structs, you could write object oriented C. Most languages include flexibility. The exception is Java, which pretty much forces you to go for OOP.
    • Remember the Matrix, when Keanu says "I know Kung Fu"? It's like that, only with Java. It doesn't mean you can puddle your way through a toy app, it means you make the language your bitch. It does what you want, when you want it, how you want it. Maybe you don't remember all the classes and their methods, but you know the common ones, and you can find the rest from the API in a flash.

  • From my experiences with the resume and hiring process I would put the number at more like 2%.

    And that applies not to just Java, but ANY programming language or computer skill. After all, how many people who put HTML on their resume can actually code clean standards compliant HTML 4.01? How many know when CSS layout is appropriate, and when it is not, and can successfully blend table and CSS layout in an optimal fashion?

  • Is it any worse... (Score:3, Insightful)

    by fm6 ( 162816 ) on Saturday March 20, 2004 @01:21PM (#8621383) Homepage Journal
    ...than employers demanding 5 years Java experience -- 2 or 3 years after the language was invented?

    But it is mind-boggling what people can get away with on their resumes. Knew a guy who claimed to have graduate degrees from schools whose names he couldn't spell. You'd think employers would spot that, but no -- he actually held a couple of director-level jobs at the height of the bubble.

    I really should get a little more creative with my resume [picknit.com]. People who see it always ask why I don't mention where I got my 4-year degree. Answer: I don't have one. Which is a pain -- some companies won't even talk to me because of it. I could fudge up a degree from Whatsamatter U (double major, computer engineering and journalism). I'm sure nobody'd check. But I'm too much of a coward to pull off that kind of fib!

    Oops. Just had a thought. I know Java. My credentials are impeccable: I wrote the JDK release notes for almost a year, and I once played a video game with James Gosling! But I've never worked as a Java programmer, being absolutely the worst coder on the planet. But if the shortage of Java programmers is that bad, maybe that's not such a problem!

    • So you'd do stuff like
      System.out.print("H");
      System.out.print("e");
      Sy stem.out.print("l");
      System.out.print("l");
      Syst em.out.print("o");
      System.out.print(" ");
      System.out.print("w");
      System.out.print("o") ;
      System.out.print("r");
      System.out.print("l");
      System.out.print("d");
      System.out.print("!");
      S ystem.out.print( \n);

      ?
      • Well, I'm not that bad. I'm almost sure I could do better. Wait! You only need one print()!
        Output = "H" + "e" + "l" + "l" + "o" + " " + "W" + "o" + "r" + "l" + "d" + "\n";
        System.out.print(Output);
  • by Anonymous Coward
    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.
  • by azuroff ( 318072 ) on Saturday March 20, 2004 @03:43PM (#8622220)
    ... or an advertisement for OptimalJ?

    This has resulted in a tremendous backlog of projects," says Aad Van Schetsen, Compuware sales director for application development and integration solutions in the Europe, Middle East, Africa region.

    Ben van Niekerk, Compuware SA product manager, says locally the backlog is mainly in projects to integrate new applications into Java legacy code.

    Van Schetsen says the key to the success of tools such as Compuware's OptimalJ is their use of a model-driven architecture

    Tools like OptimalJ ensure best practices and standards as well as enable companies to leverage the core capabilities of their developers by allowing them to focus on applications and not the underlying technologies.

    "Although we are still in the education phase, particularly with less experienced Java developers and development companies, momentum is gradually growing with OptimalJ sales increasing threefold in the past financial year."
    • I think there are some people who say they know Java but are not that skilled, but I think 32% is way low. Maybe 65 to 70% of developers really know Java. This is just marketing fluff to try and sell a tool based on MDA which isn't going anywhere fast.
    • "...
      Compuware... Compuware... Compuware's OptimalJ... OptimalJ... OptimalJ..."

      Uhhh... Thanks for all the free advertising, azuroff.

      (ducks)

  • In college when they were trying to teach me Java, I wiggled my way out by proving I knew both C++ and pascal really well. I'm also allergic to C++, and will use it happily only if the API is QT (not MFC).

    I played with QBASIC for many years, made many little pascal apps, did quite a bit of Visual Basic, but was always a little allergic to C++. There were too many things I couldnt even conceptualize. C is so clean and easy, you can make tiny C programs, then read the assembly language and you understand eve
    • You seem to be a very much "old school" programmer whereby you don't adapt to new tech. This isn't a bad thing, especially if what you know works well but how long do you think you can afford to not learn new skills like Java? The OO programming paradigm is an evolution of programming languages designed to make it easier to replace parts of code that need changing (new GUI, database code etc) and aid ease of reading and understanding. OO should be used everywhere imho as its good programming practice. On a
  • ...more specifically, I blame my school and schools like it.
    Right now I'm attending a large university (formerly an "institute of technology") for a degree in Computer Information Systems, the main programming language they teach is Java (we also have to take classes on VB, PHP and COBOL, no C or C++ though)
    I like to think that I have a pretty solid understanding of programming (I had 5 years experience with C++ before I started school), but I had never used Java before, I am probably about average in it
  • by tsvk ( 624784 ) on Sunday March 21, 2004 @11:09AM (#8627187)
    As long as there are people putting "I know CHMOD and Upload/Download" on their resumes [ucla.edu], I guess anything is possible....
  • 'Knowing' Java (Score:2, Interesting)

    by cavalierlwt ( 764097 )
    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 langu
  • Why just JAVA? (Score:3, Insightful)

    by vatsal ( 692351 ) on Monday March 22, 2004 @01:57AM (#8631817) Homepage
    #) Isn't this true for every langauage....

    #) Building complex systems requires experience(on large projects and exp in a particular domain),no matter which language you are using....

    #) One good way to identify someone's love for a langauge or platform is to check for his participation and contribution to FLOSS. that loves ensures his personal interest and can be a pointer to the fact S/he is inquizitive and likes exploring more (not just learning the basic sytax required to do the job).
  • by richard_za ( 236823 ) on Tuesday March 23, 2004 @08:15AM (#8643575) Homepage Journal
    This article is an advertorial, I am in the development industry in south africa and itweb.co.za is often used to dispense stuff like this. In fact some software products I have written myself were paid for and featured on itweb.
  • Death of Java (Score:3, Interesting)

    by randall_burns ( 108052 ) <randall_burns@@@hotmail...com> on Tuesday March 23, 2004 @01:31PM (#8646566)
    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 [technicalpursuit.com].


    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. [technicalpursuit.com]


    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.

Work is the crab grass in the lawn of life. -- Schulz

Working...