Code Complete Essentials

Steve McConnellConstrux CEO

This online seminar is led by Steve McConnell, the coding guru who wrote the best-selling Code Complete. In this intense Code Complete OnDemand seminar you will learn dozens of proven tips, techniques, and principles to produce clean, industrial strength code.

6 Hours of Content
17 Lectures
Purchase Options

Course Details

  • Overview

    In this intense Code Complete OnDemand course you will learn dozens of proven tips, techniques, and principles to produce clean, industrial strength code. Capturing the body of knowledge available from research, academia, and everyday commercial practice, this seminar synthesizes the most effective techniques and must-know principles into clear, pragmatic guidance. This seminar uses dozens of examples of good and bad code in Java, C++, C#, and Visual Basic to explain how to shorten development time, reduce errors, and make debugging easier.

    This online seminar is led by Steve McConnell, the coding guru who wrote the best-selling Code Complete, a computing industry classic that won the Jolt Excellence award for best programming book of the year and has been translated into more than a dozen languages.

    Who Should Attend

    This Code Complete online course will be useful to programmers, developers, software engineers, testers who write extensive code for test automation, and anyone who wants to learn best coding practices.

  • Course Details


    • Construction’s critical role in software development
    • Technology knowledge vs. principles knowledge
    • “Accidental” vs. “essential” difficulties
    • Strategies for dealing with accidental difficulties
    • Strategies for dealing with essential difficulties

    Defensive Programming

    • Managing complexity
    • Error processing
    • Anticipating change
    • Single stepping through code

    Complexity and Design

    • Information hiding
    • Abstraction
    • Encapsulation
    • Modularization
    • Cohesion
    • Separation of Concerns
    • Designing Interfaces

    Complexity and Thorny Issues

    • Global data
    • Deep nesting
    • Coding conventions
    • Design guidance

    Creating High Quality Designs

    • Differences in design effectiveness
    • Attributes of great designers
    • The Primary Technical Imperative: Managing Complexity
    • Managing technical debt
    • The relationship between naming and design
    • Programming “in” vs. “into” a language
    • Design heuristics

    Technical Debt

    • Definition of technical debt
    • Common kinds of technical debt
    • Reasons to take on technical debt
    • Reasons not to take on technical debt
    • Differentiating between good debt and bad debt
    • Strategies for taking on debt
    • Strategies for paying down debt
    • How to talk with the business about technical debt decisions

    High-Quality Routines

    • Coding Horror: Examples of low-quality routines
    • Program layout techniques
    • Low-effort, high-payoff commenting techniques
    • Value of simple, small routines
    • Valid reasons to create routines
    • The Pseudocode Programming Process

    Code Optimization

    • Role of conventional wisdom in code optimization
    • Optimization approaches that don’t work
    • A defensive strategy for code optimization
    • McConnell’s One Rule of Code Optimization
    • Corollary to McConnell’s One Rule
    • Invalid Exceptions to McConnell’s One Rule
    • Counter-intuitive example of code optimization
    • Example of intensive optimization

    Error Processing

    • Importance of error processing
    • Differences in error processing for different kinds of software
    • Identifying situations that call for error processing
    • Nine error processing approaches
    • Error processing and complexity
    • Error processing and quality attributes


    • Variable names
    • Routine names
    • Reason that naming conventions are important
    • Why naming matters more than you think


    • Assertions and Design by Contract
    • Assertions vs. comments
    • Assertions vs. error processing
    • Assertion gotchas
    • Key Principle: Minimize gap between error insertion and error detection

    Anticipating Change

    • Shared attribute of great designers
    • Comprehensive listing of sources of change
    • Eight methods for anticipating change

    Teamwork in Software Construction

    • Programming as a communication activity
    • Program layout examples
    • Eight kinds of comments


    • Debugging by superstition
    • A scientific approach to debugging
    • Tips for finding defects
    • Tips for fixing defects
    • Brute force debugging

    Key Principles

    • Actively manage essential difficulties
    • Keep accidental difficulties from increasing needlessly
    • Minimize complexity
    • Differentiate between complexity inherent in the problem vs. complexity created by the solution
    • Minimize needless variations
    • Favor read-time convenience to write-time convenience
    • Consider whether you should be programming “into” your language rather than “in” it
    • Minimize the lag between error insertion and error detection

  • Steve McConnell

    Construx CEO

    Steve McConnell is CEO and Chief Software Engineer at Construx Software. His award-winning book Code Complete is one of the best selling computer books of all time, remaining atop best seller lists since its publication 20 years ago. Readers of Software Development magazine named him one of the three most influential people in the software industry along with Bill Gates and Linus Torvalds.

    Steve is also the author of Software Estimation: Demystifying the Black Art (2006), Rapid Development (1996), Software Project Survival Guide (1998), and Professional Software Development (2004), as well as numerous technical articles. His books have twice won Software Development magazine’s Jolt Excellence award for outstanding software development book of the year. Steve serves as Editor-in-Chief Emeritus of IEEE Software magazine, on the Panel of Experts of the SWEBOK project, and is past Chair of the IEEE Computer Society’s Professional Practices Committee.Steve received a bachelor’s degree from Whitman College in Walla Walla, Washington, graduating Magna Cum Laude, Phi Beta Kappa, and has a master’s degree in software engineering from Seattle University.

Purchase Options

Single License


Start Training Today

Get unlimited access to this online course for an entire year.


Single All Access Pass


Save 60%

Access this course along with ALL other Construx OnDemand Content.


Team License


Discounts Start At 10%

Need 10 or more seats? Contact us to learn how much you can save!


Team All Access Pass


Best Savings

The more seats you need, the more you save! Contact us for info.


Start Your Free Trial

Try a free preview of the entire Construx OnDemand Catalog.