I was chatting with a friend today on how difficult it has been for his startup to hire. They’re competing against startups flush with Series A/B cash, IPO-candidate companies offering equity with some weight, and public companies that are willingly overpaying for talented new college grads. He seemed resigned to have to match the increasingly high wages for an engineer to help him with the product vision.
It’s not a surprise that there is now a reactionary jump in CS major enrollment and various hack houses/classrooms/academies that promise to teach software development via intense, condensed curricula. New CS grads are more of a known quality at this point, but it’s been interesting to gauge the grads from these coding-centric programs; they’re trained in modern frameworks, but have much less in experience with computer science concepts and theory.
But hundreds of interviews have convinced me that neither group can replace the technical expertise of a software engineer with years of experience. The path to software development from computer science is common, but not exclusive or causal; many non-CS majors have worked their way to become extremely good software engineers, and I’ve known some top computer science students who opted to do something else completely. Writing good software and building robust architecture isn’t taught in an educational vacuum.
As someone who had to go through a fairly rigorous and competitive CS program, I can understand the appeal of elevating the value of that degree, and claiming that there are certain advantages it confers which would make a CS-backed candidate much more valuable than one from an accelerated program. Our interview and vetting processes also reinforce this desire: “smart”, in the context of a hiring candidate, usually means having the ability of working through lower-division CS course material.
Then again, as someone who also isn’t that great at constructing clever algorithms on the fly and doesn’t immerse in a technology and hobby projects, I’ve had a pretty good run of software development gigs. Having had the fortune of helping build quality, scalable software with great folks, I’ve appreciated that their expertise was not determined from their first years in the industry but through years of persistence and curiosity. Sometimes we forget that the beginning of a career is just that.