As Software Development is becoming more accessible through internet media, I see more and more places on the Internet with people asking, “Do I really need a Software Engineering (or Computer Science) Degree in order to get a job in the Industry?”.
A few years back, I may have said to myself, “Is this question serious?”. However, technological advances in the last decade and also the way the Software Development industry has moved forward have made me go back and reflect on my choices to devote the years needed to educate myself more.
There are many arguments to be had regarding the kind and quality of knowledge you obtain by attending a university rather than searching online for tutorials. There is also the huge difference between Programming and Software Engineering (you can learn to program on your own, however, you cannot learn to engineer Software by yourself). But in this article, I would like to focus more on the less obvious parts of going through a full-time Degree (Bachelor's, MSc, and the like of them)
(For the sake of clarity, this post is about full-time on-site Degrees, (Bachelor’s, Master’s, etc.).
A deceptively simplistic question
The logic behind questioning the value of a Software Engineering (or Computer Science) degree is sound, regardless of how simplistic it may appear at first. The reason for asking this question is that there is an enormous amount of information publicly and freely available on the Internet. There is also a vast wealth of information available through paid services like Udemy and LinkedIn Learning. Getting into programming is far easier now than it was 20 years ago. Reading through a bunch of documents and releasing a small application is certainly easier nowadays compared to the difficulty of obtaining information about even the simple things a few years back.
To add to this, companies are always focusing more on professional experience and technical showcases than university degrees. Hiring “leet coders, rockstar programmers” — formally described as “talented individuals” is an art that requires not just going the easy route (reading a person’s credentials) but also following his/her code on Github and seeing this person’s technical portfolio. It is not uncommon to find great and widely used open-source projects built by people without a diploma.
Therefore, questioning whether dedicating 5+ of the most productive (and beautiful) years into obtaining a Degree (that may or may not end up giving you a better spot in the industry depending on the country you live in and the company you end up working for) does not sound as strange as it was a decade ago.
Those of us who went on the “Obtain a Degree” road all had their reasons for doing so. For me, however, finding a job was way down my priorities list when I decided to attend a university degree. And it should also be low on your list, too.
What a CS (or SE) Degree is about
The difference between the notion of software engineering and programming as it is accepted by the industry is that a software engineer can also design software and perform analysis regarding technical user acceptance criteria and quality assurance (through analyzing technical specifications). Programmers tend to acquire the know-how of a particular aspect of software coding and invest most of their time to use it. While the industry tends to hire (and usually create) programmers and not engineers (regardless of their job advertisements), when it comes to developing a complicated codebase and designing scalable systems, a person with broader knowledge is generally preferred. Usually, this knowledge is acquired through experience.
This kind of experience, however, is acquired by investing time in methodologies and doing research. Research is a skill that is perfected throughout the years of performing it, and its foundation is laid by completing tasks in an environment that promotes it. Unless a specific job position is about conducting research, usually there is reluctance to invest time in analysis, design, and proofs-of-concept that may end up being scrapped in the end. This is not the case with Universities and being in an educational setting. The problem-based approaches used therein are proven to exercise the human brain in a way where it can find solutions to both common and uncommon tasks and teach research practices.
Therefore, the tools acquired during the educational procedure are the knowledge to research to search for solutions to complex problems — not necessarily the ability to do what companies may ask of you in the future.
In other words, the goal of a CS or a SE degree is not to refine your craft – but to elevate your thought process.
It’s about adaptation, not just training.
The industrial world is managed according to different needs and time frames than the Educational one. As such, it uses different processes. With the present situation in the industry world, there cannot be a perfect match between the industrial and educational development techniques. And in my point of view, there should not be. Education and the Industry should be complementary, not dependent on each other.
A university degree allows students to make contact with several different technologies and programming mentalities. Projects developed during courses contain the element of research to a large extent. For example, while developing projects for my MSc I had (most of the time) the liberty of choosing my development platforms, tools, and languages. That allowed me to acquire knowledge regarding a diverse set of technologies that I may not have had the opportunity to invest time in a professional environment. Working in the business world requires performing tasks under stricter deadlines and penalties, also using a limited set of technologies (usually predefined by other persons in a company), which is generally different than the methodologies followed during a university course.
Regardless of the technical constraints that affect the development process, and the skills required to perform each task, companies always welcome talented individuals with more diverse knowledge on technologies and paradigms as it allows them to improve their cultural aspects and adapt to a changing economy faster. Therefore, an educational environment allows exercising the skill of mindset adaptation, and the industry allows producing complete products and services by using theories and best practices which were acquired under the ”academic umbrella”. In turn, the Industry dramatically influences procedures followed in universities and courses, as the latter tend to follow industrial advances and trends in Software when teaching.
It’s a beautiful circle — one which you have to explore fully in order to make the most of it.
It’s about Networking — and evolving your emotional intelligence.
A usually overlooked reason to attend a full-fledged full-time degree (for those who have the opportunity to do it, that is) is the people you are going to meet. And I am not talking about professionals – I am talking about all kinds.
The mix-up of different mentalities and thought processes will surely leave an everlasting impact on you. It is for this reason that I always recommend you spend some time abroad. The more diverse cultures you meet in your life, the merrier.
It’s about building character
I remember having a relative conversation with one of my ex-bosses. The conversation was about whether the “Education” section in a CV played a role in the hiring process if the candidate had a lot of previous working experience.
This is what he told me;
I always look at the Education section for a candidate, no matter where they put it. It’s never about “ticking a box”. It’s about showing that someone dares to invest the time into something long-term and the patience to see the whole thing through. If a candidate chooses not to do that, it may say something about their dedication to their profession.
I hadn’t thought it this way until then. His judgment of character regarding employees was really good, so this particular point of view left an impact on me.
Conclusion
I didn’t regret a second spent on my Degrees. They were all worth it, and if I had the chance, I would redo them all over again even with the knowledge I have acquired through the years that passed since then. But I understand people who are afraid that they may want to avoid spending the time to obtain a Degree and jump right into practical exercise maybe with the help of one or two short-term online courses.
My advice: Obtaining a Degree is less about the diploma and more about the journey towards it (as romantic as that may seem). Full-time degrees are meant to teach you how to stress your mind and how to think out of the box. You (and the people who will work with you) will need that in any job you may find.