Code Complete added January 22, 2011
Software construction is a complex challenge; it is challenging because software systems are based on intellectual constructs, not physical objects. There are many ways to solve almost any software development challenge, and most tendencies in software developers and their clients are destructive. Poor software construction results in wasted time and inefficient service of customers.
Good developers program into a language rather than in it; they have good principles of software development and are able to develop high-quality software in whatever language or technology stack is required for any particular project. Code Complete is a big book filled with valuable insights on software development.
The general outline of the book features:
- a foundation for software construction
- fundamental principles for crafting high-quality code
- guidelines for dealing with variables
- guidelines for placing programming statements and formatting them
- suggestions for improving existing code
- details on managing the overall system of software construction
- further topics in software craftsmanship
One of the most important lessons from Code Complete is that best practice is dramatically different from average practice in the filed of software development; great developers are at least ten times as productive as average ones. For anyone having ambitions in the field of software development or planning to work with others involved in software development, the lessons of this book are invaluable.
Much of the difficulty of software development has to do with conceptual competence; anyone can write code, but it requires true skill to understand and articulate how particular requirements could best be solved in a software project. Competence in software architecture enables high-quality development in any language and operating environment; a lack of skill in designing software will severely limit programmer effectiveness.
The book may seem too much focused on software project management, but every serious software project must be managed effectively to ensure that the problem and its solution are thoroughly understood and that progress is made.
One of the most useful tools for programming into a language is the pseudocode programming process, whereby comments are used to articulate the functionality of a programming segment before actual coding is commenced; this increases the likelihood that design considerations will be made initially and that coding will follow a definite plan of action (rather than a haphazard approach more realistically identified as hacking than as engineering software).
Software development tools can be helpful for many projects, but the central tool of software development remains the software developer; skill in software development is the primary differentiation between one programmer and another; all who wish to excel in the craft of software construction must make it a personal study to master it. Books like Code Complete are helpful to all who seek to do so for themselves.
Added
January 22, 2011
Author
Steve McConnell
ISBN
0735619670