How I Became a Software Developer without a Computer Science Degree and how you can too
I started programming as a teenager. Now with no Computer Science degree under my belt, I’m a full-time software developer at DigitalGrads.
I’ve always been interested in computers and how they work.
I started out making webpages with HTML and PHP before moving on to learn Python. But software development as a career wasn’t something that I was interested in – though I don’t know why.
I left school when I was 17 and while I was working, I started studying with The Open University on a variety of science/engineering topics. I’d often do some programming to solve a problem I had at work or in my studies.
Programming wasn’t part of my course, but I found it easier than some of the recommended tools.
At work I was getting very frustrated with a software package we used. I started developing an alternative in my spare time and in 2011 I sold my employer a license to it.
In 2014, I started my company and started developing software for other companies part-time. By 2016, I decided I was ready to take the plunge and work for myself full time.
Do you need a Computer Science Degree to Become a Software Developer?
There’s no hard requirement to have a computer science degree when starting a career as a software developer. But that doesn’t mean it’s good advice for an 18-year-old to avoid doing a computer science degree at the start of their career.
Doing a computer science degree or something closely related – like a software engineering degree – will give you valuable knowledge and a credential that will open doors. It is a smooth, well-trodden path into software development.
But there is a great deal of software development that doesn’t require a computer science foundation. Once you understand the basics of programming you can do a lot, especially with frameworks and libraries.
The larger, more complex or critical the problems are that you’re trying to solve, the more you will need and value the knowledge of computer science and mathematics that it’s built on.
A computer science degree isn’t the only way to get this knowledge, but it probably is the most straightforward. Computer science knowledge is necessary for career progression in some directions and merely helpful in others.
Moving to Software Development from Another Field
Software developers come from diverse backgrounds.
It’s not unusual for someone to make a career change from another STEM background into software development.
But even with all of that transferable knowledge from a STEM background, trying to learn missing computer science theory is no easy task. Trust me, that’s what I did!
It’s also not unusual to see people shift from other roles like system admin, design or analysis. These kinds of roles often have a programming element. And people get increasingly involved with it until they end up realising they’re developers!
Are Computer Science Degrees still Relevant?
This is a strange question, but one that we’re often asked. The answer is yes!
Even though there’s a lot you can do without one, it’s incredibly useful knowledge. It gives you the tools and tactics that you need to efficiently solve problems.
One example of this I often give is optimising parts of your programme. It may be easy to come up with an algorithm to solve a problem or it might be simple enough that you can casually explain it on a whiteboard.
But let’s say you take this algorithm that you’ve tried on a small amount of data and you scale it up to a moderate amount. You may find that it’s now incredibly slow – unusably so.
You’ve just stumbled upon a computer science concept called time complexity.
In a computer science algorithms and data structures module, you learn about things like time complexity. This kind of knowledge might be the difference between a task that runs in seconds on a large data set and a task that’ll take hours!
I’ve Tried Computer Science, but it Wasn’t for me. Is my Software Career Over?
No, definitely not.
For some people, all of the theory and the maths involved in some parts of computer science feels too abstract or hard to understand.
Don’t worry, you can still be a software developer. But perhaps you’re someone that finds it easier to learn outside a classroom environment.
You need to play to your strengths, which probably means learning by doing. Create things that you’re interested in and build up a rich portfolio of your creations, ready to impress potential employers with your practical skills!
What About a Boot Camp?
We see more and more people doing software boot camp courses.
These can be a good way to get the foundational knowledge you need to work one software development niche, but they’re in no way comparable to the breadth and depth of a degree and the lasting value that has.
Boot camps provide an option for people who want to learn practical programming skills, but who can’t or don’t want to consider more comprehensive, long-term courses.
What about online courses?
For anyone who’s taught themselves how to code or moved from an adjacent technology field but wants to understand more of the theories involved in computing, these courses provide a strong introduction and the option to gain a certificate to boost your CV.
You can also complete a full computer science degree online while remaining in employment. The University of London offers an online BSc in Computer Science via Coursera, the University of York offers an online MSc in Computer Science for graduates with a bachelors in any subject. Other universities offer similar distance learning options across the world.
Finding a Job
If you’re struggling to find your first job as a junior software developer, DigitalGrads have a free training course about employability and a jobs board here! We also partner with futureCodersSE which offers apprenticeships, workshops and training.