Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I've been doing design and programming for about as long as I can remember. If there's a programming problem, I can figure it out. (Though admittedly Stack Overflow has allowed me to skip the figuring out and get straight to the doing in many instances.) I've made games, esoteric programming languages, and widgets and gizmos galore. I'm currently working on a general-purpose programming language. There's nothing I do better than programming.

Is a university education really more than just a formality?


locked by Thomas Owens Aug 29 at 21:51

This question exists because it has historical significance, but it is not considered a good, on-topic question for this site, so please do not use it as evidence that you can ask similar questions here. This question and its answers are frozen and cannot be changed. More info: help center.

closed as off-topic by gnat, Kilian Foth, GlenH7, Bart van Ingen Schenau, MichaelT Aug 29 at 19:09

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions seeking career or education advice are off topic on Programmers. They are only meaningful to the asker and do not generate lasting value for the broader programming community. Furthermore, in most cases, any answer is going to be a subjective opinion that may not take into account all the nuances of a (your) particular circumstance." – gnat, Kilian Foth, GlenH7, Bart van Ingen Schenau, MichaelT
If this question can be reworded to fit the rules in the help center, please edit the question.

If you can create a programming language, then all you are missing is some math, humanities (can pick up on your own), drugs, sex, and scores of young people. There are also lots and lots of online classes from MIT, Stanford, etc. The question is - what will the employers think of you. –  Job Dec 6 '11 at 15:36
@Job: If I have my way, I’ll be my own employer, and what I think of myself will be my own problem. ;) –  Jon Purdy Dec 6 '11 at 15:44

23 Answers 23

up vote 26 down vote accepted

Hooboy. This is a tough position to be in; you have my sympathies.

I'm biased towards getting a degree, most likely because 1) I have one (BS in Computer Science) and 2) I've often found the knowledge gained pursuing it to be very useful. But it's hardly a pre-requisite for a successful career; the IT world is rich with people who kick ass, are acknowledged as kicking ass, and who technically don't have more than a high school diploma.

The nice thing about a university degree is that you can put it on hold and come back to it later when life permits. (Though the dangerous thing about the previous sentence is that it's a good way to simply quit without admitting to yourself you're quitting.) You can test the waters and see what kind of job you could get by sending your resume out today and seeing what kind of nibbles you get; you haven't committed to anything until you actually say yes to a job offer.

And it sounds like your school is a bad fit for you, regardless. If you're so consistently bored with everything they're throwing at you, then you may need to find a school that will do a better job of giving you your money's worth and making you work for that degree. Have you considered transferring somewhere better?

Edit: Based on your comments elsewhere, given how much you love the high-level theoretic aspects of programming, have you considered that the best way to continue to explore that and get paid may be a career in academia? Which would definitely require you to get your degree. :-)


There is two things you can get.

Degree - probably not worth it, unless you are not self-confident enough to get hired without one. Attending the university will require lots of time and money.

Knowledge - it is very much worth it to learn calculus, algebra, algorithm theory etc. (so CS in general). The advantage of self-education is that you can focus on the relevant subjects. However, it requires quite some self-discipline to keep learning because there is no external pressure (exam) to make you learn when you don't feel like learning.


Assuming you are in the US, you might perhaps consider studying Computer Science in some other country?

AFAIK, in France (where I was born, studied, live and work), studying is less expensive than in the US (and you probably would need, as a foreigner, some grant to be allowed to study here). I believe it is also the case in many other European countries.

And perhaps having studied in some other country might give you some small benefit (when returning home and seeking for a job).

Of course, you'll need to learn some foreign language.


I run the programming dept for a small startup (~50 total employees, development staff of 5 including myself) and my experience has shown that Uri is correct in his assessment of small startups.

My HR department (which, being in a small startup, is only 1 person) asks to not be in involved until the actual decision to hire has been made. When I asked her about it she said "You hire for technical positions; I'm an administrator. How can I possibly make the best decision about the skillsets and qualities you need?"

However, I'm pretty sure this kind of behavior is primarily limited to small startups. If you want to move up into the "Big World", you'll most likely either need a degree or considerable amount of experience under your belt (probably 5 - 7+ years).


I have worked (and interviewed) for a variety of fortune-100 companies, and for one smaller company, but based on my experience HR will simply not look at you without a degree (and sometimes a graduate degree). Resumes are read by HR people, HR people know a degree is required, thus, you never get to prove your skills.

Small startups might relax this policy.

Thus, I believe that strategically a degree is worth it, even though you could become a more skilled developer by using the time to practice and making up the difference from books.


