Friday, June 29, 2007

Three Things I Have Learned About Software School

Scott Hanselman asks about "...three things, learned both IN and OUT of college" in response to Dare Obasanjo's post about "Three Things I Learned About Software in College". Well, I have been writing software for a little over 12 years now, and there are certainly many things that I have learned about software development - and I never once stepped into a collegiate classroom to learn computer science. So to answer Scott's question:
  1. Learning to write new software isn't nearly as important as learning to modify existing software (especially considering that once you write a line of code, its now in maintenance mode).
  2. You can't fix Stupid - not even with Agile/XP/<next year's trend>/.
  3. If there were no clients, and infinite money, we could build amazing software.


Now, with that in mind, I would also like to share some things that I have learned over the years about what a Computer Science degree is worth in the real world:
  1. By the time you actually find a use for all the stuff you learned about building a compiler, you probably won't remember it anyway.
  2. In the real world, you're rarely writing software to control multiple types of ovens, all of whom will need to implement an abstract Cook() method.
  3. You spend 4 years getting a CompSci degree, but then you get out and you still have to learn how to write software.

Now, before I get a flood of hate mail (as if anyone is reading this :P), I don't think that a CompSci degree is worthless. I just don't really think that a 4 year degree is worth more than years of writing software. By the time I graduated high school, I had already written my own compiler, a small OS (oh, how I miss x86 ASM and the A86 assembler), and I had a fairly good knowledge of most data structures, algorithms, and everything else we now call design patterns. For me to get a 4 year CompSci degree would have been (mostly) a waste of time.

Does this mean I think everyone should choose to make friends with a computer at age 10 instead of human beings? Of course not. But, it really bugs me that we don't have any better way of narrowing the field of good job candidates other than certificates. I have been in hiring positions in the past, and I have found that are just as many ignorant programmers with a 4 year degree as there are with out it. But, I have not been able to even get a call back from places like Google, Microsoft, or Yahoo over the years because I don't have have a degree. I can say that with some certainty because any other place (without the degree requirement) I send my resume to will give me a call or some response fairly quickly.

Now, why not go and get a 4 year CompSci degree? I have better things to do than to pay $1000 to have someone test me on whether or not I know what a linked list is. I do plan to go back to college - but for a business degree. At least that way I'll get more learning per dollar :)

I would like to know from anyone who happens across this blog that graduated with a 4 year CompSci degree - Do you think your collegiate experience helps you in your job, or does it only help to get a job?

No comments: