Quote:
Originally Posted by RRR Ps. Steve. Have you ever thought about how important becomming a computer programmer has been toward your writing ability? The ability to be consise and find underlying patterns, to apply them in various situations instead of reinventing the wheel, these are all things one learns in computer programming; I feel years of computer programming are very evident in the elegance of this book. (Edit: I feel almost as if I'm quoting you from the blog involving Ultima..I'll check it out) |
Wow -- that's an amazing insight.
I didn't give that much thought while I was writing the book, but looking back, I can clearly see that I approached the writing of the book much like designing a software program.
Specfically, I remember deciding that the chapters had to have
strong cohesion and
loose coupling, which are concepts from modular programming. I wanted the ideas in each chapter to belong together and form a complete thought, and I also wanted there to be minimal overlap between one chapter and the next. This is very challenging to do (with software and with writing), but the payoff is that you end up with something that feels elegant.
I also used the programming concept of encapsulation, where low-level concepts are contained in a hierarchy beneath high-level concepts. So you can relate to each concept at different levels. When viewed from the highest level, everything looks pretty simple.
I think anyone who reads the book will notice that it's much more structured than other books in the field. Each chapter is designed to serve as a complete piece on its own.
So yes, I'm sure that being a programmer for so many years gave me a different mindset toward writing the book. I can see elements of object-oriented programming in the book's design. Even the chapters in Part I are layed out with declarations (definition and explanation of concepts) followed by functions and procedures (actions and how-to exercises).
That's a neat way of looking at it. At the time I didn't even realize I was thinking in those terms because they're so deeply internalized from years of programming.
Onward to:
promote_book();