Saturday, October 13, 2012

On the value of a CS education

Back at the beginning of my career a hiring manager told me that he almost recommended that I not be interviewed because I had been formally trained in college. He thought that was a disadvantage. I still got the job and did well there anyway. But that exposed me to a bias that I continue to see 30+ years later.

I have seen any number of very talented programmers with little to no formal training. But you seldom see anything less than the most amazing minds in that category. The average person just can't get to a professional level without some real training in my opinion. There are many people who are self taught and program for fun and hobby but will never get professional jobs because they just don't know enough. Often they don’t even know what things they still need to learn.

Even top self-taught developers have asked me for help with “you went to college for this stuff can you help me figure out …” because they were lacking important concepts. Formal training is a short cut like reading the documentation.

Community colleges often focus on the tools and techniques of the day. This is not unreasonable for them as helping people get better jobs NOW is a key goal for them. The university is about a career not just a job and so the concepts tend to be emphasized more than the tools or languages of the day. This may be a short term disadvantage but still a long term gain.

Yes there are great self-taught developers out there. There are not as many who are actually as good as they think they are though.

2 comments:

Anonymous said...

Love for those self taught kids to run smack into my students. We eat them alive....

Tom Clarkson said...

I'm not sure the formal training would help much for the average person who can't be a successful self taught developer.

To be successfully self taught you need a real interest in the subject and the willingness to try new things and research anything you don't understand. If you have that, you will also do well in a university setting, and it may well lead you to taking some formal courses to learn the advanced stuff.

If you don't have that basic foundation, you can still pass a course by studying for the exam, which is utterly useless in a professional context. That's what makes formal qualifications irrelevant when looking for a good developer.