The real answer depends entirely on you as a person. What are your motivations, aspirations, what’s your end goal, and what do you value in the middle? Answer these and you will have a clearer idea of what path you wish to follow. There are positives and negatives to getting a computer science degree, but there are just as many if you are looking to follow the self-taught path. You just have to weigh up which positives you value the most and which negatives you wish to endure.
Carry on reading below and I will do my best to help you find the route that suits you most.
Positives of getting a CS degree
Offers a structured learning environment
The first question to answer is what sort of learner are you? Do you prefer a structured learning environment? A start to finish solution that tells you what you should be learning and when? If so, getting a computer science degree may be for you. Work is set out into modules, lessons are done on those modules and coursework relating to each section follows.
A lot of people find it difficult to achieve a deep focus outside of a classroom environment, that’s okay, maybe a computer science degree is for you. It is possible to set up systems to get the same structured experience whilst teaching yourself. More on that below.
The experience fills out your CV
Getting a job can be hard enough as it is, but getting a job without any work experience is even worse. I find it funny that to get some entry-level jobs you need to have X amount of years relevant work experience, but those jobs are there for people to get their start in the world of work to build up experience.
This is where going to university can be a good thing. It shows your commitment to stick to something, similar to work experience. In that empty period where self-taught software developers are learning to code, you will have a block of experience where you have been at university. A degree gives you the necessary experience on paper that shows you are employable.
You are more likely to get an interview with a degree
On the same lines as above, because you have a sizable chunk of time at university, it shows you have experience working to deadlines, committing to large projects and a willingness to work hard. Many companies will look if a candidate has a degree and instantly yes or no an application based on that.
I have the belief that this is changing, more and more programmers are self-taught and have portfolios to prove how skilled they are, however not getting an interview because you don’t have a degree does still happen. Having a degree gets your foot in the door for an interview.
University is perfect for networking
Programming is a lot of what-you-know but also a lot of who-you-know. Some of my best opportunities have been through building relationships with colleagues and the lovely folks of the internet. I would not have landed my previous role if I hadn’t made such fantastic friends in my previous workplace that informed me of better opportunities elsewhere. This is one of the biggest positives of going to university.
You are on the journey to find yourself and along the way, you meet a wide array of people from different cultures, backgrounds and viewpoints. You meet plenty of people on your course, all with common ground and all heading in a similar direction to you. These lasting friendships may mean opportunities to work somewhere with them in the future. They could be securing you an interview or at least putting in a good word. Maybe you see yourself as the budding entrepreneur, your peers could be your partners as you take on a venture, or maybe future staff to work within your business.
You get the university experience, independence and your first sniff of real life
This is something I never had the pleasure of experiencing and part of me wishes I had. The university experience includes partying, going out to events and meeting lots of different people. You are young, you want to go wild and have your first taste of independence, university and its culture give you that in abundance. Now don’t get me wrong as fun as it sounds, it’s probably not worth the university debt in the future, and with a good group of friends, you don’t need to go to university to get these experiences, but it is worth noting that this is a positive for getting your degree
Downsides of getting a degree
Big Ol’ Debt
This is the main one. The biggy. The worst reason for going to university… the debt. You get all those neat experiences and memories. You work your ass off to hit deadlines and hand in coursework. All so you can achieve your dreams of doing X. But to achieve your dreams you have to have a sizeable chunk of debt hanging over you. The upper limit of tuition fees in the UK is £9250 per annum. A typical undergraduate degree in the UK lasts three years, meaning the average student debt amounted to £27,000 in 2020. Not including repayment of maintenance loans for living and rent, on top of tuition fees, this can total between £35,000 and £40,000.
It’s not a great way for young people to start their adult life, by having over 30k worth of debt, before they have even considered looking at a mortgage. I know you have to hit a certain pay bracket before you have to start paying it off, and even then it’s in smaller increments, but it is still a burden that people have to take on to get where they want to go.
Deadlines, Coursework, Stress
Above I identified this as a positive, for those people who love self-punishment and enjoy dealing with piles of coursework and a calendar full of deadlines. Now to look at it as a negative, the way I feel about it. I don’t hate deadlines, I just hate deadlines that I haven’t set. Unless I feel they help me work towards my goals and values then I don’t feel like devoting my time towards them. I know if I was in university then technically those deadlines would be towards my goal, but, having not walked that path, I appreciate being able to set my direction and change it if I want to. Rather than being stuck on content someone else wants me to learn.
The question is not to ask yourself “Do I want deadlines?” It is to ask “Do I want deadlines set by someone else?”
Study areas may not be to your liking but are compulsory
As I mentioned above, in University you are tied to a standard curriculum. You must learn the topics set by your tutors, to their deadlines and their standards. You might be able to pick between a few modules but that is as far as your choose-your-own-adventure-at-university book permits you. You can use your free time to learn more about what interests you, but that can be difficult to do with the call of the extra-curricular activities university offers
Anyway, who wants to do more learning after being talked at about Data-structures for three hours.
What you learn at university is not what you actually do as a developer
This is information from colleagues of mine who have gone to university and got their degree. What you learn at university is a lot of theory but doesn’t benefit you in the ways you need it, when it comes to working within a real-life software development team. You learn the ins and outs of algorithms and theories of computation, but you don’t learn the necessary skills to help integrate you into an actual development environment.
SCRUM ceremonies, planning and agile methodologies. Being a bug squatter picking up ticket after ticket. Meeting after meeting to discuss the direction of apps. Actual development involves a much more hands-on approach to what’s taught in universities. After finishing learning and getting your degree, you are placed in a team of individuals with much more experience than you to start your learning journey all over again.
Positives of being self-taught
This is the big one. For those who can become laser-focused and teach themselves to code at home. Who struggle through difficult problems, and don’t throw in the towel when imposter syndrome sets in. You will be rewarded. You will be rewarded with a job and be rewarded with the fact that you got to that point without accruing £40k worth of debt.
Self-directed study, you choose what you want to learn
Want to learn how to make cross-platform mobile apps? Okay, get to it. Want to switch up and hone in on building a personal website? You can. Have some brilliant new idea for an Amazon Alexa skill and want to know how to make them? Drop what you are doing and get at it!
This is the beauty of learning to code by yourself. You set your direction. You set your goals and you set your wants and needs based on them. It’s your choice on what you want to learn and where you want to go with it. There are the basics that everyone has to learn, data types, variables if-else conditions etc. These are transferrable skills that you can use no matter what product you seek to build and whatever language you seek to build it in. It can be hard to stay focused learning anything, but it is so much easier when you have a want, a need, a burning desire to build whatever crazy idea you have floating around in your head.
Build up your portfolio as you learn
Having a portfolio as a programmer makes you more employable. Whether you have earned your computer science degree or are self-taught, you will need a portfolio to highlight your skills. Building and releasing websites and apps are the best way to get a potential employer to take note. This is where a strength to being a self-taught developer comes in. You will be working on your tech products as you improve your skills. These tech products are portfolio items. So you are killing two birds with one stone.
What you put in is what you get out
Not having the deadlines of the traditional education route means you don’t have the stress looming over you to do coursework and make sure it is to a certain standard by a certain date. This is both positive and negative. Not having a deadline can make most people lazy and want to procrastinate. With the pressure off, most people take the easier route, which then leads to not doing the work required to achieve your dream of becoming a developer. This is why if you are going on the self-taught developer journey, you have to be strict, achieve your goals before you reap your rewards.
Along the same lines. If you want it enough and have it in you, you can work as long and as hard as you like towards achieving your goal. If you are doing something you enjoy, there is no stopping you. What you put in is what you get out. If you want it enough, you could have your dream of being a programmer professionally in a year. Keep in mind, self-care is key to consistent high performance, so don’t overdo it. Love the learning process.
You will be following the path of a self-taught developer
I have touched on this a few times already. During and after earning your degree you will be following the same path as a self-taught developer. Constantly learning and building new things to add to your portfolio. Having to put in extra time on evenings, and when not in class to learn a programming language to make yourself more employable.
You end up with the same pay as someone with a degree
A computer science degree gets your foot in the door for an interview. After you have landed the job, you will most likely be a junior software engineer. If you can go through the self-taught process and land a job at the end of it, you will be at the same level as someone who spent three years at university, earning the same money, with none of the debt.
Negatives of being self-taught
Self-directed study so it can be hard to stay focused
I have covered this above. Computer science degree deadlines can help with focus as it is do it or fail. It is very difficult to stay focused and motivated without the fear of a deadline approaching. You don’t have a clear direction, you have to manage this yourself. Alongside this you have no peers or teachers to rely on for advice, however, you do have several online communities to ask for, or maybe you can reach out to someone on Twitter. Like me, drop me a message @TechPickleJoel for any advice, or even just to connect and chat.
There is no clear endpoint
The journey of a self-taught developer is an unsure one. You will doubt yourself, question your choices in life and maybe take a few kicks before you get to where you want to be. It could take you 6 months to a few years before you get a full-time developer job. You may receive rejection after rejection until you finally get that person willing to give you a chance. If you have willpower and tenacity you can do it.
What both paths share
- 💻 You will learn to code.
- 🏗️ You will build amazing things.
- 💪 Both are hard and will give you a massive sense of achievement.
- 💰 Money
Whichever route you decide to take. Enjoy the process, it won’t be easy, but it is worthwhile in the end.
Thanks for your reading ❤️