Tuesday, April 8, 2008

College degree better than experience...

Short of finding someone who has both the degree and the experience would you hire someone with a degree and no experience or someone with experience but no degree?

Is there a rational behind the equivalency of a degree with certain number of years of experience?

To make those questions more specific and relevant for this audience: would you rather hire someone with 5 years of programming experience but no degree or someone with a Computer Science degree but no programming experience? How many years of programming experience does it take to make up for a computer science degree?

Before attempting to answer such questions it is critical to identify and analyze the differences between a degree (the work to obtain one) and the real life experience.

The most fundamental difference between the two is the focus that each has. The real life experience focuses on HOW things work – years of experience will help one become a master of a given trade and remain a master for as long as that trade does not experience any radical changes. A college degree on the other hand focuses on WHY things work the way they work. The HOW part of a degree is generalized – how things should work but not necessarily how they work in a given implementation.

An analogy that makes the difference clearer would be that of the experienced mechanic versus the mechanical engineer. A mechanic that has spent 5 years working on fixing and maintaining BMWs is likely a master of the trade – he can diagnose and fix BMW problems very quickly and efficiently. A mechanical engineer on the other side may have no clue of the particular BMW implementation – he knows how cars in general are put together and why they are put together that way but not how to fix a BMW.

Now we can begin to answer the questions we posed at the beginning.

Which one would you hire? Clearly the answer is: it depends! If you need someone to handle a well defined task that does not require creativity but simply diligence and efficiency then an experienced person is clearly better. But, if you need someone that can easily adapt to different scenarios, if you need someone who can learn new technologies faster and consequently have lower probability of becoming obsolete despite the evolution of the trade in question, if creativity is important to the job then the degree has a clear edge over the experience.

Can one make up for a degree with number of years of experience? No, it is not possible! Please do not confuse this with the case when an individual dedicates an equivalent amount of time to studying the trade in question, in essence doing the work that is required to obtain a degree – I consider such person a degreed person regardless of whether a formal degree was obtained or not. When I say ‘No’ I am speaking strictly in terms of work experience. A mason can spend a lifetime laying bricks and never learn how to calculate the load on a load bearing wall or beam. Experience provides one with what I call “superficial knowledge” that lacks the foundation and can not be used to derive new knowledge – for example: you know that if you touch an electrical wire (household voltage) with a dry wooden pole you will not be electrocuted but you can not extrapolate from that the new knowledge that if you get on top of an wooden chair you can safely touch a single wire with your bare hands (remember, a single wire only – if you grab two you will be the light bulb!). A degree provides solid knowledge that can be used for generating new knowledge – experience teaches you that touching the wire with a dry wooden pole is safe whereas school teaches you what the electricity is and how it works. An electrical engineer does not need to be told about the dry wooden pole he can deduct that knowledge and a lot more from the foundational knowledge that he has obtained in school.

There, I have made my point.

Before you react to this please keep in mind that:

  • I am comparing degree versus experience on a specific trade;
  • A degree does not necessarily mean a formal degree – but rather that one has paid his dues in time and energy spent studying the trade;
  • I am comparing two individuals with similar levels of intelligence/aptitude.

Feel free to leave your comments here.


CraigL said...

"the case when an individual dedicates an equivalent amount of time to studying the trade in question, in essence doing the work that is required to obtain a degree – I consider such person a degreed person"

That is quite a caveat there.

I believe we work in a uniquely challenging field that /requires/ self study or you quickly fall out of relevancy and eventually, the job. So, unlike other craft-like trades which hold fairly steady, I believe we can assume that any developer with some years of experience and still gainfully employed will have the necessary theoretical underpinnings to allow enough flexibility to learn and grow. Can there exist some old curmudgeons that decide to treat software development like accounting? Maybe in some large organizations or as "mechanics" of legacy code, but I doubt they would last that long and certainly would not enjoy the career choices of their more nimble contemporaries. Most recognize this and start to learn a bit or go into management. The others end up selling lumber at Lowes.

On the other hand, you cannot assume that a recent graduate has the attitude that they will have to keep up with the industry to keep relevant. I've seen many freshly minted CS grads completely disillusioned by the fact that their piece of sheepskin alone does not entitle them to a cush job on a Herman-Miller chair with ping-pong in the break room and all of the soda you can drink.
This has subsided somewhat since the Crash and, thankfully, mostly those that have a passion for coding enter the industry these days. It remains a persistent myth in our society that a degree is sufficient for success. It is a myth that can only be evaporated from the mind by the harsh flame of experience.

