I had this digg thread about this article forwarded to me about how most programmers can’t code at all. From what I gather (the main article site is down) the writer says most programmers copy and paste code, and have no idea what they are doing. That may be true. I can’t say for sure. I’ve seen quite a few applications where that would answer some questions. But one thing that has me miffed was the fact most of the comment’s agreement and proof is: people can’t write code on a whiteboard.

That has to be one of the stupidest things I’ve ever heard.

How many people out there write code on a whiteboard? On a piece of paper? Forget those IDEs and editors, heck forget the keyboard and computer. Here is a pen, write me some code. Oh yeah, and do it with an audience. Is this 1954?

Of course almost every programmer I know codes this way. There are cubicles full of just desks and whiteboards where people sit around with dry erase makers and write huge applications - not design the application or brainstorm, no no, they write code on these whiteboards. If they have a large computation problem, I think they can use a abacus, but only if they are a current employee at Google.

In fact, it is well known that Office XP was written entirely 8 1/2 X 11 Clairefontaine notebooks then handed to guys who translated those to punch cards. They also were able to do this without needing to use man pages or any reference material - something we all need to strive for. Because that’s useful.

Yes, ladies and gentleman, if a geek who rarely leaves his computer is put into a completely uncomfortable situation where he is being judged, removed from every ounce of familiarity he / she has grown used to for the past 5-9 years, and can’t write you an application on a whiteboard - they suck. Forget looking at what they’ve accomplished. Forget it’s obvious they know how - if they can’t blurt out function names from memory they are completely useless, and should be discarded immediately. Because in the real world, you aren’t allowed to use reference material.

This really errks me because most people can’t even spell when they approach a whiteboard.

Ok, so this posting is a bit over the top, but when I was last looking for a job almost every single place had me write code either on the whiteboard, or on a piece of paper. Often times I refused to do it because I didn’t see the point in it, and when I asked what they were testing me on they often said something like, “to see if you can code.” If that were true, then the experiment is flawed from the get go. I rarely use a pen anymore, let alone write code on anything but a keyboard.

By the way, I often suggested that if they wanted to give me a computer, or let me send them back an example / answer after the interview I would be more than happy to do it for them. Often that was unacceptable, it was paper / whiteboard with audience or nothing.

I fail to see how writing code on a whiteboard shows programming expertise - or even programming ability to be frank. Give them a computer if you want to test their ability to program a computer. Give them a whiteboard if you want to test their designing / brainstorming ability.

Comments

This entry was posted on Tuesday, February 27th, 2007 at 11:39 am and is filed under General. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

