Next response to “Where did all the PHP programmers go?”

June 6, 2008 – 5:33 pm

Yesterday I have read a very interesting article touching the subject of hiring PHP programmers with a conclusion that most of the people complain about the interviewing process rather than answering questions. It’s a very interesting read, so take a moment and get back to me when you have finished - Where did all the PHP programmers go?. Now, those are very good points but I have to admit that I too have been interviewed on paper too many times. And it has some major drawbacks:

  1. Writing on paper is different than writing on screen. When it comes to programming, you can’t prepare interfaces upfront and fill in the details later just because you can’t insert new text between already written lines. And that’s a thing you do constantly while writing code. Of course it’s very easy to give your potential employees more familiar environment - you can give them at least a basic text editor (like notepad) on your laptop. It will really help (my own experience speaking)
  2. PHP is a messy language. It’s interfaces are very inconsistent so it’s very hard to memorize it all. Good IDEs (not a Dreamweaver) negate this effect. You can give your interviewees an access to the manual. When a programmer writes code he constantly uses the manual when he needs it. Why do you want to test his memory and not his skills?
  3. Programmers are used to look at a code that has syntax highlighting turned on. Looking at a plain black text is just a senseless handicap - you can’t see things you see everyday in a snap. You have to actually browse and read everything every time you have to look IN THE CODE for something you wrote earlier.
  4. PHP veterans use libraries. Standard public ones as well as their own. They seldom work with pure php function calls nowadays. Especially when it comes to database calls and some obscure mysql functions (ie. you don’t have to know the difference between mysql_fetch_assoc and mysql_fetch_array from the top of your head!).
  5. You don’t need to know sorting algorithms by heart these days - all decent languages come with sort functions already implemented in the language. What you need to know is what sort method to use in which circumstances. If quicker sort is harder to develop you use the easiest one (like easiest built in function in the language). Premature optimization is a root of all evil they say. You use better sorting solution when the easiest one is not performing well. But this is after you test the almost finished software.
  6. And last - experienced programmers will be much more handicapped by all this than novice programmers. That’s because novice programmers are learning on the very low language level (think function calls) while seasoned programmers are thinking globally on much higher level. They generally think OOP and interfaces which are de facto language independent. Not to mention they are used to their working conditions stronger and then even changing color of hightlighted variables can result in slower thinking.

So, the bottom line is - first make sure what you want to accomplish and then make your tests accordingly. Most of the interviewers are testing memory instead of programming skills. And when they do test skills they test some basic stuff rather than things which will be required on the job.

UPDATE: If you’re interested in a more practical interviewing process you may want to read Nick Jenkins’ reply to the same post here - http://blog.nickj.org/2008/06/05/response-to-where-did-all-the-php-programmers-go/.

See you next time.

  1. 9 Responses to “Next response to “Where did all the PHP programmers go?””

  2. Good and valid points indeed. I don’t think anyone should ever be asked to write more than 30 lines or so on a piece of paper.

    I remember back when I was in high school and had limited access to the computer, I was writing code in my notepad, so that I could test and debug it during the “off the lab” time. But those days are long gone.

    By Leonid Mamchenkov on Jun 6, 2008

  3. A couple of years ago, I went to an interview, and the Technical Director asked me to write the solution to a problem in paper using code. My class started like any other class, extending PHPUnit. With 4 tests I managed to come up with a great solution. And when I showed him the code he said it wasn’t a valid solution, that I hadn’t written any code. I replied “thank you for your time, but I’m no longer interested in this position.”. Lesson learnt, test them first. You don’t want to waist 1 year of your life hacking existing projects and working for someone that doesn’t give a damn. Like the photographer that wrote: “Where did all the PHP programmers go?”

    Happy coding.

    By Matt on Jun 6, 2008

  4. I wrote this guy an email, telling him I cannot write on paper a valid code as , for a solution to his request for data storage without db, i’d use a function that I do not use it everyday, so I need an editor that “whispers” me some hints….
    On the other side, must be pretty frustrating for somebody that hires programmers to find out they do not know what is a queue or a stack, but maybe what he offered was appealing only to programmers without experience ;)

    By rborn on Jun 6, 2008

  5. I think that most good interviews would not be unreasonable strict about the exact syntax you use. If you miss a brace here and there or misspell something (e.g. Hashmap instead of HashMap, or ArrayList.length() instead of ArrayList.size()), it absolutely wouldn’t matter.

    Good interviews do a quick test whether you are able to think in an abstract way. Pen and paper are just as good for that as a computer is. The whole idea is that it’s the *thought process* that counts, NOT the actual details.

    So, while giving a candidate a computer with an IDE might seem more natural, it also distracts. The candidate will try to actually write 100% correct code, which is typically beyond the purpose of an interview test.

    By henk on Jun 7, 2008

  6. If you wish to test thought process, then actual code doesn’t matter. You can ask and listen and it should suffice. Or, if you insist, you can get an UML from me.

    Otherwise, take a second look at my first point.

    By Michał Minicki on Jun 7, 2008

  7. Not really about the post:
    Now, I don’t know why you didn’t mention anything on aie.pl about you writing a blog, but hah I’ve found it anyway (linkedin).

    Have to say it starts really interesting. Well, maybe not in terms of geeky php tips & tricks (as I’m nowhere near working with PHP) but I can see your almost cognitive approach to every-day problems of a programmer; I find it interesting in both personal and professional way.

    Bookmarked. (not a RSS fan)

    By Katonczyk on Jun 14, 2008

  8. Why didn’t I mention it on aie.pl? Well, I have my reasons I choose not to disclose at this time.

    Glad to have you here, kato. And thanks for words of encouragement.

    By Michał Minicki on Jun 15, 2008

  9. Work for yourself, you wont ever have to write anything down on paper unless you want to.

    Seriously, the world is being overrun by huge companies. We need more skilled freelance programmers to help put them in their place.

    By Don on Jan 15, 2009

  1. 1 Trackback(s)

  2. Jun 7, 2008: Next response to “Where did all the PHP programmers go?”

Post a Comment