Do You Need to go to University? From a Computer Science Graduate
So you’re thinking about becoming a software developer but you don’t know where to start?
You’re in the right place!
As someone who spent five years at University studying Computer Science, I will provide you with an insight of what it’s like to be a student studying to become a software developer, but first a little ground information.
For those who aren’t in the UK or don’t know how the education system works in the UK after we finish secondary school at the age of 16, we are required to go into further education until we’re 18. This could be a college course or sixth form which usually takes two years to complete and is below university level, it’s like a high school in the states.
Back when I was a 16-year old school leaver, I decided to do an IT-based course which included various aspects of IT including the basics of software development. This gave me many options for when I finished college.
Encouraged by some of my friends, I decided to go to university.
Before I go any further, I would like to add a side note. It’s good that you have friends that encourage you but you have to remember that at the end of the day, attending university is your decision and it’s a decision that can impact your life in the long run, especially in terms of student debts. My recommendation is to research what courses have to offer. It’s also a good idea to reach out to people who are studying these courses to find out their perspectives.
LinkedIn is a perfect tool for the job.
My Time at University
My first year at University went fast, now universities can differ but the first year at my university was more about trying new things and finding the direction you want to take your studies in. Initially, I was thinking of going into the networking field, that’s until I started the software development modules.
I first built my passion for programming when I was exposed to C++, an object-oriented computer programming language. That’s the thing about university; when you leave school, you may have your heart set on one thing but it can turn out that you actually don’t enjoy that something.
For me, I still like networking but I preferred the idea of software development because I feel a sense of achievement once I get my software running. University lets you make life decisions without needing to worry about quitting and finding a new job. Other than the educational experience, my first year allowed me to have a great social life and to try new things, such as flying a plane!
The second-year is where learning starts to get serious, mainly because it was the year that counted towards my degree.
Meaning, I needed to start getting serious.
I needed to be able to manage my time better so that I could work around lectures, labs, my own research, practice as well as working a weekend job and keeping a social life. John’s video “How I Plan My Week” helped me a lot. Using Kanban Flow, a tool I discovered in the video, I was able to build my own productivity system which helped me manage my time.
Not only did Kanban flow enable me to track how much time I spend studying it also helped me follow the Pomodoro technique which helped me stay on track with my studies.
As part of the course, we were able to do a project for a real client. This provided me with the experience of building an app, and it also provided me with experience of working with a client and managing my own project. I can honestly say that this helped me understand how the industry works. The project was a tourist app for a local museum and it taught me about working in a team, managing projects, and delivering an end product.
My university focused on teaching agile methods, mainly SCRUM which is the framework we used for this project. The project experience was a luxury that many self-taught developers may not have access to as it included working part of a team and collaborating with a client.
In theory, if you are a self-taught developer, you may be able to do a similar project, but as someone new to the career field, it may be more difficult to organize.
In addition to hands-on experience, we learned a multitude of soft skills such as IT-related business skills including project management, employability, professional issues, and why projects fail.
I found the project failure topic of particular interest as several case studies we used related to projects we were working on and because it can impact the way you work in your dream job.
12-Month Work Placement and Final Year
I decided to do a sandwich course, which is a four-year course that includes a paid 12-month work placement. I can’t stress this enough, taking a course with the option of working in the industry for 12 months was the best decision I ever made, because not only did it provide me with a year’s worth of experience in the industry, it also added to my resume. My work placement was mainly based on a help desk, but it also featured software development, networking, and other mini-projects.
This type of experience is something that will prepare you for when you graduate and set you apart from other candidates.
Unfortunately in my case, that was not to be as Covid hit during my final year. The pandemic caused many problems for me as my graduate scheme got canceled and finding a graduate job or different scheme proved to be even harder. The circumstances going on globally led me to work a part-time job at a supermarket, and start a remote master’s degree program, something I was planning to do after working in the industry for at least a couple of years.
My final year at university wasn't really about learning anything new, instead, it was about perfecting the skills I already had. We didn’t have any new modules other than research methods and a module where we looked at securing our code from possible attacks.
It was also the year we were expected to write our dissertation, an 8000-word document including a presentation of findings. I wrote my dissertation on examining what features can improve project management, this included gaining participants to try out certain tools such as Gantt charts to see how they worked for their particular projects.
The ultimate goal of my project was to document how people used project management tools to attempt to create a new and improved project management tool. I ended up building a prototype that combined several tools and techniques into one ecosystem, however, due to time constraints, it was not possible to further develop, but it was enough for the research.
Projects like my dissertation are good starting points for bigger projects which you can turn into businesses. This is the type of approach I was led to follow my lecturers and it helped me.
Although I was not planning on turning my work into a business, it was always a good Plan C.
Option to do a Masters Degree
After finishing my bachelors degree, I was hoping to go on a graduate scheme, but this was canceled due to the pandemic. I found it difficult to find a job in my chosen career path as many organizations adopted working from home.
The problems could have been caused around my area but I did explore remote jobs, but there simply weren’t many that appealed to me and my experience. I therefore decided to take up a plan I was planning to do after gaining several years of industry experience: the plan was to do a master's degree in Computer Science. The degree was online and I never had to go on site. As everything was on demand, I had an option to work and study when I wanted. I decided to get two part-time jobs, one was at a local supermarket and the other was in IT.
Doing a master's degree was completely optional for me but I decided to do it under the circumstances of the pandemic. To keep my resume and portfolio active, I was hoping to go into employment to gain experience. I also considered becoming a freelancer but I guess I needed the stability of regular income.
That’s when the idea came to build a side business so that I can have a regular side income and effectively earn while I sleep. This is something I’m working on part-time to this day with my project Tech With Dom, a blog and YouTube channel where I talk about my experience with tech.
The idea came to me after watching several Simple Programmer videos on YouTube and reading the Complete Software Developer’s Career Guide, a book I highly recommend to anybody who is looking for a career in software development and not only!
So do you need to go to Uni to become a software developer?
The simple answer is no, you don’t need to attend university to become a software developer.
But should you attend university?
That’s another question and it depends on a number of things such as your lifestyle, your willingness to learn, and your circumstances. If, like me, you want to keep your options in life open for the possibility of a career change in the future, university may be a good starting point as it will teach you many paths and skills you may require.
Attending university can also allow you to start at a higher position compared to self-taught developers who may need to work their way up in a company. Although, it could be argued that starting from the bottom and working your way up may teach you more of the business side of things which could benefit you if you decide to become a leader, especially since you would understand things from an employee point of view.
An important aspect to understand is that University alone will not help you become a software developer and just because you have all the top grades doesn’t mean that you will get your dream job. It all depends on the effort you put into learning and practical work, this includes practical work in your own time!
Something most, if not all, my professors emphasized was that simply attending lectures and labs is not enough to build needed skills, students must take the knowledge and apply it to their own projects outside of class. Several instructors recommended starting a software development blog as a way to apply what was learned.
For example, one of my courses required students to build a portfolio website with a featured blog as a way to build our resumes. This proved helpful during my placement interview as one of the first things I got told was that they liked my blog!
At the time, I mainly used it as a diary to log what I learned but it showed that I have the necessary experience. I wrote a post explaining the advantages in greater detail, you can read it here.
Why you should attend University
There are many advantages to going to university. I found one of the biggest advantages to be getting the unbeatable student experience. I’m not just talking about the social side of things, which was amazing!
I’m talking about the experiences that can be gained within your course — working with clients, being part of global projects, meeting inspirational people, and just getting to know fellow students really helped the overall learning experience.
The main area my course focused on was software development and starting with the basics, it taught me a lot about programming and professional life. At the same time, I picked up a lot of skills such as academic research and communication. It also provided me with a lot of tools and resources to experiment without the pressures of a job.
One of the main advantages of attending university is that most tools are provided to you. I knew fellow students who couldn’t afford a reliable computer, instead they used the university's library and computer labs for their coursework. People who choose to become self-taught developers, need a reliable computer to learn on. The computer doesn’t have to be expensive or top of the line, it just needs to be reliable enough to learn on.
There are many ex-business PCs available cheaply online, I highly recommend the Dell Optiplex range.
Why you should become self-taught
One of the many advantages of becoming self-taught is that you get to choose what you learn and when you learn, you don’t have to take the path your university is wanting you to take.
For example, I found that there wasn’t a great deal of choice in learning programming languages. But then we got a chance to learn a lot about that specific language, especially the theory, which I think helps build a better understanding of the language.
Whilst academia is important, I never liked the idea of sitting down in a lecture listening to how to build a program for over an hour; I always preferred to build instead.
In my final year, I learned that those were the important lectures because it was the time and place to ask questions and make notes from them. However, I still learned best by doing. A self-taught developer can learn in a way that works for them whereas, as a uni student, you have to follow the way they want you to follow.
That’s why I highly recommend doing side projects.
I have a few friends who became self-taught developers without ever going to university and they are doing very well in life, they have nice cars, they were able to buy houses and they are financially stable.
Comparing that to a typical graduate, nice cars and homes are something they can look forward to in the future.
Obviously, that depends on the individual circumstances and whether that person is financially stable. I had a friend at uni who bought a house whilst only working a part-time student job, but she was financially stable and is very good at managing her finances. It just goes to show that success depends on how much effort you put into it, you don’t need to go to university to become a software developer and you don’t need a top-end job to buy a house.
It’s all down to the individual.
One thing I find in common among self-taught friends is that they all are missing a skill that I picked up at university. These skills can range from project management skills to understanding how a business functions. However, it depends on the experience that they were able to pick up at their workplace.
At the end of the day, whether they know that skill or want to know it, it’s up to them. As a university graduate working in the industry, the way I look at it is: is that skill useful to me in my current job, and can it improve my life? If you answered yes to any one of these, then you should learn that skill, otherwise, it's pointless as it won’t help you.
One of the disadvantages of going to university is that you will learn a lot of things that won’t apply to your chosen career path. But, it’s important to note that these skills may become useful one day.
This article happened to originate from a conversation with a friend that is a self-taught developer. His employer wants him to manage a new project with which he has no experience, but hopes of receiving a promotion and has decided to learn the skills needed. In other words, my friend is learning as he goes while I learned the skills required for this project through my time at university.
Experience from academia
One of the first things I got told at my first IT interview was that they liked my blog – something I started from a university course.
At the time, I used to run a computer science student blog explaining what I learned and projects I was working on in my own time, such as building Android apps. I included code snippets and uploaded the repositories to GitHub which I linked to my articles, I even put a GitHub URL on my resume!
From that, I was able to show that I have experience.
If you decide to go to university, you have to be passionate enough about your learning, play around with code, and do side projects.
Whilst you can build a portfolio of projects to show at Uni, these can be broad compared to a self-taught developer who may have a portfolio full of projects in that particular language to show. I purposely mentioned playing around with code because if it truly interests you you will never work a day in your life.
It’s all about gaining experience which doesn’t necessarily mean working directly with a client or for a company.
Hands-on experience comes in all shapes and sizes and it doesn’t have to specifically come from learning software development. Although it is important that you dedicate time to your studies, it’s also important to be able to support yourself financially, even if it means having a part-time job.
During my first two years at uni, I worked as a sales associate at my local electronics superstore. This provided me with a lot of experience I didn’t know I needed. One example is providing good and personal customer service, something I got complimented on at my first IT job. I also learned to work under pressure with all the sales targets I was given.
You may not think much of it at the time, but all these little skills you pick up will benefit you one day.
I recommend that anyone works in sales or retail. It completely changed me. Before I started my first student job, I was always shy and I didn’t like talking to people. But I had no choice, I had to talk to people and communicate effectively so that I could sell. I don’t presently work in sales or retail, but I use a lot of the communication skills I picked up in my everyday life.
My overall opinion as a University graduate
Success as a developer depends on the individual and their willingness to learn. In my experience, people can be successful working as self-taught developers and people who graduate from university but neither path is a guarantee of your dream career.
When you graduate, you will have that shiny certificate that you can put on your resume to set you apart from others, but a degree is not enough if that’s the only thing you put on your resume.
While interviewing for a job, you’ll be asked about your experience, and unless you have hands-on experience, you’ll likely not have much to contribute. A benefit of attending university is the possibility to work with real clients with minimal pressure — something I highly value from my time at university. I recommend networking with other students, who are already on the course.
Not all universities have access to the same resources, and direct information from other students is insightful to what experiences may be available.
My advice for becoming successful
You can become successful as a self-taught and by going to university, but what determines your success is the amount of effort you put into learning and practice. You need to be able to learn soft and core skills.
Personally, I recommend doing a lot of reading.
One of my favorite books is How to Win Friends and Influence People by Dale Carnegie. It taught me how to communicate effectively by gaining the other person's trust, something I find useful in presentations and when trying to get people to like my ideas. I also recommend checking out Soft Skills: The Software Developer’s Life Manual and The Complete Software Developer’s Career Guide, both of which are written by John Sonmez. These books have helped me in an unbelievable way, both at university and in my day to day life.