This is something I've wanted to post about for a while. I want to answer the question – “If I want a UK Career in Software development do I need a University Degree”?
This article will cover my experience of attending university, working in the IT industry as a software developer and going back to study a Master’s degree. I will discuss what was good, what was bad, what I would have done in hindsight and what I recommend for anyone who wants to get into a software development career.
To start with I'm based in the UK. Everything I will be discussing in this post is related to UK Academia and the UK IT Industry so it may not apply to your country. I’d love to read your thoughts in the comments for anyone based outside the UK.
My academic career spanned 4 years. I did a 4-year undergrad in Computer Science, known in the UK as a Sandwich Degree which involves a year in industry. I then did a post grad, a 1-year full time Master’s degree in Advanced Computer Science.
So, was it worth it? The answer in my opinion and from my experience is No. This article explains my reasons why.
University, the good bits
It’s obviously not all bad, there are some excellent benefits to university. First and foremost, Classroom learning environment. This is something that will always be an advantage over online training, especially for those who are struggling with the subject and need hands on help. You need more determination to succeed learning on your own that you do when you are with other students in lectures and lab sessions.
Having good professors and lecturers teaching you is a great learning experience. University is also a great social experience, living with other students will not just be fun but you will learn important life and social skills, essential for getting through interviews.
We hear the horror stories of American students running up federal student loan debts of $100k+ that they will be paying for extended periods of their lives and think, well £40k - £50k for a student loan that only starts requiring repayment when your earning over £21k per year isn't that bad, plus the UK Government will write it off after 25 years, how kind.
The situation in other countries is certainly worse that’s for sure, but to get a junior developer Job in the UK is all about what you know, not what qualifications you have. The skills you need for a junior developer job can be learned from home using online training materials and working on personal projects. The cost of this for 6 months which can be done part time, i.e. during the evenings and weekends would be a small fraction compared to the cost of 4 years’ study at even a modest UK university.
University and Industry Relevant Skills
I use SQL Server every day. Today at work I fixed a production Stored Procedure that was returning a "SQL Server Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >=" Error. In addition to that I've ran several SQL queries against log and user tables to extract and query data. SQL and Database skills are an essential part of software development.
However, spending 12 weeks which in an entire module leaning about Boyce-Codd normal form is a total waste of time when learning about database design. Although the subject would be a welcome addition to perhaps at most a day in the university curriculum, 12 weeks is ridiculous. For those who are not familiar with Boyce-Codd normal form, it’s a principle developed in the mid 1970s to ensure minimal redundancy with table data. This was important 40 years ago when hardware and computer memory was very expensive, but now is virtually pointless. Some aspects are still useful today with respect to database schema design, but over 12 weeks! In 12 weeks I could tech a total beginner not just how to design Database tables with regards to integrity but how to write 90% of the SQL required to satisfy the requirement of a Junior developer job.
This is a classic case of Academia not keeping up to date with Industry and focusing on throw away skills that are interesting but just not required.
My second example of Universities being out of touch is having an entire module on UML. There are 2 reasons why this is pointless.
1. In all my time working I have only once been required to create a OOP model and even then it was using a tool which did most of the work.
2. To create UML models, you need to have a good understanding of Object Oriented principles, but 99.9% of first year students can barely write any code.
Even back at university I knew this was pointless and quickly switched modules to something practical and hands on that would get me a job at the end.
Lack of understanding of in demand skills
Before I went back to university and studied a 1 year’s full time master’s degree in advanced computer Science, the advanced bit means that you have to have a computing related under grad degree to be accepted, I worked as a Junior PHP developer. The job was for a very small company and I got involved in everything, front end, back end, server management and managing a number of MySQL Databases. At the time and still now, PHP is in high demand for Jobs.
When I first started I spoke to one of my professors and fellow students about PHP and that I was working professionally as a web developer. The professor began to laugh stating that PHP is a language we teach in year 1 computer science, dismissing it as purely redundant. I reiterated that I have been working and we were using PHP as the technology for an Ecommerce website, but there was little to no interest.
At that point I realised they have no clue about industry and what is relevant and in demand. From that point I knew I needed to very carefully pick my modules to ensure everything was practical and required by industry, because getting a decent career at the end of a degree is the whole point of studying in the first place!
High Quality, low cost online training materials
Before I studied for my master’s degree in Advanced Computer Science I was a full time PHP web developer. The Job was good and I learned a lot. The issue was that the developer team consisted of myself, Pete, a fun guy but generally lazy developer who was far more interested in design and marketing and Chris, a very experienced developer that worked part time but could not care less about the business or the web application we were developing. Ill create a future article about Chris an as this guy was crazy. He actually held the business for ransom at one point! So not exactly the best environment to grow and learn which is why I decided to go back to university for the 1 year masters.
It was during this time that I got into .NET, C# and Visual Studio. From my experience of working with PHP I was quickly converted and began to focus my learning on C#. Unfortunately, there was only 1 module from the 8 in total I could pick from that covered .NET/C# so I started search for online learning materials. I was surprised at the high quality and how easy the videos were to learn from. The quality of the content was excellent, far better than the teaching at University. The videos taught me the necessary skills in .NET/C# to complete my dissertation in which I chose to create an online bidding website. I used the code base of this project to secure my first .NET developer role. Again this is the whole point of a dissertation, a project to demonstrate to potential employers the skills learned during your studies and that you have the skills to join their business.
The obvious fact of this was the question, could I learn better using online resources and videos than attending University?
Working with Devs without University Degrees
I can honestly say that from experience there is absolutely no difference in quality from a developer without a degree to a developer with 2 degrees like myself. It’s all about having a passion for code and a strong desire to keep learning. University will give you a foundation, but without passion and desire you will not enjoy the work and keep up with the rapid change of technology.
IT developer Jobs
As I mentioned at the beginning of the article, I’m based in the UK so I only have experience of working as a developer within the UK. Please leave a comment on how it differs in your country, I’m very interested to hear your thoughts and experiences.
The IT workplace culture and recruitment process is much more focused on experience and what you know rather than degrees. Degrees are a nice to have rather than a necessity.
But if I’m starting my career, I won’t have any experience, Surely a degree will be essential? Again, my response to this is yes it will help, but it’s certainly not an essential requirement. My advice to anyone in this position would be to subscribe to an online training video provider, such as Pluralsight and work on a personal project to gain experience. It’s also important to understand the market and the current in demand tech. You need to avoid spending time learning a technology where there is limited to zero jobs in your regional area.
I would advise that you choose and focus on one of these technologies stacks.
Mobile App development
App development is a major growth area, and there is always plenty of web development jobs so by focusing on one of these areas will ensure job prospects and transferable skills are high.
To conclude this article, No a Degree in IT is not required for getting a job in the UK. Industry doesn’t favour candidates with degrees, they much prefer Knowledge, proof of concepts (personal projects) and work experience. A lot of the time the modules will be too academic and not relevant to industry. Ensure that if you are at University studying a computing degree, tailor your modules to always pick practical and programming subjects. University is very expensive and unless you have rich parents it will cost you on average £40k - £50 most of which will be comprised of student loans. You can add another £20k to that if your studying in London.
Please leave you thoughts in the comments below.