The software development industry seems to be conflicted on what “common” knowledge all developers should have. On one hand, a severe distrust of prior experience leads to hostile interviews. On the other hand, it’s assumed everyone has studied computer science academically, even the concepts that don’t show up day-to-day.
What is the bar?
Other industries have professional licensing serving as evidence of basic knowledge. Law has bar associations with a bar exam. Various engineering disciplines like civil engineering have organizations that administer Fundamentals of Engineering and Professional Engineering tests, which take into account not only knowledge but also professional experience. This results in subsequent job interviews that are largely behavioral, as the licensing sets a baseline for the candidate.
Software development also has certifications, but they are far from universal. For a frontend, backend or full-stack role, the best you can hope for is an academic degree from an accredited institution. But even accredited computer science programs vary widely in quality. Besides, software development is praised for giving chances to those who don’t have such degrees!
Every interview is its own bar
Due to the lack of formalized certification in software development, every company in tech takes it upon themselves to thoroughly test candidates. You can have relevant industry experience and a strong academic foundation, but you’ll still be solving the same tree algorithm problems on the whiteboard! And of course, each company has a different set of criteria it uses to evaluate candidates.
I don’t know if industry-wide licensing is strictly better. One nice property of technical interviews in software development is they tend to have objective criteria, whether or not you agree with those criteria. Behavioral interviews are susceptible to the interviewer’s biases. Not that this doesn’t happen in tech, but at least an algorithmic problem has a clearly defined answer.
So… professional licensing for software devs?
I don’t have a great answer to whether or not standardized licensing is a good idea in tech. I do love the idea of anyone entering the field through self-study, followed by apprenticeship in their first job. Maybe tech is more like a trade?
What I can say is this: if you’re interviewing a candidate, be aware they can come from many backgrounds. Just because someone can’t solve a tree algorithm problem doesn’t mean they aren’t qualified. At least as of now, there’s no one definition of a software developer, and on-the-job learning is very powerful within our industry.