Do Software Developers Really Need Degrees?

When I first started out my career as a software developer, I didn’t have a degree.

I took my first real job when I was on summer break from my first year of college. By the time the summer was up and it was time to enroll back in school, I found that the salary I was making from that summer job was about what I had expected to make when I graduated college—only I didn’t have any debt at this point—so, I dropped out and kept the job.

But, did I make the right choice?

Do you really need a university degree to be a computer programmer?

The difference between education and school

Just because you have a college degree doesn’t mean you have learned anything. That is the main problem I have with most traditional education programs today. School has become much more about getting a degree – a piece of paper – than it has about actually learning something of value.

To some extent, I am preaching to the choir. If you have a degree that you worked hard for and paid a large amount of money for, you are more inclined to believe that piece of paper has more value than it really does.

high school students hands up in computer class

If you don’t have a degree, you are probably more inclined to believe that degrees are worthless and completely unnecessary—even though you may secretly wish you had one.

So, whatever side you fall on, I am going to ask you to momentarily suspend your beliefs — well, biases really — and consider that both views are not exactly correct, that there is a middle-ground somewhere in between the two viewpoints where a degree isn’t necessarily worthless and it isn’t necessarily valuable either.

You see, the issue is not really whether or not a particular degree has any value. The degree itself represents nothing but a cost paid and time committed. A degree can be acquired by many different methods, none of which guarantee any real learning has taken place. If you’ve ever taken a college course, you know that it is more than possible to pass that course without actually learning much at all.

Now, don’t get me wrong, I’m not saying that you can’t learn anything in college. I’m not saying that every degree that is handed out is a fraud. I’m simply saying that the degree itself does not prove much; there is a difference between going to school and completing a degree program and actually learning something.

Learning is not just memorizing facts. True learning is about understanding. You can memorize your multiplication tables and not understand what they mean. With that knowledge, you can multiply any two numbers that you have memorized the answer for, but you would lack the ability to multiply any numbers that you don’t already have a memorized answer for. If you understand multiplication, even without knowing any multiplication tables, you can figure out how to work out the answer to any multiplication problem — even if it takes you a while.

You can be highly educated without a degree

Traditional education systems are not the only way to learn things. You don’t have to go to school and get a degree in order to become educated. Fifty years ago, this probably wasn’t the case — although I can’t say for sure, since I wasn’t alive back then. Fifty years ago we didn’t have information at our fingertips. We didn’t have all the resources we have today that make education, on just about any topic, so accessible.

A computer science degree is merely a collection of formalized curriculum. It is not magic. There is no reason a person couldn’t save the money and a large degree of the time required to get a computer science degree from an educational institution by learning the exact same information on their own.

Professors are not gifted beings who impart knowledge and wisdom on students simply by being in the same room with them. Sure, it may be easier to obtain an education by having someone spoon-feed it to you, but you do not need a teacher to learn. You can become your own teacher.

In fact, today there are a large number of online resources where you can get the equivalent of a degree, for free – or at least very cheap.

Even if you have a degree, self-education is something you shouldn’t ignore—especially when it’s practically free.

You can also find many great computer science textbooks online. For example, one the best ones is: Structure and Interpretation of Computer Programs – 2nd Edition (MIT Electrical Engineering and Computer Science)

So, is there any real benefit to having a degree?

My answer may surprise you, but, yes right now I think there is.

I told you that I had forgone continuing my education in order to keep my job, but what I didn’t tell you is that I went back and got my degree later. Now, I didn’t go back to college and quit my job, but I did think there was enough value in having an actual computer science degree that I decided to enroll in an online degree program and get my degree while keeping my job.

degree

Why did I go back and get my degree?

Well, it had nothing to do with education. By that point, I knew that anything I wanted or needed to learn, I could learn myself. I didn’t really need a degree. I already had a good paying job and plenty of work experience. But, I realized that there would be a significant number of opportunities that I might be missing out on if I didn’t go through the formal process of getting that piece of paper.

