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