Building and Managing an Engineering Team
A Self-Taught Software Developer vs. a Scholar
Do developers need a university degree? They were once considered indispensable for securing high-paying jobs, but times have changed. Every day, we encounter software developers without degrees. We also find inspiration in biographies of college dropout geniuses like Mark Zuckerberg or Steve Jobs. We have entered a period where it is necessary to consider the indispensability of university education in the technology sector.
In addition to the current state of the industry, there is also the reality of children who have not yet entered university. Today, the new generation under the age of fifteen is quickly learning to develop mobile applications and create websites. Four-to-five-year-olds create miracles on smartphones; they can instinctively do many things that even adults find difficult. They are highly equipped to learn many things on their own using Google and YouTube. The older this generation gets, the more they will wonder: “I can already write pretty good code. Do I really need a university to be a software developer?”
Until a few years ago, job postings often looked for graduates from selected universities. Today, the number of similar ads is decreasing; in fact, they are about to disappear. The reason is simple, and it’s also why companies can no longer find the employees they are looking for: the number of job posts requiring graduation is gradually decreasing. At first, such advertisements said, “graduate in computer engineering or related fields.” Now, it is often enough to graduate from an engineering facility.
While this is the situation in certain countries, in economies where the pool of well-trained software developers is getting narrower, the graduation requirement is no longer necessary. Today, many companies in Silicon Valley are more concerned with what you did in the past than what school you graduated from.
From the perspective of a startup founder in Silicon Valley, there is little difference between Shaw University and Stanford University. You can graduate from both as a computer engineer. In fact, you may get perfect grades, but this does not guarantee you a job. “In this profession, the tree is known by its fruit.”
In 2016, Stack Overflow conducted a study with 56,003 software developers from 173 countries. Only 34.8% of the software developers stated that they graduated from an engineering facility related to software development with a bachelor’s degree. Again, in the study of job posts conducted by Stack Overflow, it was seen that 61% of 2739 job posts did not require a bachelor’s degree.
So, the world is not only changing—it has changed. Where are you in this?
Are People Studying for Nothing?
This issue is not one-sided. After all, nobody studies hard in vain. But I have to admit that just like there may be self-taught people who are very knowledgeable, some scholars may know very little.
As the CTO, you may prefer an employee with a computer engineering degree because:
- Learning a job’s theoretical background often gives better results during practice.
- In jobs such as machine learning, artificial intelligence, deep learning, and graphic simulation, software developers with a degree perform much better. These subjects require advanced mathematics and statistics knowledge. Someone who has gone to college to study calculus, differential equations, linear algebra, and statistics will often perform better than someone who has not.
- Committing yourself to a school for four years shows that you can start and finish something when necessary.
- University graduates typically have well-defined knowledge of a class subject and do not have to prove themselves to you.
- Programmers with a degree usually have fewer problems with professional terminology.
A self-taught software developer enters the profession quickly and starts earning money. They often cannot spare time to focus on topics such as algorithms, data structures, and operating systems, which typically require two or three years of studying. A scholar devotes time to these topics, so their knowledge will be more robust.
We’re all aware of the advantages above. As I said before, if you have the opportunity, hire a scholar, but if you don’t, then self-taught software developers can do just fine.
A Diploma Is Not Enough Anymore
I say this to highlight a fact. I often encounter situations where a company hires a person because they graduated from a highly reputable university. However, they cannot write two lines of code, cannot install a simple operating system, or even know the difference between an Array and an ArrayList. I can’t stop thinking about how these people can graduate from university.
On the contrary, so many high-quality, self-taught software developers have learned design patterns inside-out, internalized the principles of DevOps, and can play with functional programming as they like despite being a high school dropout.
So, which one is correct? How will you select your employees?
In my opinion, the main criterion when choosing a software developer is what they have done in the past. If they have a portfolio somewhere like Github or Bitbucket, I think those codes are as important as a diploma. I take the time to sit down and review the codes, trying to understand how seriously they take their job.
In an interview with a scholarly software developer, I try to understand what they have done while studying. Like a person who only does what they are told, I do not think that a person who is content with taking what the lecturers gave at school will be a good software developer. The software business is laborious. It should be that person’s hobby as well as their profession. A software engineer who does not go home and write code for a hobby project whenever they have the opportunity—even if they graduated from Princeton or Stanford—may not have the appropriate passion.
Today, platforms such as Coursera, Udemy, iTunes U, and Pluralsight can be sufficient to get the necessary theoretical knowledge. If a software developer has done the essential work and learned the theoretical background, they have more time to create a portfolio and gain work experience than a student. Therefore, my expectation from such people is generally higher. I want them to prove themselves with projects where they can make a difference. When I examine their work and the code behind it, if the quality is indistinguishable from a scholar, in my opinion, there is no longer any difference between self-taught and scholar.
Este tema también se trató antes en un artículo en turco: Alaylı ve mektepli yazılımcı mevzusu, enero de 2020.
Todo lo que recauda el libro se destina a plantar árboles. Árboles y el PDF · Amazon ↗