I don’t like interviewing for a new job. Mind you, I’ve had 6 jobs already, so I’ve done my fair share, but I dislike the adversarial tones that the vast majority of these interviews take on almost immediately. Hell, I’ve conducted interviews in every single one of my jobs, and while I try to make the experience as pleasant as possible for the candidates I chat with, I know that a lot of them still find the process painful, exhausting, occasionally embarrassing, and deeply flawed.
A big part of my distaste comes from the overemphasis on stuff-learned-in-school1 and how little it actually represents real software development. The narrow focus on academic trivia and its faults is well-encapsulated in this rant by Zach Holman:
And I agree with him, particularly on how interviews almost always fail to detect skills complementary to computer science which are actually useful to the job. I, for one, would happily trade optimized logarithmic algorithms for better communication and product sense, but those latter qualities are much harder to define and measure. They are skills, however, essential to startups.
It’s a tad disappointing that startups overall have not figured out how to optimize their hiring processes to not just copy how bigger companies find and vet candidates. In fact, startups love to use prior experience and credentials to boost their own credibility, especially when looking for funding. The skill set — and mindset — needed to thrive in a larger organization doesn’t necessarily translate to a much smaller one (and vice versa).
That said, I think we as an industry are starting to turn things around by creating coding schools and eventually accepting its graduates. Granted, there have already been missteps and overzealous educators pushing the limits of this model, but they may be the exact response to the over-reliance on academic and work credentials.