9-5-2022 Carl Riis
A discussion has been brewing for a long time about computer science degrees in the tech industry. Specifically, If a CS degree is necessary to be a good and “successful” software engineer and if companies should require them. Many young people today are wondering whether to pursue a CS degree or perhaps drop out of college.
I, however, did something less discussed, I dropped out of high school. Something most people would regard as a foolish and immature thing to do. Considering this is a decision that I thought a lot about, I have decided to share my thought process.
Today, I’m employed full-time as a software engineer for the Swedish startup Depict.ai. I have interesting and fulfilling work that I enjoy with people who I find absolutely brilliant.
I’m currently 19 years old and dropped out 9 months ago. My tech career is only 2 years and 7 months long (including part-time work), so this is not me reflecting on a long career; time prevents me from doing that currently. These are merely my reflections on the actual decision to drop out.
In order to make the decision to drop out of high school, I first had to realize that I didn’t want to pursue a computer science degree. This, then, is the best place to start explaining my decision. To do that, I should explain what value I believe a computer science degree gives you. It’s quite nuanced, but I think it can be broken down into three things: knowledge, self-discipline, and proof of the two former.
I will soon address each of the three values listed above. But before I do that, I want to note a few things.
Computer science is a very broad academic field. When I refer to “computer science,” I refer to a classic computer science bachelor’s degree.
When I asked people what value they gained from attending university, many mentioned something I didn’t list above: the social bonds and connections. This is certainly something I’ll miss out on, but also something I can obtain outside university. It wasn’t a huge influencer on my decision but something I kept in mind.
I also want to point out that I’m in no way anti-education. I have huge respect for academics and think education is a very individual decision that can’t be generalized in “should” or “shouldn’t” terms.
Knowledge is the primary purpose of getting a degree and therefore was my main consideration point. Here, I have one central belief: When it comes to computer science, no knowledge is exclusive to a degree. I truly believe that all the information obtained through a CS degree can be self-taught. Computer science, probably more than any other field, has embraced the internet to share information. Much of that information is freely available in the form of courses, articles, recorded lectures, papers, e-books, open-source software, etc.
You could argue that some knowledge is practically exclusive to CS students because it’s impossible to teach yourself. I very seriously doubt this. Some things are, of course, much easier to learn with the guidance of a teacher, which I believe to be a very valid point - probably the most significant disadvantage to being self-taught.
Whether your aim when going self-taught should be to obtain the same knowledge you would with a degree is another point to bring up. I think not. The beauty of going self-taught is that you can teach yourself whatever you want. This can include things that are too new or niche for universities to have in their curriculum.
This was actually a big attraction of dropping out. My thinking was: By going self-taught, I would get the freedom to assemble my own curriculum to optimize for time efficiency, industry relevance, and personal interest. This would also increase the learning enjoyment.
Regarding self-discipline, I doubt many people will claim that university provides the only way to achieve this. Many people indeed use university to build the discipline needed for “adult life” - whatever that is. Finishing a degree definitely takes determination, but so does self-teaching. You have to constantly be the one to take the initiative about what to learn and learn it without short-term consequences if you don’t. Self-teaching requires a level of proactiveness you have to be prepared to handle. A degree does too. That’s to say, self-discipline wasn’t a big influencer on my decision.
Another value I saw in a CS degree was as proof. A CS degree acts as evidence of relevant CS knowledge and enough self-discipline to follow through on a hard goal. From an employer’s perspective, this is very important. The challenge then, without a CS degree, is to prove these same things. I thought it was possible, although not as straightforward.
The main value of this proof is to get interviews. This later became much less of a concern for me, but at the time was something that made me quite nervous. What if I become without a job one day and no one is willing to interview me?
My main strategy to combat this was to create lots of stuff and share it online. That way, there would be a public record of the software I was able to produce. It would also increase the likelihood of future employers reaching out to me. This strategy proved successful; 6 months before dropping out, a blog post of mine reached the top spot on Hacker News.
This felt amazing, but more importantly, it got me the connections that led to my first full-time job.
Another strategy of mine was to create a personal brand of sorts. My thinking was, if I played into the role of a high school dropout and embraced it, it would become less of a hindrance to me. When used correctly, I could even leverage it to stand out.
It’s also important to note that I could leverage my existing work experience as proof. As time passes, this becomes something I can lean on more and more.
In general, I found the fear of being rejected purely from a lack of CS-degree-signaling-value a very depressing motivator. This fear was the most common deterrent used by people trying to convince me not to drop out. The fact that people didn’t cite the value of the knowledge from a CS degree as its main argument was a bit of a red flag for me. It seemed to me that a CS degree plays a part in some annoying label-game I didn’t want to play.
As much as I would love to present myself as a fearless hacker, that’s not the case. Making a decision that would affect me for the rest of my life was hard.
The first thing I tried was to put off this decision for some time. I tried this by requesting a year-long break from my high school. This would have been a safer way to “drop out” since I could regret my decision without much consequence. Unfortunately, my high school wouldn’t allow me to do that. It had to be all or nothing.
The second thing I did was research my options if I regretted my decision years down the line. I had to do this because, admittedly, I can’t predict my future desires and regrets. I discovered that I could use the two high school years I had already completed as building blocks in flexible education programs for adults. Meaning the time I had already put into high school wasn’t lost. I made sure to request official copies of my exam grades.
My last precaution was my job. At the time of dropping out, I had already been working full-time for half a year (my job was remote with flexible hours). I knew that I had good job security and an income that could support me.
Another thing that explains my decision is my relationship with self-teaching. I love it. It sounds like a cliché among programmers, but it’s true. It’s a big source of happiness for me.
I didn’t thrive too much in a traditional classroom. I was performing quite well by objective measures, but I wasn’t happy. Other people setting the pace for me and telling me what/how to learn stresses me out. When you feel like that, four years of extra school can seem quite overwhelming.
In an education setting, this is something you’re told to just endure. There are no doubt millions of young people who are currently feeling how I did but who are forced to tolerate it because they have no other options. I had other options, though; I knew I could happily sustain myself without a degree. Why would I endure when I can thrive?
Again, I want to stress that it’s only been 9 months since I dropped out. Still, I think it’s appropriate that I give some reflections on how it’s been so far.
When in school, I was always longing for when I could get into the “real world” where I could produce real value. Having now lived in the real world for a while, I can confirm that I very much prefer it.
Today, I also worry way less about the safety of my career. I used to bear the weight of every possible bad outcome on my shoulders. Now I’ve realized that even if something bad happens, I’ll be fine.
If you liked this and want to read more about my opinions on self-teaching, I recommend reading the Q&A that inspired this post. It has been deleted from the original website due to editorial differences, but I keep a copy up on this blog. It includes my advice to new people wanting to learn coding. Read it here.