This is a quick follow-up to yesterday’s post – “Where did all the PHP programmers go?“.
First of all, let me take the moment and say “Wow!”. Somebody submitted the post to Reddit and it made it to the front page and got an unbelievable amount of comments. Almost 500, and still coming. Thank you all.
Secondly, the comments on this blog are fixed finally. Murphy’s Law in action – they got broken just before the wave came in and they got fixed shortly after.
Thirdly, I should clear up a few things. My apologies for getting you guys confused. I never asked any candidate to compare sorting algorithms, much less to implement them. I asked to sort an array. I was expecting one of those PHP function calls in return. But I only got it a few times. Many candidates didn’t know how to sort an array (apparently they use MySQL to sort an array). A few suggested “bubble sort”. Probably thinking that the tasks for testing sorting algorithms. One even went as far as implementing a bubble sort in PHP. With pen and paper. This one was the toughest to decide about, by the way.
Fourthly, the correction. The language is indeed called Ruby, not Ruby on Rails. I am aware of that. I was just trying to catch a thought. Thanks for pointing it out though.
Fifthly, explanation for the pen and paper. Yes, I know that programmers are used to typing code. I know that they are used to their tools and online references. But. This is an interview. My time is limited and I have to make a decision. If I give all the tools and references to my mother, she will be able to solve the problem I am giving in reasonable time. She is not a PHP developer. She has no experience with PHP. But she has enough of common sense to do it. If I take everything away – she won’t be able to do that. But any semi-decent programmer will do. Further on, I am not feeding the resulting paper into the machine. The only parser that sees that code is the one embedded in my brain. And I assure you it is very tolerant to minor syntax errors and missing parameters. I want to see the process. The approach. Some data structures and algorithms. A bit of style in variable names, indentation, and empty lines, if I am lucky. That’s all.
Sixthly, on the exercise itself. I like to think that I am pretty flexible with answers. For this particular exercise, a Perl programmer inside me thinks associative array is the best data structre. (And yes, before you start bashing further, I know that associative arrays in PHP aren’t the same as hashes in Perl.) I can accept an OOP solution just fine. What I find hard to accept is a single dimensional array with hopping over a pre-defined number of fields per record.
Seventhly, this post, once it got to reddit and then furthermore to other news streams, generated more candidates and hints to where to find them, then all of my prevoius efforts. Thanks to all of you who sent me resumes, links, and pointers. My inbox is a bit overwhelmed right now, but I’ll reply to everyone over the next few days.
Thanks a lot to all of you.