
The Pragmatic Programmer

What counts as being fluent? Here’s the challenge list:
David Thomas • The Pragmatic Programmer
No, the major gain is that by becoming fluent, you no longer have to think about the mechanics of editing.
David Thomas • The Pragmatic Programmer
Human-readable forms of data, and self-describing data, will outlive all other forms of data and the applications that created them.
David Thomas • The Pragmatic Programmer
A benefit of GUIs is WYSIWYG—what you see is what you get. The disadvantage is WYSIAYG—what you see is all you get.
David Thomas • The Pragmatic Programmer
Prototyping is a learning experience. Its value lies not in the code produced, but in the lessons learned. That’s really the point of prototyping.
David Thomas • The Pragmatic Programmer
If you feel there is a strong possibility in your environment or culture that the purpose of prototype code may be misinterpreted, you may be better off with the tracer bullet approach.
David Thomas • The Pragmatic Programmer
Prototyping generates disposable code. Tracer code is lean but complete, and forms part of the skeleton of the final system. Think of prototyping as the reconnaissance and intelligence gathering that takes place before a single tracer bullet is fired.
David Thomas • The Pragmatic Programmer
Look for the important requirements, the ones that define the system. Look for the areas where you have doubts, and where you see the biggest risks. Then prioritize your development so that these are the first areas you code.
David Thomas • The Pragmatic Programmer
The mistake lies in assuming that any decision is cast in stone—and in not preparing for the contingencies that might arise.