Finger Thinking
This is the first part of the book, and the goal is starting a project from scratch. This happens in the beginning of many programming books, but I have this feeling that they are lying to me.
The code seems rehearsed, there are no errors, everything progresses monotonically towards a lovely pyramid of code with no false starts and no wrong assumptions.
In the decades I have programmed, that has never happened to me. Not once. So, I guess those "start from scratch" things are actually done backwards, from the working butterfly into a fake larva, or they are much better at this than I. Since I am not that awful a programmer, I have decided to believe the former, and take a shot at doing it the opposite way.
Everything you see here is in the order I wrote it. I have, occasionally, gone back and cleaned up a bad idea, but trust me, there are plenty still left.
Sometimes, when you start a project, you will find that you don't have a clear goal. Some of my most fun projects were created because I was doing the equivalent of doodling on a computer.
Sometimes, it starts with a post on a blog, or a link on twitter, and I just think "hmmm, I wonder how that's done" or "well, that sounds fun to write" or "that doesn't look so hard!" (those usually are so hard.)
So, I doodle on the interpreter, or in a throwaway script file. No tests, no requirements, no fuzz.
The first part of this book is, then, an iterative doodle, showing the infancy of a project, and almost literally thinking with my fingers, and having them tell me where to go.
In later sections, things will get much more serious. So, enjoy this part.