{"id":230,"date":"2010-08-15T10:43:31","date_gmt":"2010-08-15T17:43:31","guid":{"rendered":"http:\/\/kai.mactane.org\/blog\/?p=230"},"modified":"2010-08-15T10:43:31","modified_gmt":"2010-08-15T17:43:31","slug":"why-i-dont-mind-coding-tests","status":"publish","type":"post","link":"https:\/\/kagan.mactane.org\/blog\/2010\/08\/15\/why-i-dont-mind-coding-tests\/","title":{"rendered":"Why I Don&#8217;t Mind Coding Tests"},"content":{"rendered":"<p>I keep hearing about developers who, when interviewing for potential jobs, consider coding tests to be &#8220;a waste of time&#8221;, &#8220;insulting&#8221;, or &#8220;beneath me&#8221;. The logic seems to be: Once you&#8217;ve risen to the level of Senior Developer (or some similar title), people should realize that yes, you really <em>do<\/em> know how to write simple pieces of code. You can write functions that sum all elements in an array, or reverse a string, or whatever.<\/p>\n<p>I&#8217;m not bothered by them. I&#8217;m far too aware of the great number of coders that, to put it bluntly, <em>simply can&#8217;t code<\/em>. It doesn&#8217;t matter to me whether they&#8217;ve risen to their <a href=\"http:\/\/en.wikipedia.org\/wiki\/Peter_Principle\">level of incompetence<\/a>, or they&#8217;ve been in sky-high architect territory for too long and gotten rusty at function-level coding, or they&#8217;re simply lying on their r&eacute;sum&eacute; and they were <em>never<\/em> able to so much as solve <a href=\"http:\/\/imranontech.com\/2007\/01\/24\/using-fizzbuzz-to-find-developers-who-grok-coding\/\">a FizzBuzz problem<\/a>. The fact is, they keep winding up in interviews, and it&#8217;s (part of) the interviewer&#8217;s job to weed them out. As quickly as possible, to avoid wasting any more time than necessary.<\/p>\n<p>Back when I was in my first tech job, as a Linux sysadmin, I was one of the people interviewing potential candidates. I decided it would be nice to set them at ease by starting off with a few easy, &#8220;warmup&#8221; questions. So I&#8217;d start off with things like, &#8220;What is a runlevel in Unix? What are the most commonly-used runlevels, and what do they do?&#8221; Or, &#8220;What port does HTTP use by default? How about SMTP?&#8221;<\/p>\n<p>I was astounded to find that there were applicants who couldn&#8217;t answer these questions.<\/p>\n<p>Not in the sense of, &#8220;I&#8217;m sorry, but I&#8217;d have to look that up&#8221; (though even that would be a little odd; these are things any Unix sysadmin should have engraved on their consciousness). No, this was in the sense of &#8220;A runlevel? Ummm&#8230; I think I&#8217;ve heard that term, but I don&#8217;t know those kinds of details.&#8221;<\/p>\n<p>My only real quarrel with FizzBuzz is that, at this point, any developer worth their salt is familiar with it. And tired of it. It&#8217;d be nice to have a few slightly new and different tests of completely basic competence&#8230; but you know what? <em>Any<\/em> test that is so basic would have to be just as boring. That&#8217;s okay.<\/p>\n<p>These tests are essentially saying, &#8220;Prove that you&#8217;re not lying on your r&eacute;sum&eacute;.&#8221; And while <em>I<\/em> may know perfectly well that I&#8217;m not lying, how is a total stranger to know that about me? I&#8217;m not bothered by the &#8220;trust, but verify&#8221; stance of modern interviewers, because there are so many people who <em>do<\/em> lie on their r&eacute;sum&eacute;s (and fail at simple, FizzBuzz-style tests) that it would be lunacy to blindly believe applicants any more.<\/p>\n<p>(What that says about our society is a topic for another post&#8230; a post on another blog. It&#8217;s outside <cite>Coyote Tracks<\/cite>&#8216; scope.)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I keep hearing about developers who, when interviewing for potential jobs, consider coding tests to be &#8220;a waste of time&#8221;, &#8220;insulting&#8221;, or &#8220;beneath me&#8221;. The logic seems to be: Once you&#8217;ve risen to the level of Senior Developer (or some similar title), people should realize that yes, you really do know how to write simple [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[103,102,60,48,47,72],"_links":{"self":[{"href":"https:\/\/kagan.mactane.org\/blog\/wp-json\/wp\/v2\/posts\/230"}],"collection":[{"href":"https:\/\/kagan.mactane.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kagan.mactane.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kagan.mactane.org\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/kagan.mactane.org\/blog\/wp-json\/wp\/v2\/comments?post=230"}],"version-history":[{"count":2,"href":"https:\/\/kagan.mactane.org\/blog\/wp-json\/wp\/v2\/posts\/230\/revisions"}],"predecessor-version":[{"id":232,"href":"https:\/\/kagan.mactane.org\/blog\/wp-json\/wp\/v2\/posts\/230\/revisions\/232"}],"wp:attachment":[{"href":"https:\/\/kagan.mactane.org\/blog\/wp-json\/wp\/v2\/media?parent=230"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kagan.mactane.org\/blog\/wp-json\/wp\/v2\/categories?post=230"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kagan.mactane.org\/blog\/wp-json\/wp\/v2\/tags?post=230"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}