The reality of the situation is even though you and I may both know that degrees don’t necessarily mean anything, not everyone holds the same opinion. You may be able to do your job and you may know your craft better than someone who has a degree, but sometimes that piece of paper is going to make the difference between getting a job or not and is going to have an influence on how high you can raise in a corporate environment.

We can’t simply go by our own values and expect the world to go along with them. We have to realize that some people are going to place a high value on having a degree—whether you actually learned anything while getting one or not.

But, at the same time, I believe you can get by perfectly well without one – you’ll just have a few less opportunities – a few more doors that are closed to you. For a software developer, the most important thing is the ability to write code. If you can demonstrate that ability, most employers will hire you—at least it has been my experience that this is the case.

I have the unique situation of being on both sides of the fence. I’ve tried to get jobs when I didn’t have a degree and I’ve tried to get jobs when I did have a degree. I’ve found that in both cases, the degree was not nearly as important as being able to prove that I could actually write good code and solve problems.

So, I know it isn’t necessary to have a degree, but it doesn’t hurt either.

What should you do if you are starting out?

If I were starting out today, here is what I would do: I would plan to get my degree as cheaply as possible and to either work the whole time or, better yet, create my own product or company during that time.

I’d try and get my first two years of school at a community college where the tuition is extremely cheap. During that time, I’d try to gain actual work experience either at a real job or developing my own software.

Once the two-year degree was complete, then I’d enroll in a university, hopefully getting scholarships that would pay for most of my tuition. I would also avoid taking on any student debt. I would make sure that I was making enough money outside of school to be able to afford the tuition. I realize this isn’t always possible, but I’d try to minimize that debt as much as possible.

What you absolutely don’t want to do is to start working four year later than you could be and have a huge debt to go with it. Chances are, the small amount of extra salary your degree might afford you will not make up for the sacrifice of losing four years of work experience and pay and going deeply into debt. Don’t make that mistake.

The other route I’d consider is to completely get your education online – ignoring traditional school completely. Tuition prices are constantly rising and the value of a traditional degree is constantly decreasing – especially in the field of software development.

If you go this route, you need to have quite a bit of self-motivation and self-discipline. You need to be willing to create your own education plan and to start building your own software that will prove that you know what you are doing.

The biggest problem you’ll face without a degree is getting that first job. It is difficult to get a job with no experience, but it is even more difficult when you don’t have a degree. What you need is a portfolio of work that shows that you can actually write code and develop software.

I’d even recommend creating your own company and creating at least one software product that you sell through that company. You can put that experience down on your resume and essentially create your own first job. (A mobile app is a great product for a beginning developer to create.)

What if you are already an experienced developer?

Should you go back and get your degree now?

It really depends on your goals. If you are planning on climbing the corporate ladder, then yes. In a corporate environment, you are very likely to hit a premature glass-ceiling if you don’t have a degree. That is just how the corporate world works. Plus, many corporations will help pay for your degree, so why not take advantage of that.

If you just want to be a software developer and write code, then perhaps not. It might not be worth the investment, unless you can do it for very cheaply—and even then the time investment might not be worth it. You really have to weigh how much you think you’ll be able to earn extra versus how much the degree will cost you. You might be better off self-educating yourself to improve your skills than you would going back to school to get a traditional degree.

Do you want to know how to develop your skillset to become a Java Rockstar?

Subscribe to our newsletter to start Rocking right now!

To get you started we give you two of our best selling eBooks for FREE!

JPA Mini Book

Learn how to leverage the power of JPA in order to create robust and flexible Java applications. With this Mini Book, you will get introduced to JPA and smoothly transition to more advanced concepts.

JVM Troubleshooting Guide

The Java virtual machine is really the foundation of any Java EE platform. Learn how to master it with this advanced guide!

Given email address is already subscribed, thank you!
Oops. Something went wrong. Please try again later.
Please provide a valid email address.
Thank you, your sign-up request was successful! Please check your e-mail inbox.
Please complete the CAPTCHA.
Please fill in the required fields.

