Thursday, January 1, 2009

A Confession: I don’t have a degree

I ran into a blogo-sphere discussion recently about the merits of having a CS degree. I found this particularly interesting because, well, I don’t have a degree. Shocking, I know, coming from someone who claims to be a “Software Architect” (well, that is my job title). I’ll give you a minute to recover.

To be very cathartically honest, I wish it were not true. I have a full-time+ job and a full-time+ family, but if I had an opportunity to pursue a degree, I’d seriously consider it. So there you have it. There is at least one non-degree-possessing person in this world who thinks having a degree is a good thing.

On the other hand, a lot of what I read about the purported merits of having a degree is…just crap, in my opinion. I believe and accept the fact that a lot of people have learned a lot of things in a college or university setting, things that they would never learn in “real” life. I believe and accept the fact that for most people, there isn’t a better way to get a well-rounded education. I do not believe those things are true for me.

It has been well established that there are at least a few different ways that people learn best. I think it is also reasonable to conclude that what any person has learned or been exposed to in his or her life is going to be unique to that person. For these and other reasons, concept “A” might really “click” with Alice, while Bob just doesn’t get it. For concept “B”, it may be just the opposite. In a classroom setting, the extra time it takes to teach concept “A” to Bob is a waste of time for Alice. The extra time it takes to teach concept “B” to Alice is a waste of time for Bob. This leads me to conclude that classroom learning is not particularly time-efficient.

I think the primary benefit of learning in a college/university classroom setting is the fact that most people do not have the motivation or, in some cases, the ability to educate themselves.

I love to learn. It might be more correct to say that I’m addicted to information…of any sort, really. Truly, I’m not sure I’ve ever encountered any subject matter or concept that didn’t interest me, at least a little bit. People have told me that they are intimidated to have a conversation with a subject matter expert concerning said subject matter. They’re afraid of asking an ignorant question. I can’t relate to that. I’ll happily make a fool of myself, asking that person a thousand stupid questions, just for the chance to learn something.

One idea I often encounter is the idea that a self-educated person is going to have a “narrow” education. Maybe they can become competent in their field, but they’ll be weak in other areas, which might hamper their overall performance. I think this idea “rings true” with a lot of folks. It seems logical and fair-minded. On the other hand, I’ve never encountered “hard numbers” to support this idea.

Of course, I can’t give you any hard numbers, either. In fact I can only offer one data-point: myself. If I were to be given a general knowledge test covering various aspects of Math, Science, History, English, etc., I feel confident that my score would compare very favorably with scores obtained by administering the same test to a random selection of college educated people.

Having said all that, why do I wish I had gotten a degree when I had the chance? Two reasons: First, I did attend college for three semesters. It did not go well. I spent too much time in the computer lab when I should have been in the classroom or completing assignments. Basically, I feel that I failed at college and that bothers me. Second, “Perception Is Reality”. The vast majority of people I work with and, I would guess, the vast majority of people in my field have a degree. I would venture that the majority of these people “perceive” that having a degree is better than not having one (the example set by Bill Gates notwithstanding).

I know of at least one case where I was not even considered for a position on the basis of not having a degree. I doubt that was an isolated case. If you’re dealing with an overwhelming glut of resumes, you may very well decide to trash all the resumes that don’t appear to “measure up” in all respects.

This reminds me of the recent experience I had doing the initial interview of several candidates for a Software Developer position in my division. This was a first for me, and the experience was…fascinating. I am thinking of one candidate in particular. This person came with all the right credentials. Not only did this person know everything, but this person had been working for several years at a “big name” company, and before that another “big name” company (we verified this person’s employment history). This person had an MBA.

On that basis, I was shocked, truly, at what this person did not know about Software Development. The point in the interview that I began to understand the situation was when I asked “It says on your resume that you have experience with technology ‘X’. Can you tell me more about how you used that technology?” This person’s answer was something along the lines of “Well, I didn’t use technology ‘X’ directly. My job was to review and approve other people’s work and send it up the chain.” Imagine several more responses along the same lines. Finally I asked this person to demonstrate how to solve a particular (fairly simple) problem using the language of their choice. Imagine a blank stare. I found myself describing the problem in simpler and simpler terms. The blank stare remained. I eventually realized that this person could not tell me what a “string” was. Yikes!

20 comments:

NeinLivez said...

Daniel,

