http://www.perlmonks.org?node_id=141518

For fear of starting a huge flame-war, I'd like to suggest a few thoughts of mine about certification.

Perl certification is a hot (as in flame) topic. And I begin to see why. Of the various Perl 'testing' and 'certification' schemes on the web, almost all seem to rely solely on knowledge of the docs. I don't know the arguments to splice off the top of my head … does that make me a bad coder?

So, we ask ourselves, what is it that a company wants in a Perl programmer (I should use a thinner brush, I know)? They want someone who can write maintainable code, and quickly adapt to existing code. A 'P3rl W1Z@rd' may be fun, but if their code is unmaintainable, they're essentially useless.

So what do I propose? I think that any certification needs to be based on a practical examination. Give the coder a module they've never seen before that performs a task. Give them documentation. Get them to write code around it, ask them to write tests, ask them to make the code more clear. Check the code is safe. These are basic stubs of ideas, I agree, but does anyone else agree this is the right way forward?

Replies are listed 'Best First'.
(jeffa) Why I Hate Certifications
by jeffa (Bishop) on Jan 25, 2002 at 22:16 UTC
    I have two Microsoft VB Certs and one Sun Java Programmer Cert. They are somewhere with the rest of my junk collecting dust.

    I have grown to really believe that most certifications are a scam, especially the Microsoft program. Sun's cert program is better, so i will leave them alone and focus on Microsoft's certification exams. All they acurately test is how well you memorize syntax and how many Transcender CD's you have trained with. The bottom line is money.

    The cost is about $100-150 (usd) for each test, but you really need a third party trainer, either books or a training software provider such as the expensive but effective Transcender. Here is how much they are charging for their VB/VBA-Cert Pak (cookie alert).

    So, if you have the cash to afford Transcender, chances are, you will pass. Transcender offers about 3 tests with each CD, and each one made me feel like the professor gave me a special crib sheet just before i took the test. They are not cheating, but they sure do cut the fat out.

    Most IT hirers who go by certifications tend to work with third party Microsoft development shops anyway. These shops pay for their employees training and certification, i've actually worked for one and i really feel sorry for those who foot their own bill to get certified. While working for this employer, i quickly got the impression that we 'consultants' were getting our certs for the purpose of our own social status, rather than for our clients. On top of that, our clients completely believed that someone with a certification was more than capable of doing the job, that was criteria enough.

    The kicker - once you are certified, you have to maintain that certification. I was lucky and took the VB6.0 relatively early, my certs have not expired yet. But they will. That means that i have pay another fee and pass another test to keep up. Are you starting to see the scam in action yet?

    This next item is my own personal paranioa, but i'll share anyway. I accuse Microsoft of tailoring their API to their certification exams. It makes sense - an inconsistent API will cause more exam takers to miss questions, such as this one (that i made up): "More elements can be added to a Collection object with the _____ method:"

    • A. add()
    • B. add_item()
    • C. add_element()
    • D. pay_fee()
    First. Who cares?!?!?! Blindly memorizing API facts does not a good programmer make. A more acurate test would be, "Here is the manual, you've got one minute to find the answer".

    Second. It is a trick question, because MOST all objects in VB that hold things allow you to add elements with a add_item() method .... except the Collection object which uses add(). Dirty tricks, and that's just the tip - there are also questions that will only be answered correctly if you agree with Microsoft's philosophy.

    So, what's the alternative? I personally believe that building a portfolio is a better way of showcasing one's ability. Make a web site, a CD 'business card', anything. If your potential employee wants certifications, then chances are that they just want another cookie-cutter programmer. And that is what MS Certs really say about you, that you blindly follow directions without questioning why you are using a particular (their) solution.

    Now, is this really what you want to see happen to Perl? PerlMonks IS Perl certification. ;)

    jeffa

    L-LL-L--L-LL-L--L-LL-L--
    -R--R-RR-R--R-RR-R--R-RR
    B--B--B--B--B--B--B--B--
    H---H---H---H---H---H---
    (the triplet paradiddle with high-hat)
    

      PerlMonks IS Perl certification. ;)

      So when do you suppose we'll start seeing PerlMonks XP minima in job advertisements? Stupid companies are going to rely on worthless metrics no matter what you do.

      Yes, it's a joke. Go on, laugh, you'll feel better. ;-)

      --
      :wq
        I did :-) Unfortunately I don't have any votes left today. :-/ I'm sorry if my mindlessly spending them too quickly made you miss XP you needed for your applications ;-)

        Makeshifts last the longest.