4 Responses to "Do Software Developers Really Need Degrees?"

  1. David Vonka says:

    Well, I still think that a good technical degree actually improves your thinking. If you want to learn to code in a set of languages, then computer science may be an overkill. But I usually find that this very particular how-to kind of knowledge is not the greatest problem in the people I hire. There is this generic technical problem solving skill, some intangible ability to analyze and handle a problem, which is often missing and which I believe really improves if a university forces you through three semesters of graph theory or electrical engineering. You can do it yourself, but you are very unlikely to manage.

  2. Mvelo Walaza says:

    I fully agree with David! Even though formal education may seem useless sometimes, it really is beneficial when it comes to problem-solving. Companies want to employ a person with some degree (no pun intended) of integrity, i.e. someone that can at least manage to complete a 3-year degree. If I (as an employer) had to choose between a person that has a 3-year degree and a person that doesn’t have one – with the same proven abilities – then I’d definitely go with the one that has a degree. So my verdict in this topic is: Yes!! Developers do need degrees!!!

  3. Roland Awemo says:

    Thank you very much for this very insightful article. I think the response to this article has been underwhelming, considering that every software engineer/developer currently in the field must have confronted this problem before. Being a degree holder myself (B. Sc.), and currently in the process of attaining my Masters naturally makes my opinion obvious, SOFTWARE ENGINEERS do need a degree.

    The most important thing for a software developer is not writing code, it is solving problems. You may be working on a project which attempts to solve a given problem. You obviously do not jump into the coding part immediately, but rather analyse the problem and think of a solution before converting this solution into functional good code/programs. This is exactly what a good degree program does. You are expected to do a number of courses and solve problems within these courses. While you may never need the specific material treated in this course, the ability to analyse a problem is what you take from these courses. This further strengthened by projects, internships and dissertations which enable you to select a specific field/topic and work on it for lenghtened period of time.

    There is also the problem of discipline and organization. Self learning requires massive amounts of discipline and organization which is not always easy to attain. Even if you were disciplined, the structure of a degree program and the facilities provided would be difficult to attain individually.

    Most students nowadays also have student jobs (at least in Germany) where they can already learn programming and coding in the real world. This, coupled with a degree is a very compelling argument for going the academic route.

    And with education being FREE here in Germany, having a degree is actually a better option.

  4. Aaron says:

    Great article! In my opinion, you definitely need both. The order or way you get both is entirely up to you and the opportunities that arise. Working in the industry alone might not always give you all the skills and knowledge you need but it really depends how much your employer wants to invest in teaching you and how well they do it. Often that knowledge will be highly specialised. A degree is not meant to teach you the latest in industry, it’s meant to prepare you to be able to adapt to any technology that is being used or emerging.

    If I had the opportunity to get taken in as a junior when I was studying I would have definitely taken it and completed my degree part-time. After going back to do a Masters degree while working full-time you definitely get a lot more value out of it because you’re building on an already strong foundation.

    Self-learning should be normal and a regular thing in this line of work no matter where you’re coming from. I think for more specialised learning like artificial intelligence, networks, etc, it might help a great deal if you go to university or take a related course because your learning gets facilitated which is one of the greatest benefits. Self-learning can also have a downside of learning bad habits which would be easily resolved if you were being taught.

    However, what you do all depends on your long term career goal. Unfortunately not having a degree might limit your job opportunities as it is often a pre-requisite (at least in Australia). Not every job description states having a degree or equivalent experience.

Leave a Reply


four × = 4



Java Code Geeks and all content copyright © 2010-2014, Exelixis Media Ltd | Terms of Use | Privacy Policy | Contact
All trademarks and registered trademarks appearing on Java Code Geeks are the property of their respective owners.
Java is a trademark or registered trademark of Oracle Corporation in the United States and other countries.
Java Code Geeks is not connected to Oracle Corporation and is not sponsored by Oracle Corporation.
Do you want to know how to develop your skillset and become a ...
Java Rockstar?

Subscribe to our newsletter to start Rocking right now!

To get you started we give you two of our best selling eBooks for FREE!

Get ready to Rock!
You can download the complementary eBooks using the links below:
Close