Learning Programs for Software Practioners

Focus is on writing high quality and bug free code. However basic aspects of software design are also covered

C++ Deep Dive

Covers various C++ concepts in details with hands-on experiments

  • preprocessor,
  • virtual functions,
  • function pointers,
  • type information,
  • exceptions and stack unwind,
  • various compiler options

Effective Code Review

This program is designed to dramatically improve effectiveness of Code Reviews. It teaches the participants How to systematically analyze code to find the defects. Participants learn about

  • Analyzing assumptions and their side effects
  • Analyzing dependancies
  • Checking code complexity
  • Detecting various code smells

Duration : half day (3-6 hrs)

OO Design Principles

You probably have few developers in your group/company who have almost intuitive understanding of good/bad design. They can 'smell' a good or bad design but they have hard time explaining why a design is Good or Bad.

This program is focussed on explaining the typical characteristics (or principles) of design, their impact (+ve and -ve), how to use these principles evaluate a design.

The program covers following principles

  • Open Closed Principle (OCP)
  • Liskov Substitution Principle (LSP)
  • Dependency Inversion Principle (DIP)
  • Interface Segregation Principle (ISP)
  • Acyclic Dependency Principle (ADP).

Each principle will be discussed with examples, how those principles are applied in various aspects of programming like OS, device drivers, COM programming, SOA etc.

Duration : 3 sessions of 2-3 hrs each OR one fully day session