Lessons from a Silicon Valley job search
(sorry for sidetracking the excellent piece but...)<p>When I examine the ~13,000 hours I've spent programming I find it hilarious that interviews should centre around algorithmic problems. I've been guilty of it myself and failing FizzBuzz is definitely a true negative but it's so little of a true positive it's not even funny.<p>What I would really love to know about you as a candidate is:<p>- do you know how to actually name functions and variables well (unbelievably important)<p>- do you know your chosen languages and frameworks well enough to avoid cack-handedly reinventing them on paid time<p>- do you understand how to code an application that someone else (possibly just you) will quickly understand on coming to it cold in 18 months time<p>- do you understand the trade-offs between features and maintenance, the technical debt that features, designs and toys incur and when to invest in them and when to avoid them<p>- are you diligent and careful and do you check and re-check your code or just chuck it in the mix for other people to fix<p>- do you actually do real work for at least four hours each day<p>- do you take the time to write up the things you've done and share decisions and architecture with the rest of the team<p>- does your addition to the team on average make your team mates become better or worse coders<p>- do you understand the exquisite balance between too much testing and too little<p>In 13,000 hours I have had to wrestle with the consequences of O(n) complexity or binary tree search algorithms approximately NO TIMES.<p>I did not mean to sidetrack Rob's excellent, excellent piece on finding a job in Silicon Valley however I did want to take the opportunity to state the things that I have empirically found as a professional developer to actually matter.