Years ago somebody told me that studying Computer Science would help me learn to write software. I believed that and so I spent 4 (er... 6 really) years getting a degree in Computer Science. Fast-forward 5 years after graduation and I am a programmer both professionally and as a hobby. So that advice turned out to be good, right? Wrong. In the past 5 years I have yet to understand how to apply what I learned of Computer Science to being a programmer. In fact since I've been a practicing programmer I have steadily moved away from identifying myself as a Computer Scientist. In my college days I called myself a Computer Scientist. Then when I got my first job I decided I was a Software Engineer. Since I have been at ThoughtWorks I have given up all pretense and I just call myself a programmer, though I have an eye toward the passionate types who call themselves software craftsmen. But what the hell?!? How about that notion of being a Computer Scientist? Was I just crazy? Four years of data structures, algorithm analysis, statistics, math. What was that all about? Ok. I'm not a complete idiot. The connection between Computer Science and Programming is obvious. Computer Science is the study of algorithms and transforming information. And that is central to what I do every day, but it just isn't the way I end up thinking about things. Instead I'm thinking about my tools, (languages, libraries, editors) the people I am trying to help and the problems I want to solve.I could continue this discussion, but there is a much better writeup than I could do at Phil Windley's Blog about this. It discusses a talk given by Alan Kay, a real Computer Scientist. Do yourself a favor and go read it.


