A colleague recently pointed me to the book Thinking Forth by Leo Brodie.
While it is heavily a book about Forth (the programming language), it’s even more a book about programming and problem solving in general. I don’t know Forth, and have no intention of learning it, but I found this book to be chock full of insight and humor which apply today just as well as they did when Thinking Forth was first published.
Among the fun parts are gems like this:
Among the pearls of wisdom, of which there are many, you can find this:
“You don’t understand a problem until you can simplify it.”
“Start simple. Get it running. Learn what you’re trying to do. Add complexity gradually, as needed to fit the requirements and constraints. Don’t be afraid to restart from scratch.”
Today, this would probably be called some sort of an agile method. I’m kind of thinking it’s just common sense.
Especially the first half of the book concentrates on universal concepts like analysis and planning, conceptual modeling, problem-solving techniques, and refactoring. This is how Brodie describes the book himself:
“We need a consistent and practical methodology for thinking about software problems. That is what I have tried to capture in this book. Thinking Forth is meant for anyone interested in writing software to solve problems. It focuses on design and implementation; deciding what you want to accomplish, designing the components of the system, and finally building the program.”
If you’re old-fashioned like me, you’ll want a dead-tree version. The book is published under the Creative Commons license, so you can download the PDFs for free from the Thinking Forth Project website.
Thinking Forth was first published in 1984. It was around that time when I wrote my first computer program. This is certainly one of the books I wish I had read sooner.