By Ashish Datta, partner at Setfive Consulting.
Over the last couple of years, there has been an explosion in the demand for software engineers. From legacy industries embracing the internet to startups hoping to disrupt established players, a wide range of companies are hiring developers. In response to this demand, several new educational avenues have emerged. These new approaches -- including coding boot camps, massive open online courses (MOOC) and 100 percent online degrees -- all promise to be cheaper, faster and more focused compared to a traditional four-year computer science degree.
While recruiting junior software engineers at my company over the last few years, I've started noticing a dramatic increase in the number of applicants with alternative educational backgrounds. Our job postings that used to see a couple of applicants without traditional computer science degrees are now getting as many as 20 percent without computer science or engineering degrees. In lieu of a computer science degree, the majority of these applicants have listed coding boot camps along with the projects completed during the boot camp on their resumes. As these applicants have entered the applicant pool, I've had the opportunity to interview them and compare their performances to candidates with computer science degrees. This has, in turn, led me to evaluate how useful a computer science degree is for an entry-level software engineering position.
What Is a Computer Science Degree?
There is a wide range of both quality and content in the topics that will be covered in a traditional computer science degree. But there is a fundamental differentiation between curriculums that emphasize computer science theory and those that emphasize programming. If you skim through the syllabuses for elite computer science programs like MIT or Stanford, you'll notice they fall squarely in the earlier group and strongly emphasize theory and computing fundamentals. Compare this to the for-profit DeVry University's Software Programming degree, which centers heavily around teaching programming in Java.
How do theory-focused degrees translate to helping you once you enter the professional world? These degrees help new software developers in two key areas by improving their problem-solving skills and ability to learn new techniques and technologies. As a developer, you'll spend the bulk of your time translating business problems into code solutions so the ability to do this effectively is key to your success. The skills and techniques students pick up while studying topics like data structures, algorithms and computing fundamentals directly translate to making developers better at this process. At Setfive, we're not big fans of asking interviewees to solve programming puzzles on a whiteboard, but we do typically have them walk through how they'd solve a real-world problem. In my experience, candidates with computer science degrees have consistently outperformed those without degrees in these tasks because of their stronger problem-solving skills.
As a professional field, software engineering -- especially web and mobile -- is evolving extremely quickly. Technologies that were industry standards a few years ago have fallen out of favor today. There's always a new paradigm shift, like cloud computing, around the corner. As a result, many developers have to continually learn new technologies and techniques to remain effective. Students pursuing the broad curriculum of a computer science degree have the opportunity to develop the learning skills necessary to quickly learn new technologies. These skills are immediately important as students join organizations as junior software engineers because they'll be asked to learn both new technologies and the business domain they're working in. In my experience, new developers with any engineering degree typically pick up these things faster than those who don't.
Do You Need a Degree?
You certainly don't need a degree to be a successful developer. There are plenty of examples of prominent developers who don't have a formal computer science degree. Unfortunately, it's difficult to quantify how any abstract skills will impact an individual or team. But the techniques and skills learned through the course of a computer science degree will certainly make you a more effective interviewer and ultimately developer.
Ashish Datta is a partner at Setfive Consulting, a scotch drinker and an adventure seeker.