Do you need a computer science degree to be a developer?
This is a cross post from something I wrote whilst at Makers Academy
So do you need a computer science degree to be a developer? In my opinon NO Do you even need a degree to be a developer? I don’t think so either.
A little bit about me, I have a computer science degree. I attended university in England when it was moderatley subsidised. My parents paid about £1,100 tuition fees each year and I left university with about £20,000 of student loan debt. At that time for me it was definitely worth while. I had loads of fun, met loads of friends and had the opportunity to take a year out and work in Munich. The question becomes more complex when asked if I would do it again for £45,000. I don’t know.
I had about 6 hours of lectures each week and about 12 hours of tutorials. The lectures ranged from practical programming skills (OOP, socket programming, networking), interesting academic topics (chaos theory, network graphs, 2D graphics), to just plain bad or outdated practices (SSADM, no source control). I’d never even heard of unit testing until I read about ExtremeProgramming, let alone TDD. I broadly followed this ‘methodology’ for my final year project and subsequently got a fail in the design stage.
Many people don’t like the fact that the world of software development is unregulated. Every few years someone will propose that we need greater regulation in the software industry. It normally happens after someone leaks a load of data onto the internet. Some of the voices that advocate the requirement for people to have a computer science degree are those that would like to have more control of the industry. They have the most to benefit, either because they are the gatekeepers or they’re already ‘qualified’. In my opinion it would not lead to any positive change to the industry as a whole. It will simple introduce barriers to entry preventing many great people from taking up software development as a career choice.
Not all development is created equal
Most of what we do as developers doesn’t require a computer science degree. Do we really care about the various intricacies of different consistency models in our daily development lives? Maybe not, but then again maybe you should have some appreciation of CAP Theorem when dealing with other people’s money!
Diverse teams mean diverse solutions to diverse problems
There’s no way any one person can know everything there is about the world of software, even within a relatively small remit like web development. In my experience the best developers are the ones that don’t stop learning new things. What’s the best method for preparing someone for working in this kind of environment? A code school? University? I don’t know, I guess different things work for different people. There’s no silver bullet. The question you need to ask yourself is what am I going to get the most value from doing?