I'm 24 and a recent college graduate looking to pursue a career in web development. I am currently jobless but have three years of front-end development experience. Apparently, this means nothing to prospective employers. I could really use your advice. How could I get a hold of you?

meoosft said...

hello, I am nearly 20 and in my first semester on an IT university, however everything I know about IT I learned myself, and that combined with a bilingual high school with an emhasis on literature and history gave me fairly broad and deep enough knowledge. And I must say I agree with you - degree is important because, if not anything else, it at least sets you on the right track for learning new stuff. So if you are able to get yourself on an expert level in a field, it has a positive to study something entirely different - e.g in a time of a crisis it doubles your chances to get a job :)

Cyril Gupta said...

Daniel,

I am 28 right now. I made my first commercial software when I was 19. I've been programming since I was 15.

-- I don't have a degree. --

I dropped out when I was 17. I didn't finish the last year of high-school either.

I did well enough with development to be able to run my own little software development company.

I seriously believe that you don't need a degree to be successful in programming. Like you, what one needs is a god-honest desire to learn and a strong drive.

Cheers! :)
Cyril Gupta

Thomas Hansen said...

I do not have a degree, I have been programming since I was 8 years, and I think that great developers without a degree are in fact worth more then if they had a degree. The reason is pretty simple - they have proved a drive towards learning and doing system development on their own.

While a CS major might just be there "because he couldn't get into med-school"...

Our line of work has an intense need for people interested in *learning*. And the stuff you learn at college is not even 1% of the stuff you need to know to be a great developer...

I know that some of the stuff you learn at college is important to know and few people will learn it except when going to college like advanced math and stuff like that. However some people even pursue also those subjects on their own. I thought myself quite advanced math myself in fact. Reason was that I wanted to learn 3D programming and Digital Simulation of Neural Networks.

I might be prejudice, but fact is if a developer can easily explain to me what Big O notation is and the difference between a linked list and a hashtable, I'd prefer going on with the guy that knows these things and does NOT have a degree then the person who learned those subjects at college...

First of all the person without a degree taught himself because of interest in the subjects, which means it'll "stick" more. Second of all the person without a degree have proven that he's able to learn by himself instead of just passively "receiving" knowledge from a teacher...

The two best developers I've met in my entire life did also NOT have a degree...

Anonymous said...

I agree you don't need a degree. I have worked with very talented developers that had no formal education. In order to truly understand Software Development you should take time out and study Software Engineering - I did that with night classes for one year and it has helped me to understand everything from testing through to Software Design.

Adam Conrad said...

I wrote a long-winded response, and ditched it to get to my point that

YOU'RE ALL MAKING EXCUSES

A degree does not symbolize intelligence, unless its the intelligent decision to expand your options and make more money.

The fact is companies will immediately dismiss you, fair or not, if you don't have a degree on your resume. You could not land even an interview by not having a degree.

The fact is you will make less than other employees of the same title if you do not have a degree (or a lesser degree).

The only way you can avoid this fate is to be your own boss, see Bill Gates and Mark Zuckerburg for details. Why can Cyril be comfortable accepting not having a degree? Because he was successful at starting his own company and had sufficient drive. Most people get unlucky and fail, and most people don't have the drive...it's no different than other successful entrepreneurs.

You're right, you don't need a degree, but you will have a harder time finding a job, you will make less money unless you have what it takes to start your own company and succeed. But do not portrait this as you can get away without a degree and be in the same boat, and STOP basing it all on intelligence.

Tim Gittos said...

Hi Daniel,

This post struck home to me, as I'm in a similar, yet very different situation, and it revolves around university degrees.

I wrote a rather lengthy reply, so I turned it into a post on my own blog (excuse the crappy design).

Basically the post says that getting a degree isn't enough, you have to make sure you get the right degree, because if you get the wrong degree, you get none of the benefits of that structured learning environment, and new problems with an overestimate of your own competence, from the point of view of a graduate.

Anonymous said...

I totaly agree with this:

I might be prejudice, but fact is if a developer can easily explain to me what Big O notation is and the difference between a linked list and a hashtable, I'd prefer going on with the guy that knows these things and does NOT have a degree then the person who learned those subjects at college...

Michael Duffy said...

I blogged about this entry here.

Anonymous said...

A degree in CS is great just for completeness - doesn't make you any more or less smart. As a coder - if you can find a niche and work happily within it, you probably don't need one.

