The Value of a CS Degree
Even more importantly, I wonder what to recommend others when deciding how to prepare themselves for their future careers.
I have to say I have mixed feelings. The degree, especially the graduate degree, has been both a blessing and a curse.
When I first began looking for a job I ran into numerous roadblocks. Usually companies would just say that I had too much education and not enough experience. Large businesses have policies in place that force them to pay higher salaries for the higher education. This means that they are forced to pay you more if you have a bachelors degree and even more with a Masters or PhD. If you don't have the experience to back it up you are likely just not going to get the job.
Later in my career, once I had the valuable experience that companies really want, my Master's degree led to that higher salary. I ended up being paid more than my colleagues even though we were at the same level of experience and skill.
So is the college degree really worth it?
The short answer: Yes and No
I have also been on the hiring side of the equation for over 10 years now helping other companies and now for my company evaluate potential hires and then train new employees. What I have found is that a college degree is secondary, maybe even tertiary to other aspects we look for in employees. And, as I mentioned above, applicants want more money for their degree and that makes them less appealing, especially when you are hiring for a small business with limited funds.
But there is a bigger issue I see developing, specifically in the CS world, and this has me very concerned. The students leaving universities with a college degree in Computer Science, whether just a BS or even up to a PhD, are not coming in with the skills they need to do the job. And I find that just 2 - 3 years of experience is worth more than 4 or even 8 years of college.
When we recruit new employees, we look everywhere from schools, online job boards, online freelancer sites and, with disastrous results, overseas (we don't use overseas resources any more unless we absolutely have to). Here is what I have found:
- People with a college degree are learning the wrong thing. They are taught programming languages and techniques that are a decade old and completely out of date. More importantly they are NOT being taught the 5 most essential skills I think they need to know. I essentially have to spend 6 - 24 months getting them productive. I just cannot afford it.
- People with a college degree want twice the pay just for that piece of paper. I am sorry, I am not paying for a piece of paper, I am paying for the knowledge, experience and productivity the person is bringing to the table.
- People with a college degree seem to have no real interest in doing the work on their own. They want a class to spoon feed them. I need people who are self motivated and get out there and learn on their own. Classes are typically expensive and teach lots of things my employees don't need or will never use and usually only 20% of the class is beneficial. I would rather buy my staff books and give them time to study on their own.
- People with a college degree tend to over complicate the work. They try to get all academic and over think the things they do which makes it harder and more expensive to work with what they produce. Why can't things be simple?
- People with a college degree have never really worked a real world application of their skills. In terms of programming, a new college grad is usually intimidated by a 1000 line program. The applications we work with have between 100,000 to several million lines of code not including all the external libraries we use. College graduates are lost from day one.
- The people who skip out on school and just dive in and learn want less money, are grateful for the opportunity (for some reason few businesses see their value), work harder and know what they need to get the job done. They are self motivated, self educating and are more customer focused.
I would estimate that 80% or more of the best developers I have worked with have been self taught with less than 2 years of school. Most of the time they take a little bit of school, get frustrated and just go off on their own. Might this remind you of a certain Billionaire who started one of the largest software companies in the world?
So, if you are wanting to pursue a career in computers, the question remains: do you go after a college degree. Personally, I would say it would definitely help though it is not necessary. However, if you do, you absolutely MUST do the extra curricular work and learn as much as you can on your own. Schools fall seriously short of preparing you for the real world and focus on the theoretical. If you graduate with a 4 year degree AND have the experience to back it up, you will almost definitely find many more opportunities and have a solid career ahead of you.
But if you don't go to school and get the experience, you can find a good career too. The main down side is that it will be more difficult to make the larger pay check.
I came from a higher education background. I cannot just leave my roots behind. More importantly I think there is hope for the future of the CS degree. So I would like to close with some thoughts on what colleges and universities could do to help their graduates become more attractive to employers and find great jobs quickly.
- I think we need to return to the days of the mentorship. I know in engineering they have co-ops and internships. What I am talking about is the person learning works for free just for the opportunity to learn and build their resume. I know when I was in college I actually PAID for college credit for the opportunity to work and learn with no pay. It was a great experience and opened so many doors for me. (And if you are thinking, yea Aaron, you just want free help! Not so. Mentoring someone would actually slow us down and drain resources costing us money, not making us money. We do it for the love of passing on our knowledge and the hope of eventually hiring some of those we mentor.)
- College graduates need big projects that are next to real world, not these trivial contrived tiny things. Mentorships would definitely help here.
- College graduates need to stop expecting big paychecks. Frankly, they are not worth it unless they have the experience to back it up.
- The schools need to teach the latest and greatest technologies that businesses are actually using.
- The schools need to have open dialog with businesses. Whenever I try to talk to educators I get this "I am going to teach what I want and the way I want to teach, now go away" attitude. This makes me want to hire college graduates even less.
My hope is that I can help spread the word and encourage people to improve what colleges and universities do for us. I don't want to discourage people from getting a great education. But we need it to be great education and not fluff to fill our heads.
In short, if you want a job, learn what businesses want you to know to do the job.
Cheers!
- Aaron