10 Comments so far

  1. pan69 on February 27, 2007 12:59 pm

    I think someone read Joel on Software’s “The Guerrilla Guide to Interviewing” and pulled the whole thing out of proportions.

    http://www.joelonsoftware.com/articles/GuerrillaInterviewing3.html

  2. dnm on February 27, 2007 1:39 pm

    You’ve missed the whole point of the article. The medium on which the program is entered is irrelevant; what is relevant is that given a few minutes, many people couldn’t write the simplest of tasks and make them work. Some could if given more time, but the point is they shouldn’t need more time.

  3. pan69 on February 27, 2007 2:20 pm

    There is a big difference in solving programming related problems on a white board and writing code on a white board.

    The medium is definitely relevant because programming usually goes in iterations which it easy to do with a text editor but damn hard to do on a white board.

  4. rob on February 27, 2007 2:27 pm

    “You’ve missed the whole point of the article. The medium on which the program is entered is irrelevant;”

    But it is relevant. That is my point. If you take a runner who trains at the beach all his life, and then make him run cross country, not only is he out of his element, the terrain is completely different.

    For example, when I write code I don’t do it from line 1 to line 10 in a linear fashion (which is kind of required in paper form). I’ll write say public String blah(){} then backspace between the curly brackets and hit enter a few times, then start doing what I am doing. Then maybe change the return type. These things are easy with a keyboard on a computer, but writing them with a pen causes you to have to erase a lot, making you look and feel silly, which adds to the pressure. It’s just a stupid way to write code, that is why no one does it that way in reality.

    The medium *does* matter. Most of the things I do on the keyboard are out of muscle memory which frees me to think about other things as I am doing it. It’s as if you are asked to show how to tie complicated knots but only given a pen - you are disallowed a piece of rope - Its not the right tool.

    Brainstorming and designing are typically done on a whiteboard or with paper and in a group - those questions make sense to have shown on a whiteboard.

    If you want to test computer programming ability, use a computer - that’s the tool people use to write code with after all

  5. pgrmr on February 27, 2007 3:38 pm

    When your interviewers asked you to write code on the whiteboard, I bet they weren’t looking to see how nice your penmanship was.

  6. rob on February 27, 2007 4:14 pm

    @pgrmr
    Then what exactly were / are they looking at? How fast I can write code with a pen?

    Any way you slice it using a pen to write code is silly and puts undo pressure on the interviewee. It’s a power trip really - at least that’s what it feels like.

    One of the places that asked me to do this (several times) wound up having an entire book written about the company - about how they couldn’t deliver software after years and years of development. I wonder if it’s because all the coders were über blackboard coders ;)

    It seems, as usual, my point is falling on deaf ears.

    To all those hiring people, go on and keep wondering why all these kids who grew up on computers, who do nothing but type all day every day, choke and freeze when you hand them a pen and tell them to write code.

    It must be that all these new CS graduates suck, and us veteran coders who have brought several real applications to market don’t know how to write code. It couldn’t be the lame interview environment (the pen / whiteboard coding) - nah, couldn’t be that.

  7. Sami Hoda on February 27, 2007 8:12 pm

    I agree, a paper of whiteboard test isnt the way to go. We do pre-in person interview tech tests. I look for how a person attacked a problem, whether they are familiar with best practices, etc. You can do the same in person with a paper… watch how they attack it, watch what questions they ask.. it will tell you more than whats on that paper.

    Sami

  8. Patrick Whittingham on February 28, 2007 6:42 am

    Rob -

    I totally agree with you that the ‘blackboard’ is a dumb idea since coding isn’t about code snippets but the process of ‘creating’ a program. One needs to know a multiple languages (ie., sql, html, cfmx, javascript, etc….) and the good programmers use it as an art form. I’ve been doing this over 25 years and never had that question given to me. It would be an indiicator that lines of code and other false ideas are prevelent at that company.

  9. Adam Ness on February 28, 2007 6:14 pm

    I have to agree with the original poster somewhat… A programmer should be able to write at least psuedocode up on the whiteboard, to explain what they’re talking about. I wouldn’t expect code on a whiteboard or on paper to compile without alteration, but you should be able to sketch your solution in symbols that are meaningful to the interviewer.

    I’ve been the interviewer and interviewee where the whiteboard, or paper solution was used. I think it served as a great tool to weed out people who couldn’t reason their way to a solution, and were likely to just copy and paste other people’s code to make things work.

  10. Glenn Mandelkern on April 5, 2007 11:18 am

    Lou Adler, a headhunter who frequently writes articles for the Electronic Recruiter Exchange has a set of tapes called “Power Hiring.” I bought these when I was interested in becoming a software development manager. (I’ve since changed careers to Marketing, and I still love software.)

    He points out many who are great at their work at all levels aren’t so hot at the whole job search / resume / interview process. As an example, he speaks of a great candidate he once tried placing for a film studio. He prepared him, got him excited how this was a major firm, a top project, with industry influentials. The candidate arrived, got nervous and sounded like an idiot. He wasn’t hired. Still, he went on to become a senior executive at a competing studio.

    Adler then gives this example to differentiate what happens to otherwise competent candidates at interviews.
    Question #1 — What was the most important project you ever worked on? Begin talking right now.
    Question #2 — What was the most important project you ever worked on? Take 2 minutes to think, then start talking.

    There’s a world of difference in the two. The point made is that “thinking on your feet” is not a required skill for many jobs. Software development, specifically, gets criticized for its cowboy mentality, that not enough time is spent on design.

    One problem is that too many treat job interviews like a casual conversation. That’s especially true in today’s team environments that wants to paint everyone as belonging to a happy family. However, the consequences of a job interview are exponentially higher than any old chat about industry or code.

    It is tough enough to get meaningful information about candidates nowadays. We managers can benefit a lot by finding means that puts candidates at ease. If we don’t, we run the risk of presenting our companies as a place that’s too much into firefighting, and therefore unattractive.

    If you really want to make candidates shine and connect and see if they’re right for you, why not simulate the exact environment and project they’ll be working on if hired? That eliminates a lot of the guesswork. And if the candidate likes what he’ll be working on the way he’ll be working on it with you, that eliminates a lot of the unrevealing nervousness too.

You can either use your OpenID, and have your comment posted straight away:

OpenID URL

Or you can use the classic way (comments are moderated)

Name (required)
Email (required)
Website
Share your wisdom
  • Recent Comments