One of the most readable, original blogers out there, writing on software development practice and techniques - Joel Spolsky - published an excellent 3 part Talk at Yale: Part1, Part2 and Part3.

You will find out:

- what two computer science courses were most useful in his university studies
(one that was not really a comp-sci and one he decided to drop)
- why is it tough to be an in-house programmer
- why is the quality of many in-house systems so bad
- what is this "quality thing" anyway
- why is specification futile

Highly recommended.