So bottom line? I'll take experience any day of the week.

Sean said...

I agree with Craigl. The best developers and architects I've ever worked with had no degree. The worst developers and architects have had graduate degrees from respectable schools.

University programs provide one method to get the theory and practice, but self study and motivation do so as well, and in fact I believe are even better. Among 200 developers that I work with, most of whom have various degrees, I've earned a reputation of being among the select few coming up with the best solutions and providing the highest quality product. We develop critical software that manages billions of dollars in payments each year.

I don't have a degree. I went to KU for two years (go hawks) and realized I wasn't learning anything, so I dropped out and got a job.

It's about aptitude. It has nothing to do with education. Some people have what it takes. Others just need to get out of the business even if they have their degree.

Prashant Jalasutram said...


I do feel that only attitude and intelligence are sufficient to raise in IT industry.

For example recently i heard a 20yr old 2nd year degree student started a IT company making turn over of more than 1 million...


Kit said...

"Experience provides one with what I call “superficial knowledge” that lacks the foundation and can not be used to derive new knowledge"

My experience is the complete opposite. What you learn in college is usually "knowledge by rote". It is meaningless to the student without having been used on real problems. Only the real world teaches you WHY what you have learnt is important.

jledoux said...

Being myself a 30 years self-learner in this industry, I am still as passsionate as I was when I first learned about VDT's in November of 1979. Since then, I have read literally hundreds of books and learned from the best of the trade (Strousup, Norton, Fowlers, Beck, Johnson, etc).

When comes the time to evaluate a potential candidate, I pay a relative attention to their experience and/or knowledge. Of course, both are important but I consider that attitude is the single most critical factor that will influence my choice.

One that cannot admit that he doesn't know something will never make any effort to learn that thing he/she thinks he/she knows.

So to me, it doesn't matter where one's knowledge comes from (college and/or experience). I do not hire someone for what he/she has done but for what he/she will do for me. And along the years, I have learned that attitude is something nobody can buy. With the right attitude, one can learn anything he/she whishes providing the talent is there.

AT said...

This is really a sensitive subject that usually only pisses off people without formal CS degrees.

I think the post has a lot of merit. Yes, there are amazingly smart people in the industry without format degrees, but their aptitude usually leads them to obtaining the equivalent of such a degree but consuming large quantities of CS theory and practice (usually those people end up being the best of both worlds, because of their drive).

I've worked with all sorts of people over the last 13 years and have noticed that someone who is very smart, without understanding of CS theory (compilers, language design, algorithms , computational theory, etc) is very handicapped when it comes to progressing forward. Those who cross this chasm on their own grow, those who don't continue to support VB applications to this day.

A formal degree is one of the indications of potential success. It is not the only one, but it sure is an important one.

Sean said...

My argument to AT is that those people without formal degress that are continuing to support VB applications, would be supporting VB applications anyway, even if they had a formal degree. Again, it has to do with your aptitude (as opposed to attitude). I went to KU for 2 years in computer engineering. I spent all of my time in labs helping the people without the aptitude to finish their projects, sometimes because they were cute and I wanted digits... :)

At any rate, this is a creative field, and CS/CoE degrees don't teach that. The best programmers I've worked with were also starting bands, had drama degrees, etc. Why? Because they had an unconventional knack at thinking out of the box. They had drive and passion about what they were doing. That's more important than any degree, no matter how advanced. If you can't tell if people have that when you're interviewing them, then you shouldn't be in the position of selecting candidates in the first place.

Sean said...

Clarification - attitude is equally important. But without the aptitude to think as a software developer, you're DOA. No degree or self study will get you there. Some people can decompose an algorithm from a business need. Some can't. Universities seem to give them a degree whether they do or they don't. This is particularly apparent with many of our H1B contractors. I don't know why or how, but people with masters level degrees that work for/with me are writing the most inefficient, non-functional code of anybody. My job for the last year has been fixing horrible, broken code that supposedly smart people (with advanced degrees) have designed and coded.

University said...

Thank you for this post, we are a online dating website blog network, which college students read our blog, so thanks and well post this article on our blog. how dating in college influences college success

marry said...

Blogs are so informative where we get lots of information on any topic. Nice job keep it up!!

Architecture Dissertation

Dissertation Writing service said...

This kind of information is very limited on internet. Nice to find the post related to my searching criteria. Your updated and informative post will be appreciated by blog loving people.

Dissertation Methodology Help