“Code Complete, Second Edition” was published on June 09, 2004.
Series: Developer Best Practices
Author: Steve McConnell
Price: US $55
On sale @ Amazon.
Shop @ Microsoft.
Copyright © Steve McConnell.
In the final analysis, your understanding of how to do construction determines how good a programmer you are … (Steven McConnell, 2004, p. 8)
Important developments often arise out of analogies. By comparing a topic you understand poorly to something similar you understand better, you can come up with insights that result in a better understanding of the less-familiar topic. This use of metaphor is called “modeling.” (Steven McConnell, 2004, p. 8)
Metaphors contribute to a greater understanding of software-development issues in the same way that they contribute to a greater understanding of scientific questions. (Steven McConnell, 2004, p. 10)
A software metaphor is more like a searchlight than a road map. It doesn’t tell you where to find the answer; it tells you how to look for it. A metaphor serves more as a heuristic than it does as an algorithm. (Steven McConnell, 2004, p. 11)
An algorithm is a set of well-defined instructions for carrying out a particular task. (Steven McConnell, 2004, p. 11)
A heuristic is a technique that helps you look for an answer. Its results are subject to chance because a heuristic tells you only how to look, not what to find. (Steven McConnell, 2004, p. 12)
An algorithm gives you the instructions directly. (Steven McConnell, 2004, p. 12)
A heuristic tells you how to discover the instructions for yourself, or at least where to look for them. (Steven McConnell, 2004, p. 12)
The image of an oyster forming a pearl is a good way to visualize incremental development, or accretion. (Steven McConnell, 2004, p. 16)
Careful planning doesn’t necessarily mean exhaustive planning or over-planning. (Steven McConnell, 2004, p. 18)
The more you learn about programming, the more you fill your mental toolbox with analytical tools and the knowledge of when to use them and how to use them correctly. (Steven McConnell, 2004, p. 20)
Thinking of software-development practices as tools in an intellectual toolbox suggests further that every programmer has many tools and that no single tool is right for every job. Choosing the right tool for each problem is one key to being an effective programmer. (Steven McConnell, 2004, p. 21)
McConnell, Steven C. Code Complete, Second Edition. Microsoft, 2004.