The big benefit, though, is not having to learn fundamental skills as a function of the process of developing software, and (hopefully) not making fundamental mistakes.

That is, it's not so much what it teaches you; but the sheer spectrum of concepts that you may not otherwise encounter that form the value of the degree.

Pam said...

You hit the mark when you said:

"I think the primary benefit of learning in a college/university classroom setting is the fact that most people do not have the motivation or, in some cases, the ability to educate themselves."

I know several people who have a degree and have never done a darn thing with it. They simply don't have the passion for their chosen field that a self-taught person has.

Employers who will only hire and pay well people with a degree are foolish and ignorant. They are following the pack that says you must have a degree in order to qualified for something. Ridiculous!

Anonymous said...

I agree that having a degree is not important. I've just graduated and from a technical perspective, I've learnt almost nothing that I didn't previously learn myself.

BUT, college did allow me meet some great people, lecturers and students, who have pushed me to do my best.

A degree, not worth it (except for resume padding). As a learning and socializing experience, worth it.

Nick said...

I have to agree with most of what Adam said, except maybe the money part. If we get a stack of resumes, and need to find ways to slim it down we will look at education, but who doesn't? If it wasn't important then people wouldn't put it on a resume at all.

Perhaps education isn't that important at some companies, like if you're just blabbing stuff to a web page, but sometimes you need to use math to deal with coordinate translations, transposing logarithmic data to linear, breaking a task to run over a few processors, etc. For that, you want to hire someone that's taken and understands higher level math.

Dmitriy said...

Daniel,

Hi. Right on target! Nah, I am not talking about your "little dirty confession" ;). "Perception Is Reality", so why do you act as if you were ashamed of the fact that you are not a college graduate? You clearly have a cutthroat debate in your head where the whole thing is divided into two perspectives - your own ("I could take on a college graduate") and the rest of the world ("Without a degree I am a failure").

I was hardly able to retain sarcasm when I see you trying to rationalize your life long observations in the single blog post.

I am 25 years old and a Data Architect. For me disregarding official degree was a conscious choice, a choice that I've been always proud of. You are right, not everyone needs a degree. Why don't you do us all a favor and carry this fact with pride that it deserves?

Daniel Pratt said...

Nick,

Your first point seems to be that degrees must be important because people think they are important, which seems to me to be circular reasoning. Or are you just agreeing with me that "Perception Is Reality"?

Regarding your other point, do you truly believe that a college or university is the only setting in which someone can learn "higher level" math?

Munsey said...

My company treats a bachelors degree as about the equivalent of two years of experience. If you have no degree and no experience, you probably aren't going to get an interview. If you have no degree and no experience, you might be a good lone programmer, but you probably know nothing about software development in a team, version control, build management, etc.

This 2 year gap decreases over time, because the more experience you have the less importance is placed on a degree.

Nick said...

I wasn't necessarily trying to make a "point" in my first part. I was only stating that I agree with parts of what Adam said. Simply, there are companies that do look at and care about education. This is not my opinion but a fact proven to me through action of companies I've seen.

For the higher level math comment I will say something. We'll occasionally give interviewers a basic problem like translating between logarithmic and linear scales (something done all the time in AD converters and DSP processing). Not even asking for pseudo, just to explain where so start and 9/10 well get a "No idea". To be honest, most of the time we'll get blank stares when asked to show how to do a bit-shift operation.

Good write, BTW.

Claire said...

Even if you're a non-degree holder, there are several sites now that help students create a free student resume online and even post their jobs wanted ad! One example is NUresume, http://www.nuresume.com, where students create a free online resume and can post internships, scholarships, jobs and even colleges wanted.

Anonymous said...

Hello,

one doesn't have to posses a degree to be considered "intelligent". It's like possessing a driver license - you don't to have one to be able to drive, even to drive better than others do.

But.. Would you sit down in a taxi with a driver w/out a driving license? Nor me. Would you trust a doctor w/out the license? Well, nor me. I mean: when you feel like a SW architect, why don't you have a degree? A degree is not THE guarantee to be good, but it's a good way to show the others you are a pro.

Bye,
MA, M.Sc. ;-)

Anonymous said...

my issue with the subject of education is this: what ever happened to employer assistence in formal training? who cares if you have a degree? if an employer is implimenting a new technology, it seems that the bottom line concludes that hirering a person that already knows said technology is cheeper then sending existing people to up their skill. this maybe so, but the loyalty and moral costs with hurt in the long run