I currently work as a Software Engineer and I also have a degree in Computer Science. The purpose of this post isn’t to turn anyone away from education. This is just my honest opinion on why I think a degree can’t teach you how to be a better programmer.
Software Engineering is a practical skill
Although there’s a lot of theory behind programming and software engineering, programming is a practical craft that requires loads of practice. It’s easy to think that a book will teach you how to be a better programmer but the truth is, practice is key. Courses, books, and degrees can only provide a guide on how to be a better programmer.
So why study a computer science degree at all?
It really depends on what goal you’re trying to achieve by getting a degree in computer science. If you’re looking to further your academic knowledge then sure, go for it. Computer science is a vast topic and there are loads of areas to explore.
However, if you plan on becoming a better programmer then it’s most likely not a great use of your time or money. It also largely depends on how your course is taught. Most university courses don’t simulate real-life programming. Computer Science is a really broad topic and your course will most likely give you a taster of the various different fields within what’s considered Computer Science. Most of what you learn will be based on theory rather than how something is applied in real life. You can think of a university degree as an introduction to the computer science field as a whole.
A computer science degree can give you a good foundation
Sure, my degree introduced me to a variety of useful topics but it’s highly likely that I would have encountered them at some point during most projects I worked on. Most of what I’ve learned is due to my experience developing real applications. Keep in mind, when you work in the real world, you’ll be working with developers who are far more experienced than yourself. There’s a huge amount of knowledge sharing that takes place on the job.
But can I get a software engineering job without a degree?
One other reason why you might want to get a degree is to get a job. The job market is getting more and more competitive. Simply mentioning that you have a degree automatically ahead of those who don’t. Maybe that sounds harsh, but the reality is that most of the time before a human even reads your CV, it’s filtered by an ATS (Application Tracking System). There’s a lot of companies that require you to have a Computer Science degree but at the same time, there are companies that don’t. These days many companies look at projects you’ve been working on in your own time. There’s already plenty of developers who already have a job without needing a computer science degree.
How to be a better programmer?
Practice, practice, practice. Work on your own projects. Software Engineering is a practical craft that’s honed through practice and experience. A person with hands-on experience and a few projects under their belt would be far better programmers than a degree holder.
Software engineering is a practical craft that should be improved over time. Learning theory is great but applying your knowledge is what’s going to allow you to become a better programmer. Learning to apply what you’ve learned is even more important. In the UK a university course costs £27,000 and a minimum of three years of your time. Most university courses focus much more on theory than they do on real-life applications. So that’s my take on why I think a degree can’t teach you how to be a better programmer.