In today’s world where new technology affects our lives more and more, all known paradigms are evolving and accents are shifting, anything can come under scrutiny.
In the software development industry, as a driver of change, one of debates that have been going on in recent years is the importance of college degrees for programmers.
The question is: do software developers actually need a degree in computer science (CS)?
There are lots of open discussions and arguments for both the positive and negative answers, and of course progressive thinkers say college degrees are outdated. And surely, as with any other phenomenon, there’s no single, confident and agreed upon view.
So I will present some of the key quotes, statistics and considerations for you to form your own opinion.
To start with, there are 2 general perspectives.
One is that, now practically anyone is capable of learn coding on his/her own using tons of available free materials/courses online. Additionally, there are coding bootcamps and IT-schools with their own stake in the game.
The second aspect, though, is that many businesses still require degrees and won’t consider a candidate without one.
What do actual developers have to say?
Bearing in mind that to get hired a degree could be:
A) an actual requirement,
B) not a requirement,
C) a plus but optional,
let’s check the degree situation with real developers.
According to a 2018 Developer survey by Stack Overflow, questioning over 100,000 employed professional software engineers, 72% of developers have some degree in computer sciences or related areas.
When breaking it down, we see that only about 25% have a Master’s degree or higher, whereas 46% have earned just a bachelor’s degree, and 27% don’t have any degree at all.
Interestingly enough, the most popular way for them to learn new frameworks and tool is on their own – 86% of respondents.
Together with other industry insights, this illustrates that a CS degree alone is not enough these days. Software technologies are dynamic, and there’s a constant need to learn new stuff, like it or not.
That’s why developers have to be self-taught, take special courses, receive on-the-job training, participate in hackathons and competitions, complete certain certification programs, etc.
What’s valuable for employers?
Having a degree does not guarantee you a job.
A degree from few years back could even be obsolete by tomorrow, what matters most for employing companies is your “now” experience and a solid evidence of what you can bring to the table.
Aside from the “college degree issue”, employers are interested in abilities such as:
1. Writing robust and sustainable code.
2. Building object-oriented and functional systems that others can work with afterwards.
3. Correcting and improving a codebase, poorly executed by someone else previously.
4. Ability to adapt to system requirements during code writing.
5. Writing well-performing code for use cases.
Tech experts note that computer science/engineering studies mostly cover the #5 point, teaching a lot about fundamentals, CPU, memory optimization, etc.
The most significant abilities, obviously, are first two in that list. And for those skills theory is not enough – one has to work with big codebases in a real team for an extended period to really master coding skills.
Employers require software engineers who can work intuitively and naturally, think abstractly as well as contextually. Agile, dynamic and creative methods are in high demand nowadays, as programming is becoming more and more complex with multiple frameworks, tools and libraries. Employers need developers who are able to utilize it all in an efficient way in terms of business goals.
Even with many companies still requiring a college degree, it does not necessarily mean you get 50% more opportunities if you’ve got one. The ability to prove your current and potential skills is more convincing, but a degree would be a good bonus in a case like that.
A few quotes on the matter
While the overall tendency leans towards “not that important” regarding CS degrees, there’s still solid respect for it:
“Formal education and the computer science background still helps me today building the products.”
– Thomas Schranz, CEO at Blossom.co
Many other experts are more critical, of course.
“The degree itself represents nothing but a cost paid and time committed. A degree can be acquired by many different methods, none of which guarantee any real learning has taken place.”
– John Sonmez, founder of Simple Programmer, life coach for software developers
Some are much more blunt in their comments:
“Computers science education cannot make anybody an expert programmer anymore than studying brushes and pigment can make somebody an expert painter”.
– Eric Raymond, author of “The new hacker’s dictionary”
For more constructive reasons about self-taught developers, hear this:
“It shows that they have initiative, they’re smart, and can pick things up on their own. They can work through problems and teach themselves… I’d take these qualities over a CS degree any day.”
– Robert Armstrong, co-founder and CEO at Appstem
Some tech gurus seem to love this notion too much. Peter Thiel Foundation offered $100,000 to twenty talented young individuals to skip college and focus on work for two years.
“Before long, spending four years in a lecture hall with a hangover will be revealed as an antiquated debt-fueled luxury good.”
– Peter Thiel, founder of PayPal
Successful businessmen point to a sound alternative that is likely to satisfy today’s need in a better way:
“I have met a lot of people graduating from coding boot camps that focus on providing the most relevant technical skillset to become a software developer within 3 to 6 months. After graduating they started their jobs as junior developers.”
– Susanne Kaiser, CTO at Just Social
Where no degree is fine…
Folks from such coding bootcamps and forward-thinking tech experts actually put having a college degree in a list of myths about becoming a software developer. Stuff like you need to be a genius, you need to know math perfectly, you need to start in your teens…and you need to have a degree in CS.
To prove their position, many big companies have openly stated they don’t require a degree for certain jobs anymore.
Google is one of them, extensively hiring in the USA for data security managers, product managers, etc., welcoming talents without education.
Apple goes along the same lines, and doesn’t mention a degree as mandatory to apply for technical specialists, product design engineers, QA engineers, etc. Same with IBM for graphic designers, compliance officers, etc.
And that’s only the tip of the iceberg, followed by Amazon, Dropbox, Squarespace, Twitter, Internet Archive, Nvidia, Zillow, AT&T, Sirius Computer Solutions, Dish and dozens more, not to mention non-tech companies.
The no degree requirement generally relates to any kind of programmer, from web and mobile developers, designers, DevOps engineers to system administrators, testers, marketers and cybersecurity analysts.
Counter-arguments for a degree
For many, it would be unreasonable to throw out the concept of college degree irrevocably. Considerations on this side include the following:
- Without any formal training or education, you are an amateur basically. You might be able to pretend to be a pro but not for long.
- Programming little apps isn’t that hard, which in itself could encourage people to go into the profession and then contribute nothing or little. Studying for few years would eliminate this kind of people.
- No formal training and no degree are different. Many students, for some reasons, get full education but leave without completing a degree.
- Companies won’t pay for someone to learn on the job, such instances are rather exceptions to the rule.
- In reality, it is still tough to get an interview without a CS degree or even an HR pre-screen. Lots of tech companies use college degree the first criterium.
- With a degree and wider knowledge one can make high level decisions, as well as a degree will definitely add value to any programmer.
- A degree can serve as evidence that a candidate could learn new technologies quickly.
- A degree, to high extent, indicates foundational knowledge, which is vital for complex and nuanced projects.
And, this one, ironically enough, as a bonus:
- The number of developers who can prove to be effective without a degree isn’t as high as you would think based on Quora posts.
A college degree in CS isn’t pointless or obsolete (yet), of course. Even with all the arguments and criticisms, it still is a ticket to getting a job after graduation.
CS is not all about programming, but more about broad foundational comprehension on how computation works. For developers, it provides the basis of their passion. If that is, in fact, programming and software development, they will study new skills on their own.
For most of them, learning lasts a lifetime, and all of them have to (and had to actually) learn new languages/frameworks/tools outside formal education.
And employers value just that – practical, proven and relevant experience most of all.