Re: Certification Foo
by merlyn (Sage) on Jan 25, 2002 at 20:22 UTC
    Certification won't mean a darn thing to our community unless Larry blesses it. And he's already repeatedly said he won't bless anything. End of discussion.

    For what it's worth, I agree with his reasons and conclusion.

    -- Randal L. Schwartz, Perl hacker

      While I agree in principle, Randal, the problem is that BrainBench is already offering Perl certs. And there are classes of employers that just *love* BrainBench type certs.

      What Larry thinks will have little to do with what people wanting to hire someone who is known (by whatever metric, flawed or otherwise) to have certain qualifications.

      --Chris

      e-mail jcwren

        Ewww. BrainBench. Which have been shown by Perl Experts to have lousy tests. If an employer wants to trust a bogus organization, they get what they deserve.

        -- Randal L. Schwartz, Perl hacker

        I have a BrainBench certification in Perl hanging on my wall in my cube. I took the test because it was free. I hung it up because I went to the trouble of taking the test, getting a certificate, and out of the four or five certs I got from them, it was the only one that wasn't embarrassing. Mostly I keep it around because it looks semi-official and gives me a chuckle once in a while.

        It's certainly politically safer in the workplace than a certificate saying I'm Minister of the Universal Life church (which I don't think I am at this point, just an example). But I would never list BrainBench certification on my resume... I'd be a lot more likely to mention "active participation in the perlmonks.org online community" than a BB certification. Now if a prospective employer wanted me to pass one of their tests and was willing to pay the fee...
        And there are classes of employers that just *love* BrainBench type certs.

        Really? I've never met anyone except other Perl developers who have even heard of BrainBench. Did an employer actually ask you about this, or did you present them with a certification from BrainBench?

        I once got a bunch of brainbench certs just to put them on my resume to troll employers - If any of them put any stock whatsoever in them, I ran fast and hard in the opposite direction - I was actually able to extract some usefulness from them. One potential employer saw it, and said "You know brainbench certs are bogus, right?"... I replied back, congratulating him for passing the test.

        I'll be the first to tell you certifications in general are pretty bogus, as they don't mean squat about your real-world abilities, just your ability to Memorize TFM and syntax (something I'm horrible at). On the other hand, corporations are enamoured with getting their people certified on $foo and willing to throw large values of $money around to do so. Parting corporate fools and their money seems like a good idea to me.

      Hmm, Larry must not use OO Perl if he doesn't bless anything... </joke>

      But seriously, I agree here too. Certification in the computer profession, period, is a bad measure of worth; it's not how well you know the manual or the like, but how well you can do the task and find out things that you don't know in the process of doing so. Certification is simply a cop out for employers to determine if someone has a skill set; someone lacking a certification might actually have better skills than a certified person, and in several cases, there are people that lucked out in getting their certifications and actually don't know the minimum standards.

      Now, there's nothing wrong with having a potental employee write code to do a task and then have someone else evaluate it, as part of the interview process. This is a much better measure of what the person is able to do, instead of relying on what a piece of paper says.

      -----------------------------------------------------
      Dr. Michael K. Neylon - mneylon-pm@masemware.com || "You've left the lens cap of your mind on again, Pinky" - The Brain
      "I can see my house from here!"
      It's not what you know, but knowing how to find it if you don't know that's important

      Would you happen to have a reference or somewhere to point me to so that I may read his reasons and conclusion?
      Or maybe you could give us a synopsis?
        Ok, I'll answer my own question then...

        from January 17, 2001 Maya Tamiya at Perl/Ruby Conference in Kyoto
        CL: Some people seem to see the need for Perl certification. What do you think?

        LW: I think someone else can do that :-) I'm not going to tell people whether they're certified or not. My approach to language design has always been that people should learn just enough of the languages to get their jobs done. They shouldn't have to learn the whole language to begin with. But with certification, you have to be learning the whole language. Some people feel more comfortable that way. I guess if you want to hire experts, you want to make sure they're experts. Certification is useful for that.

        But most of the programming out there is not done by Perl experts. It's mostly done by Perl novices, and they sometimes make sloppy programs, that's ok. They learn by experience to do better over time and eventually they become experts and then, if they want to get certified and somebody wants to certify them, that's fine. I just don't want to do that myself.


        Out of the first 50 of 1,520 hits on "Larry Wall Perl Certification" the above was the only quote of Larry's position.
        To me, this doesn't sound like he is particularly against certification, only that he himself doesn't want to certify anyone.
      I disagree there. If companies are satisfied that it says something about a person if they have the certificate, then it will work. I think you're building castles in the air assuming HR departments and recruitment consultants know who Larry Wall is.
        I disagree there. If companies are satisfied that it says something about a person if they have the certificate, then it will work. I think you're building castles in the air assuming HR departments and recruitment consultants know who Larry Wall is.
        If that's the case, they won't know who any certifying body is. Might as well print up one of your own. I think they've been doing that at some of the TPCs anyway. I got one of mine somewhere at home.

        Certification is useless without authority blessing. Larry will not bless. The senior Perl community will respect (and have respected) Larry's action on this. Therefore, any attempt to end-run this decision will be seen as rogue, and just as pointless as printing up your own.

        So go ahead, print up your own. You want to be certified? Do it.

        -- Randal L. Schwartz, Perl hacker

      Well, shoot! I would pay good money for something blessed by Larry. The fact that he doesn't offer stuff like that is a testament to his ethics.
Re (tilly) 1: Certification Foo
by tilly (Archbishop) on Jan 25, 2002 at 21:59 UTC
    As someone who has been known to venture his opinions on maintainability, I think this dream exam is impossible to make work for various useful values of work.

    The problem is that maintainability is not inherent in the code. Instead it is an interaction between the code and the maintainance programmer.

    For reasons I hint at in nodes like Re (tilly) 1: Compactness, one of the characteristics of highly maintainable code is that it does a good job of maximizing the understanding the programmer gets for time spent studying the code. This is very different than maximizing functionality per character. For instance it is far more important to make it as easy as possible to chunk concepts together into higher level constructs, with which you can express your solution very naturally. And, of course, you would like to name and document your chunks suggestively so that the maintainance programmer can learn to use the chunks you are working with without having to go through all of the details.)

    However note that this description is highly dependent upon the programmer. Using powerful constructs like map can make it very hard for someone who knows only a little Perl to figure out what is going on, while causing no trouble for the experienced Perl programmer. Experienced programmers immediately chunk idioms upon sight, while less experienced ones don't know and don't care that something is a common idiom. Competent programmers generally have far more tolerance for having ideas rapidly build on each other than average ones or novices. (Code meant to be read by non-programmer, eg configuration files, should not be organized like you would for a fellow programmer.) There are many different styles of programming and you chunk in each in a different way. For instance OO and functional styles pose problems for people who are not experienced in them, even while they simplify life for people who are familiar with the style.

    And so on.

    In short, the maintainability of code is not something that exists in the abstract. Sure, code can be (and often is) clearly bad. But in general there isn't really such a thing as clearly maintainable code. The maintainability of code is defined through interaction with your audience, and the audience of possible Perl programmers is too diverse to be readily characterized.

