In this intense one day seminar 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 seminar 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.

1-day seminar

"Total focus on usefulness on a daily basis, with facts/research to back it up. "  -- Andrew Shirshac, Fidelity Investments

"Steve is a great lecturer. He held my attention all the time, kudos!"  -- Dimitrije Radojevic

"Steve is an excellent presenter! Very articulate and able to answer hard questions with real world examples and reasoning. "  -- Kurt Sahlin, InfoSpace

"Steve is a very effective instructor. The class was well organized and loaded with information."  -- Rick Carrier, Datalight

"Easy to understand, practical coding practices for maintainable code. Very good speaker, good experience & stories to show relevance. "  -- Chris Holl, QUALCOMM

"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

"The high information density was the best part for me. Lots of important and valuable ideas were successfully packed into a single day course. "  -- James Hicks

"Excellent, practical viewpoint on industry best practices. The section on Technical Debt was especially useful. "  -- Chris McPhee, General Dynamics Canada

"Could not expect more from a 1-day course. Well done. "  -- Jim Tubman

"Instructor was fantastic--very knowledgeable in the field, excellent teaching style, and good pace for covering material. I enjoyed the course immensely and will definitely be able to apply the concepts to my daily work. "  -- Trish Cooper

"Fantastic! Steve's an excellent speaker and fields questions very well. "  -- Greg Raab, WB Games

"Although my company picked up the tab for me to attend this seminar, I would’ve paid for it out-of-pocket if I had to do so."  -- Rob Caron, Microsoft

"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

"Steve McConnell was an outstanding presenter and a great instructor."  -- Jeff Cotton, WB Games

"Every part of the course had valuable facts."  -- Mirjana Jovicic, Nordeus

Who Should Attend

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

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

Steve McConnell

Steve McConnell is CEO and Chief Software Engineer at Construx Software where he consults to a broad range of industries, teaches seminars, and oversees Construx’s ...