One of the most discussed topics in the technology field is about having degrees and how important they are. Do you really need one to be a good engineer? When is it really important for you?
Writing a post like this is a big responsibility. I’m not here to say if you should attend to a university degree, even the opposite. I’m here to share my experience and make you think about this subject with at least two different points of view. Since 2016 I’m on the employee side of the desk, but I stayed on the employer one for nine years, including hiring.
Currently, I’m doing my Doctor’s degree in Information Science at the Federal University of Minas Gerais (UFMG). I have also a Master’s degree from the same university, a Bachelor’s degree in Computer Science, an MBA in Business Management, a Specialization in Web Development, a certification from Zend Technologies (PHP) and I’m also Certified Scrum Master (CSM).
And what does it matter? Nothing! I have to admit, I like to study. I like the university environment, I like to research, to talk with teachers, sharing experiences, making friends. But when talking about hiring and making things done, maybe a degree is not what you’re looking for.
Just to make things clear here, I’m writing about the software engineering field, nothing else. All my opinions on this post are related to my experience in this field. If you want to be a doctor, a civil engineer, or a dentist, you must have a degree. This is required. Dot.
What I’m going to say is not a rule, but it happens. Of course, like in every place in the world, you have good and bad teachers, so please do not take this as a rule, but only a general behavior I have seen for a while.
In Brazil – and in other countries in the world – you usually will find a big gap between teachers and the market. There’re some top universities that this doesn’t happen, but in general an academic teacher is a person that usually is not strongly active in the market, and in some worst cases, this teacher maybe has no experience in the real life.
Teachers usually are very good in teaching you about a subject, but how (and where) to apply what you learned it’s about the market, that’s experience. And you have only one way to get experience: working, and working hard.
For me what mattered was getting things done. In my case, having a Master’s degree was not important to get hired for a good job. My grades during my Bachelor’s were not important. Why? Because they say nothing about how I make things happen. They say nothing about the experience I have.
If you’re looking for a software engineering position you have to produce, to generate code, to find solutions for problems, good ones. The fundamentals are important, and the theory is necessary for understanding a subject, but the fact is that having a degree doesn’t guarantee that you know how to do something, but only that you studied that in the past.
I’m not saying a degree is not important. I’m saying a degree is usually not required. And there’s a big difference. You can have a job that requires experience with some X skill. You can be attended to that class at the university, but you have no experience with that, but at least you know what this is about – or you should. On the other hand, you can have studied that X skill by yourself, developed some code to test it out or even created a side project to understand better what was that. Who is better in this case? I’d pick the second one, for sure.
The point is that without a degree you usually have to prove that you know something. When hiring someone with a Bachelor’s degree in Computer Science, for example, you can suppose that the candidate knows some necessary fundamentals. If you don’t have a degree, you have to prove one by one, and maybe the company doesn’t have enough time for that.
Experience, on the other hand, is relative. You could have worked as a software engineer in the past, but were you a good engineer? There’s no correct way to answer that, so usually, the degree is required as proof of capacity. And this is wrong.
Just to say, the best developers I met in my life have no degree in the software engineer field. Some have a degree in another different are, but most have just one thing: experience, much experience.
On the other side
When I was running my previous company, I had to hire people. We were a very small team, and we had not enough money to do a complex hiring process like it should be done. Hiring good people is expensive, much more than you can think.
We were an advertising agency, and time was money because things were moving fast. I understand if you are thinking that I was hiring wrong, and I completely agree with you, but what we were doing is what still happen in many small-to-medium companies. It’s easier to include a “Bachelor’s degree in Computer Science” to the required skills list than do tons of interviews and filter applicants by proved skills, doing technical tests and reviewing them.
With this approach, it’s usually hard to hire a rockstar, but it’s easier to hire someone that can learn something later. You can have a Bachelor’s degree in Computer Science and maybe someone without this degree can know much more about how compilers work, for example. But the point is that you can get deeper into that skill easier later, but the other candidate first should prove that know that.
The point is, hiring someone with a degree you can “assume” that the applicant knows about something, and this makes the process faster, and cheaper. And usually is cheaper to hire someone with a fresh degree than someone without a degree but with large experience. Controversial, right?
Where to focus?
In my opinion, you should focus on your experience, not on degrees. It’s better to have some few important experiences than a complete Computer Science course. If you can have both, it’s better, because you’ll have a differential from others applicants.
The fact is, in the end, what matters is what you know. Or you know something or you don’t. Please, do not try to be an expert on everything, because you will never reach that point. Focus on one thing to be a guru on that, and study related fields and technologies.
If I could give you an advice I would say: if you are starting your career, focus on experience. Try to get hired for an internship in a good company, try to face interesting problems as soon as possible. If you have enough time and money to do a Bachelor’s degree, fine, go ahead, but never – I said never – wish to have a degree, wish to be a good professional, and work for that.
Another advice. If you are during a Bachelor’s degree, for example, and it’s not working right now, you’re putting your degree first, and your experience in a second place. Stop doing this and try to find an internship as soon as possible. You must have a place to practice your theory, and this is a good experience.
In the end, the experience is what matters. In the end, the experience will give you more money, not degrees. If you have both, better, if not, no worries, focus on being a good professional, with or without a degree.
For some fields, a degree is necessary. For others, it’s just a differential. If you want to be a technical professional, focus on be technical, focus on experience. You have very good ways to prove your experience, like certifications, for example. If you want to prove a coding skill, open source is an excellent alternative for that.
In my opinion, the education process is changing, and changing fast. Ten years ago it was almost impossible to find a distance learning course. Today it’s normal, it’s not revolutionary anymore. And I don’t think a classroom is the best place to learn things. I don’t think that a person talking and 40 people listening is the best way to share knowledge. Knowledge is not something vertical, it’s horizontal.
Just a final advice. Nothing is going to happen without working hard. If you are looking for experience, work hard for that, study, absorb experience from seniors, do your homework. There’s not an easy way to be good on something without sweating. Meet problems face to face. Start now and reap the harvest later. Focus.