Let’s start with a great quote from my favorite book on computer programming, the mighty SICP (or Structure and Interpretations of Computer Programs) by Ableson and Sussman.
Underlying our approach to this subject (computer programming) is our conviction that “computer science” is not a science and that its significance has little to do with computers. The computer revolution is a revolution in the way we think and in the way we express what we think. The essence of this change is the emergence of what might best be called procedural epistemology – the study of the structure of knowledge from an imperative point of view, as opposed to the more declarative point of view taken by classical mathematical subjects. Mathematics provides a framework for dealing precisely with notions of “what is”. Computation provides a framework for dealing precisely with notions of “how to”.
The entire SICP book is available on the web here, and if you think of yourself as a programmer, and haven’t read it, well, what are you waiting for?
So, welcome to yet another blog about programming, not computers, but programming, or at least a very small slice of it. I’ll put my thoughts of some topics that interest me here, and the focus will be on how to create readable, correct and maintainable code, functional programming, some key problems a “modern” developer will face, like concurrency.
So, add this one to your RSS aggregator if you want to read about OCaml, Clojure, Scala, F#, Mono, concurrent programming etc…