I have coworkers some of whom have degrees and some of whom don't. I often see that those without degrees frequently use either suboptimal collections, or use arrays for everything and ignore the collections. The Data Structures class at university is definitely worthwhile.


If you are programming in the business world (as opposed to the teaching or for science or something very close to the hardware), the farther you get from your education (in time), the more important experience becomes.

In fact, experience and reputation will always trump education... because it shows your proven ability to produce.

I have a liberal arts degree in Biblical Studies - which is about as relevant in this business as a high school diploma. A few years ago, when I was contemplating getting a graduate degree in CS, I found an article where they compared 2 job applications - one who had spent 1 1/2 years right out of college getting the graduate degree and the other who went right to work and had 1 1/2 years of experience (maybe he planned on getting the degree later?). The hiring manager, who wrote the article, said that, all things being equal, he would always hire the one with the experience first. The reasoning he gave is that the one with the experience could produce immediately, knew that he loved to program (wouldn't bail), and knew how to work. He also made the point that the student was studying things that were relevant to the industry 2 - 5 years ago (when the curriculum was designed)... the one with experience was learning (because we're always learning in this business) what is relevant in the industry today.

From the sound of your struggles (family, finance, frustration with the relevance of your schooling to your ability to produce) - I would suggest that you "hit the market" and begin building your experience. It may be a bit of a struggle to get started, but once you leave that start in your rear view mirror and build your resume and experience, you will soon find yourself a strong competitor with the opportunity to make the education of those around you irrelevant.

Then, if the degree is really important to you down the road - you always have the option (when you have the time and the means) to finish it later.


One of the more frustrating things about self-taught programmers is that they often learn a technique without learning the proper terminology. I worked with a self-taught programmer who was a former US Marine. The guy was sharp and learned things quickly but often used odd terms for things.

He called pointers stars. DFAs were called flowcharted arrays were numbered lists.

If he had taken a few courses at the university level, he might have used the proper terms.

This sounds very strange. Did he learn programming without actually reading anything about it? Every book/documentation/tutorial about any programming language would contain the proper terms. –  FabianB Jan 30 '11 at 16:34
lol, Jarhead coder here too. Though I never called them stars, I have turned heads by calling exclamation points "Bangs". –  Neil N Dec 6 '11 at 14:59

It's like in that song - "We don't need no education"... That's all big talk worth little credit.

I went through the process of studying for a Master's degree and I achieved it with first class honours. Am I a better programmer than others? Well, the degree in itself doesn't guarantee it; and I wouldn't be as cheeky as to claim it does. I know lots of people who, I believe, are much more technically skilled and professionally experienced than I, and who have not got a Master's degree (or in fact, any degree in a computing-related area).

