This christmas, I spent some time reading a 100-year old book How We Think by John Dewey. Amazingly, it is as relevant as ever. My sister who works as a management consultant suggested that I take a look at some of his work, and so I did.
John Dewey was an american philosopher and educational reformer, and I have seen this particular book recommended as the "easy read" as compared to some of his other works. It is about as hard to read as Einstein's popular book on relativity, or Hawking's A Brief History of Time.
John Dewey was called a "pragmatist", because he represented a school of thinking that sought to integrate theory and practice. At some point in recent scientific history those two terms somehow split, and that disconnect is a cause of much trouble.
From this viewpoint, the book gives an excellent, pragmatic and accessible discourse of such terms as logic, induction, deduction, reasoning, idea, judgement, conclusions, and so on. The cool thing is how this book is theoretical, yet very much connected to reality; a connect which is often missing in scientific discourse.
Relevance for me?
So, this book is also extremely interesting as a programmer and a programming language researcher, because programming is really about the connect between your thinking and your practice. Programming is about analyzing a problem, form an idea of how to comprehend this situation, write down your ideas, thereby turning those ideas into something very concrete (the program), and do it in a fashion so that other people can read your code. And these processes are exactly the things described in the book.
From a programming language point of view this link between theory and practice, is like the link between Aristotle's theories for categories, logic and meta-physics, and the incarnation of these things in object-oriented programming languages.
Don't laugh. This connect is real, it is not an afterthought, or an induction I have made after the fact. I have had the fortune to talk to, and discussions these relationships with several of the people who created the very idea of object-oriented programming, and you can read several accounts of how the people who have shaped our technologies really do care about the fundamental connect between theory and practice. My previous post "Actor Thinking" has some of those references at the bottom.
It's all about the way our tools shape the way we think.
The book How We Think is really written with the intention to change the way teaching was done around 1900 in most places: teach the kids skill and knowledge using drill. Dewey was quite successful in changing the American school system for the better. He wanted to change that so that we teach kids logical thinking, i.e. the ability to understand situations, come up with ideas, and reach conclusions; teach them how to analyze a problem, judge it and reach a sentence. With the current focus on PISA evaluations for our children, this is as relevant as ever. God, please do give our politicians courage to trust people who have studied these issues, without resorting to popular decisions just to be seen as a man of action.
There are an amazing number of books available for download from the internet archive; pop it into your Kindle, and off you go!