Re: Certification Foo
by Lord Wrath (Friar) on Jan 25, 2002 at 20:38 UTC
    Blessed or not, liked by companies or tossed into the wind, the problem I have with Perl certifications is that most of them you have to pay for. In a community where the language is free, I can't see paying $20 usd to take a Brainbench (or the like) test that expires after a year and has no real world application. It's a waste of time and money. If the company knows so little of Perl that they rely on a third party certification, you should be able to get the job without a 10 cent certificate I can make with an equally expensive program. Language certifications mean nothing in the long run.

    If a company really wants to see what an asset to the company you can be, they will devise their own test that more closely shows what you can offer them.

    Lord Wrath
      That's an excellent point. Beware a company that can't (or won't) express what it wants in an employee.
      I'm wondering how long before ActiveState offers this. They're always looking for new ways to make ca$h off of something that's free. (Sorry, I'm still a little pissed having noticed last night them trying to get me to pay them to use PPM3 when upgrading Perl on my windows box.)
        Which of the following scenarios do you prefer?
        1. ActiveState tries to find money-making off of something that is available for free, which they contribute to.
        2. ActiveState tries to find ways to make money off of things that are not free, and only contributes to those.
        3. ActiveState goes out of business.
        There are, of course, many theoretically possible options which are missing from this list. But these are the most plausible options. And given these choices, I like the first best because it results in the most free stuff for me. YMMV.
Re: Certification Foo
by ignatz (Vicar) on Jan 25, 2002 at 20:29 UTC
    Like what Sun's doing with Java in their Java Certified Developer (as opposed to Certified Programmer). It certainly sounds a lot more useful than what currently passes for certification. Being a so called certified "Master" of Perl by one group (nothing that I'm proud of, but hey, I was unemployed and taking the tests beat watching Bonanza reruns), it only takes me about have a minute at the Monastery to realize that how far I am from really being one.

    It seems to me that a lot of the problem is that employers are going to need something that they can throw at someone through a simple web application. Is it possible for this to really work?

The Best Perl Certification Test
by metadoktor (Hermit) on Jan 26, 2002 at 07:41 UTC
    So what do I propose? I think that any certification needs to be based on a practical examination. Give the coder a module they've never seen before that performs a task.

    Yeah, here's the module. Now please write code around it, write tests and make it clearer.

    metadoktor

    "The doktor is in."

      That's not a module. It's the Camel code.
      But JFYI, there is already an available tip to reuse it.
      Enjoy! ;)
      _ _ _ _ (_|| | |(_|>< _|