Code Complete Essentials

Code Complete Essentials

We offer private training, at your location or virtually, and an OnDemand course catalog.

About Code Complete Essentials

Duration: 1 – 2 day course
Resources: Workbook

In this intense 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 course synthesizes the most effective techniques and must-know principles into clear, pragmatic guidance. This course 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 class is taught 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.

Introduction

  • Construction’s critical role in software development
  • Technology knowledge vs. principles knowledge
  • Dealing with “accidental” and “essential” difficulties

Defensive Programming

  • Error processing
  • Effective strategies for anticipating change
  • Code stepping
  • Offensive programming

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
  • Design guidance: Information hiding, abstraction, encapsulation, modularization, cohesion, separation of concerns

High-Quality Routines

  • Coding Horror: examples of low-quality routines
  • Program layout techniques
  • Low-effort, high-payoff commenting techniques
  • The Pseudocode Programming Process

High-Quality Classes

  • Good and bad reasons to create classes
  • Designing interfaces

Code Optimization

  • A defensive strategy for code optimization
  • Three optimization approaches that don’t work
  • Example of intensive optimization

Quality Practices

  • Debugging by superstition
  • A scientific approach to debugging
  • Tips for finding defects
  • Tips for fixing defects
  • Defect cost dynamics
  • Error prone modules

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

This 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.

“It was all very relevant and useful. I’m going to recommend all developers in my group to attend this class. Steve did a great job presenting. He makes the class enjoyable. He is very knowledgeable in coding which made the class that much better.”

Eric Smidt, Qualcomm

“Steve is a great speaker. Of particular value was the pseudocode process and general “Oh yeah, I do that wrong” epiphanies.”

Sean P. Collins, Intel

“Lab exercises are particularly good for continuing the discussions.”

Eric Upchurch, MDA

“Utilizing assertions in the development code, instead/in addition to its usage in unit tests. The explanation in regard to the broken/badly implemented interface was excellent. The break interval was perfect and kept me refreshed and focused.”

Brien Foss, South Sound 911

“The open discussions revealed the most for me. Great pacing.”

Cody Childers, MorphoTrak

“Total focus on usefulness on a daily basis, with facts/research to back it up.”

Andrew Shirshac, Fidelity Investments

“The content is about things that can be implemented in real life projects. Not like some courses or books that emphasize points that nobody has time or resources to implement.”

Cineyt Fitoz, QUALCOMM

“Causes you to reflect on the practices you have been following and clean up bad habits.”

Dennis Ward, General Dynamics Canada

“Engaging, to the point, and hard hitting! I can’t wait to start applying the concepts I’ve learned today in my coding tomorrow.”

Sylvia Lee, Simba Technologies

“Great seminar! You make me want to be a better programmer.”

Mike Andersen, Intuitive Surgical

Customize this course

Your team has unique challenges. Learn about the ways we can customize this course to fit your needs.