Lessons from a Silicon Valley job search
(sorry for sidetracking the excellent piece but...)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.What I would really love to know about you as a candidate is:- do you know how to actually name functions and variables well (unbelievably important)- do you know your chosen languages and frameworks well enough to avoid cack-handedly reinventing them on paid time- 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- 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- 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- do you actually do real work for at least four hours each day- do you take the time to write up the things you've done and share decisions and architecture with the rest of the team- does your addition to the team on average make your team mates become better or worse coders- do you understand the exquisite balance between too much testing and too littleIn 13,000 hours I have had to wrestle with the consequences of O(n) complexity or binary tree search algorithms approximately NO TIMES.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.