How to win the coding interview
The author says,<p>&gt; When you get the job you will never have to code on a whiteboard, but I guarantee you this, there will come a time when we are banging our heads against a problem and there is a deadline looming and we’re tired and people are pissed at us and money and jobs and reputations are all on the line. When that time comes, we’re going to have to get into a boardroom, hop on a whiteboard, and figure things out. Fast.<p>and then proceeds to describe still giving you coding challenges on a whiteboard. I kept reading, but bookmarked this spot as the location at which the author lost credibility, and the rest of the article confirmed it.<p>If you want to test how well someone can collaborate with you (after all, that is what is described in the needless trumped up intro to the whiteboard sections -- just simple collaboration as happens everywhere in every job and is in no way unique to programming), then ask them problems that <i>are</i> suitable for a whiteboard discussion.<p>It&#x27;s not the whiteboard itself that is the problem. It&#x27;s the combination of a task that is intrinsically ill-suited to be done on a whiteboard and the requirement to do it on a whiteboard. It&#x27;s like asking a football player to audition for you by playing football with hockey equipment on.<p>There are lots of good questions to talk about on a whiteboard. Sketching out graphs is a good activity. For example you might ask someone how life expectancy varies with age and ask them to draw some pictures. Now you can see what it&#x27;s like to work with them, get the assumptions out in the open, etc. You can&#x27;t actually do that if they are preoccupied with syntactical correctness -- and if you tell them to program in pseudo code then you&#x27;d better be happy with a psuedo answer that sweeps some parts of the solution under the rug or assumes that some minutiae details would be otherwise fleshed out later on and are not required to be literally correct in the whiteboard case.<p>Coding questions are just poor questions to ask for whiteboard sessions. That &quot;we&#x27;re all up against the deadline, cramming into the conference room trying to work shit out on the whiteboard at the last minute&quot; situation is practically the last place on earth where minutiae syntactical correctness on the whiteboard matters.<p>The author is defending <i>general whiteboard discussions</i> but then saying that coding exercises, which are not at all like general whiteboard discussions, are appropriate for whiteboard interviews.<p>The section about coding at a computer is also frustrating. The author places a huge emphasis on asking questions, but it basically amounts to a sort of &quot;guess the teacher&#x27;s password&quot; problem. The author has &quot;good questions&quot; in mind, that are secret and hidden from the candidate, and will secretly penalize you if you don&#x27;t ask &quot;good questions.&quot; Personally, I would see the server side &#x2F; client side Javascript question as a waste of time and really immaterial to the given programming task (palindrome detection). Even asking &quot;is the empty string valid?&quot; is a waste of time. Honestly, in an interview I don&#x27;t care which assumption you make about that as long as you tell me that you&#x27;re making it.<p>But worst of all is the Cerberus red flag statement &quot;write this code as if it was going into production.&quot; I can tell you that as a candidate, I would still be polite and try my hardest to work out the interview question, but I would have already rejected this company full stop. When you write code for production, it is a team effort and your interactions with the team, the business, the product all matter. A person who is injected into a foreign social situation, under lots of stress and pressure to put their best foot forward, etc., <i>and also knows nothing about what you consider to be &#x27;production&#x27; code</i> is in no position to write &#x27;production&#x27; code for you on some Mickey Mouse palindrome problem (literally a problem culled from the absolutely dystopia-level full of shit book &#x27;Cracking the Coding Interview&#x27; -- meaning it is as not-productiony a problem as you can possibly select, akin to asking for a production-grade FizzBuzz solution).<p>This tells me that the interviewer has an extremely narrow and short-sighted view of &#x27;production&#x27; code. They think it is something that can happen in a vacuum as long as you have a computer and a textbook problem to solve. They are not self-aware enough to understand that they come in with preconceived <i>cultural</i> notions of what &#x27;production&#x27; means, and that realistically this is not at all a test of &quot;coding to spec&quot; or someone&#x27;s coding talent, it&#x27;s just yet another status game testing whether or not the person randomly conforms to whatever magic culture expectations they are being covertly judged against.