Still, I am strongly convinced that a degree is benefitial and I wish ALL developers DID have at least a BSc in computing/software engineering as I believe that people who have done a degree have a "richer" mind model - see a bigger picture - since they all had to, in many cases against their own will, get their hands on a much wider variety of technologies and prodded into more subject areas than those self-proclaimed gurus. (awfully long sentence, sorry if i make little sense, it's quarter to 2am... going to bed now, nighty night)


If you were to listen to Bill Gates you might find this advice:

Interviewer: Is studying computer science the best way to prepare to be a programmer?

Gates: No, the best way to prepare is to write programs, and to study great programs that other people have written. In my case, I went to the garbage cans at the Computer Science Center and I fished out listings of their operating system.

For those people I suggest you enter a University/College which can prepare you for a career in programming, but also a career in something else, should you find passion for something other than staring into a phosphor screen 9 to 5. If you've already done that, then go see your family, career councilor, therapist, whatever. You're grown up, you can figure out what kind of a job you want, can't you?

The combination of the two i.e., self-teaching and CS course in college/university is something that always seems to keep you ahead. Best of luck!


As was stated in other questions, this is a personal decision, and as to if a University degree is worth it for you depends on what you want to do.

My personal story, just turned 50, I make a good living programming, and I've yet to get a degree. So the truth is you don't "need" a degree to make a living programming. That being said, I'm still pursuing a degree, even though I have kids older than many of the students in the class. Let me rephrase that, I'm pursuing "education", whether I get the degree or not has little importance at this point.

What I want to do is learn. You can always learn on your own, but the limits to being able to do this increase as the complexity of the subject increases. Taking classes allows me to push myself further than I would do on my own. As I go along I find I'm just not as interested in learning yet another language, rather I want to learn deeper concepts. One goal I have is to be able to answer questions in http://cstheory.stackexchange.com/ Heck, I'd be happy to just be able to understand most of them. This area may not interest many programmers.

One important factor to consider when weighing over your choices is how much harder it gets to follow through with going back to school as you get older. Life starts getting in the way, relationships, kids, mortgages, etc. hamper your ability to make these kind of choices.


Allow me to relate my story in condensed form.

I started programming at an early age. Seemed to have a natural aptitude for it, certainly enjoyed it. Learned by struggling through stuff all through middle & high school.

Got out of high school and did .. um .. other things. Manual labor, living a young person's life, etc.

A few years later I decided to re-focus. Worked on my 2 year degree in spare time, aced that (literally). Got employed back in the field, making a decent wage - nothing great in any sense, but considerably better than manual labor.

Decided to go to our state's major university, good technical program. Enrolled for Computer Engineering, so as to indulge my electronics fascination more and avoid too much repetitive programming stuff I already knew.

Well ... let me just say ... holy tedious. Now, some of this could simply be ascribed to me and how I handled it, but the year I spent in that college was a huge waste of time and money.

I spent the year doing learning nothing and spending my time "completing" homework that was so far below my skill level it was absurd. I spoke to several professors and college guidance counselors and across the board the word was, in effect, "toe the line, go through the motions, sorry that's just the way it works" or "maybe you don't know as much as you think you do and should pay more attention." (though if I do say so myself the latter point was totally invalid).

At the end of the year, I reviewed my progress towards my degree. Having already completed an A.A. degree, with an abundance of credits, and now having completed a full year in the university, I was still - realistically, due to how I had to schedule classes, prerequisites, etc. - 3 full years away from my B.S. in Comp Eng. Not to mention $10,000 in debt (for year 1, it was only going to get worse each additional year [less grants vs loans]).

So I quit.

And I don't look back. And I won't go back.

I've remained employed in my field throughout and since then. Never has my lack of a degree been a barrier to finding employment, and I feel the jobs I've been able to get are for quality shops with above average wages.

So .. long story short again, sounds like school might not be the thing for you, like it wasn't for me.


I'm in a very similar position as you. Yes, a university education is worth it, and here is my "testimony" as to why: I've done some crazy programming stuff in the past five years and I'm now starting an iPhone app for my company, all self-taught, with the same background as yourself. Recently, I contacted a couple of highly recommended headhunters to see about making the switch from my technical job to being a full-time programmer. In both instances, the conversation with them abruptly stopped—and I mean no contact—when I had to say "No" to the question "Do you have a college degree?"

You need this more than you know, and a couple years' more hassle is going to pay dividends long after you've gotten past this.

Keep calm and carry on.


A university education, particularly one in which you are taught how to read and write, is valuable for a good programmer, or indeed for just about anybody that's good at anything.

The value of a university degree, on the other hand, is much more contingent. I've had a long and reasonably successful career in software development, and I never completed my undergraduate degree - which was in history and cultural geography, anyway. I've also been an independent consultant for most of the last 20 years, and while I have a resume, it's been a very long time since anyone actually looked at it. I actually don't know what my experience would be like if I had to find a real job.


Short answer: no, it is not worth.

University will give you a strong background in many fields, most of them only slightly related to computer science. You will have a lot of physics and math background. This is always a good thing. However university is time and money consuming.

I started to work as a programmer just after high school. I was self-thought in programming but I was enough expert to be immediately productive. Some coworkers with a degree were quite behind me. I eventually got a degree in my spare time, but I never had really the chance to apply in my work anything I learned at university.


If you can find at least one job right away without it, and can prove your skill on paper, then no, it's not worth it.

I feel for you, and I was in a similar situation. In my case (in which I was far more financially 'motivated'), I left and did find development work soon (5 months). Lookin back, it was only 2 years ago, but here's the pros and cons as I've seen them:


  • I got a job doing what I love. Can't really beat that.
  • I've been able to stop 'living like a student'


  • Sense of accomplishment: a degree would have been nice, even if I knew that it didn't actually mean that I knew anything.
  • It's not easy to find a job without experience xor a degree purely because it's hard to prove skill on paper.

Once you do have that formal experience, then finding work - which is the ultimate goal of getting an education, isn't as hard. That's why it's important to know if you can find work soon if you decide to leave.

And, given impressive experience and no degree, you will still have your resume shredded by a great many potential employers, and you're likely to find it haunts your career. My father-in-law was a successful executive with a large company. For a while, he was shuffled around getting major manufacturing plants up and running. He worked for that company most of his life, and he and his work was well known there. He still thought the lack of a degree had held him back. –  David Thornley Nov 5 '10 at 17:19
@David Thornley Fortunately, employers who make a fuss about whether you have a degree are probably not the ones you'd want to work for. –  Tom Hawtin - tackline Jan 30 '11 at 15:12
@Tom Hawtin: The question is mostly "Is the company big enough to have a filter between you and the hiring manager?" Lots of such companies have interesting jobs and are great places to work, and good luck getting an interview there without a degree. You say you've been working without a degree for two years. That's not enough time to see the downside. –  David Thornley Jan 31 '11 at 14:59

Many, many places look at the piece of paper first, and then the qualifications, or else require the paper with the qualifications. Like others have advised, see what kind of jobs are availble to you without the degree, but do remember that it will limit your future choices too.

However, some places will also help pay for the degree, so if you can get a job without it, and they're willing to help pay for it, you can then have it for the future, as needed.


Getting hired is easier with a degree. I have a BSc. with a strong CS foundation in it, but not a CS degree. I've been able to explain away in interviews, but I have no idea how many times I've been filtered out of a stack of resumes because of it...

I'd say that if you want to work in a big organization, it's a huge advantage to have the piece of paper.

If you want to work at a startup (and to be honest, based on what you've said so far, that might be a better fit for you) then there won't be as much competition, and there will likely be less reliance on your education and more on personality, drive, and experience. You'll probably also be looking at lower pay, possibly with some of it in the form of less-than-liquid assets.

If you want to work for yourself, your first paycheck will be 0$, and how much you make the next month will depend on your devotion to finding work and some degree of luck in finding something that fits you. It's hard to get someone to trust a project to you without you having a number of successful projects already under your belt.

Where do you rank priorities like money, enjoyment/challenge of work, time for recreation, time for relationship, etc. How much risk are you willing to take? Think about what's important to you and what you're willing to do to get it. Is the short term pain worth the chance of a better future, or should you take what you have and run with it.

As an aside, can you switch into another program and get out faster? Some people I went to university with switched to "computer math" and got out with a 3 year (non-honours) degree. After a little work experience, the H at the end of your education means increasingly little.


One thing to consider is that you do not always have to do a Computer Science degree. I went through Software Engineering and it provided a different aspect to regular ol' programming. There were tons of things that I would have never learned -- mostly dealing with project management and quality assurance. Also, we did a significant amount of low level learning that wouldn't have been possible without the aid of a professor, in my opinion. Formal education has so much to offer but you may need to go to a "better" school to reap all of those benefits.


It's not what you know- it's who knows what you know. You feel you already have the skills. You're more than past the halfway point to graduation, do you think you can get the job you want? Are you in an area where most of the job posts require a degree? Have you been making connections?

In an interview, how do you answer the question; why did you drop out of school?

Don't put too much confidence in the ability of people doing the hiring to spot talent. Everyone has their biases and crutches (How could I know they would be this bad? They had a certification!).

Maybe you're more of an entreprenuer and can go into business yourself?

If you decide to quit school, set some standards and time-frame for yourself on what job do you have to get, making how much money, and how much time will you pursue this before going back to school.


HR and hiring managers do look at your education, so my answer is YES.

Think about it, what's the chance if a person graduated from a decent university's CS department with excellent GPA and he ended up being a failure? It's still possible, but the goal is to lower the risk.

For geniuses like Bill Gates it's OK for them to be without a degree. They will do well regardless. However for the vast majority of people education is still a great indicator, especially for people who don't have much work experience.

@Jon, I don't disagree with you. Call this a bias if you will. If I was in the same situation as yours, I'd have the same questions. Unfortunately in reality smart people for one reason or another without formal education, their careers will be somewhat affected. Another thought is that tuition in this country has been out of hand for the last 10-20 years which is a shame. –  grokus Sep 20 '10 at 15:26

This is a highly personal question, and depends greatly on what kind of development you plan to be doing. Device drivers and real-time embedded systems with plenty of algorithm analysis? You're probably better off going to school. CRUD web applications? Probably not.

I can speak only for myself. I have done very well in my career without a CS degree, or a college-level degree of any kind. Some of this is skill and intelligence, but I'd be loathe to not credit a fair bit of luck, as well.

That said, I sometimes regret not gaining training in the modes of thought required for genuine formal analysis and proofs.


University is a nice experience to live. And it will certainly helps you getting a first job (unless you have strong professional experience which is very unlikely at that age).

For both reasons above, if I was able to go back it time, I would have decided to stay at school instead of leaving it to chase girls in clubs.

Yes you can do that while staying at university too ;)

I think you misunderstand my motivations. –  Jon Purdy Sep 20 '10 at 15:04

Not the answer you're looking for? Browse other questions tagged or ask your own question.