Masterminds of Programming: Conversations with the Creators of Major Programming Languages
Rate it:
2%
Flag icon
By introspection. I study the program for so long and poke at it more or less systematically for so long that I have sufficient understanding to provide an educated guess where the bug is. Testing is something else, and so is design to minimize errors. I intensely dislike debugging and will go a long way to avoid it. If I am the designer of a piece of software, I build it around interfaces and invariants so that it is hard to get seriously bad code to compile and run incorrectly. Then, I try hard to make it testable. Testing is the systematic search for errors. It is hard to systematically ...more
23%
Flag icon
When one is writing a programming system (or a book, for that matter), one needs to keep the entire system paged in one’s mind. Interruptions break one’s chain of thought but if the interruption is short, one can usually page in the system after some code review. After an interruption of months or years, I frequently find myself referring to papers, books, or notes in which I have documented my algorithms to refresh my memory of what I previously coded. I guess what I am saying is that good comments and documentation are a great benefit to the original system designers as well as others who ...more
53%
Flag icon
We invented a way of solving problems by simply making it the other guy’s problem. It’s called specialization of labor, and it’s as simple as that. That’s how the humans differ from chimpanzees: they never invented that.