Over the last few weeks I’ve been interviewing potential candidates for development and QA internships. I can confidently say without exaggerating that this has been one of the most difficult and frankly disappointing experiences of my professional life. Frankly, most of the students I spoke to are barely qualified to shadow a programmer let alone actually touch a text editor or IDE of their own. We’ve covered this pretty thoroughly but there does seem to be a little more fertile ground here for discussion; this is especially true when you consider that most of the candidates I interviewed had finished a good deal of their coursework in Computer Science or some other related field.
The interview process is not some rigged-for-failure trivia contest alla Google or Microsoft. No, the verbal questions were simple and for the most part not the that technical. Here is a pretty standard line of questioning: “what is your favorite programming language / platform and why”. As long as the student could provide a reasonable (or at least reasonable sounding) explanation for his answer, he was in the clear. Beyond that there are of course the standard “checking for axe murders” questions.
There is however one last hurdle — a written test in the form of Fizzbuzz. Pretty much everyone I asked to do Fizzbuzz failed and it didn’t seem to matter if I put them in front or an IDE, text editor, or just pen and paper. Worse still, some students sent me solutions that they had done without supervision that actually contained errors. No limits were placed on the students in terms of platform of language and (not surprisingly) most students chose to use Java as their test language and stated that they’d taken a number of Java-centric courses.
One area of this process has surprised me — many of the candidates who did the poorest on Fizzbuzz were also the most likely to drone on about sorting algorithms or some other impressive sounding nonsense of which I am relatively sure they have no understanding.
Remember kids, Knuth is key but you still need some sort practical understand of what exactly you are doing. Please do leave any comments on Google+ or Twitter. Also, please keep in mind that I am always available for consulting projects.