Topics to learn more about
- C++ topics
- Exceptions
- Boost: Error and Exception Handling
- Abrahms: Lessons Learned from Specifying Exception-Safety for the C++ Standard Library
- Run-time type identification (RTTI)
- C++ standard library and Boost
string, vector, dequeA Beginner’s Tutorial For std::vector- std::string
- std::bitset
- Allocators
- Smart pointers
- Boost: threads, transform_iterator, zip_iterator, etc.
- Locales
- Type traits (Boost::TypeTraits and an article)
- Type lists
- Thinking in C++, Volume 2
- Effective C++
- More Effective C++
- Effective STL
- Expression Templates: [1]
- The Software Optimization Cookbook — Chapter
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21 - Call stacks and execution-level program control
- x86 and x86_64 architecture
- x86 and x86_64 assembler
- Processor intrinsics for C/C++
- Caches
- C code optimizations
- C++ code optimizations
- C++ Optimization Strategies and Techniques
- Making iterators as fast as for or while loops
- CERN: How to make your code more efficient
- For Loops: Using i++, ++i, Enumerators, or None of the Above?
- Dr. Dobbs
- Lazy Containers
- Reap the benefits of the C++ Standard Template Library
- A comparison of image iterators
- Dr. Dobb’s Journal: Performance Portable C++
- C++ Home tutorial
- Multithreading and concurrency
- Intel TBB
Coding Horror: Exploring Wide Finder- Performance — benchmarking, tuning, and tools
- Chris Cox’s C++ Performance Blog
- AMD CodeAnalyst
- Re-entrancy and signal handling — AUP
- Object-oriented analysis and design
- Aspect-oriented design
- Software construction
- Kent Beck — Implementation Patterns
- Neal Ford — The Productive Programmer
- Robert Martin — Clean Code: A Handbook of Agile Software Craftsmanship
- Data structures
- Operating systems design
- Compiler design
- Programming methodology
- Hardware design’s impact on performance
- Kernel design
- vi — know enough to open, edit, save a file
- C standard library — using Plauger book
- Wide character support in stdlib
- Complexity and “big O” notation — Data Structures and Algorithms (Aho, et al.)
- Static code analysis
- Automata
- XCode
- UNIX debug tools
- Executable formats
- Windows debugging tools
- Filesystems
- Heap management
- C and C++ Memory models
- Algorithms
- Sorting
- Searching
- Doxygen
Covered Topics
- GNU make
- Function calling modes
- Iterators
- Generic programming
- Generic Programming and the STL, Matthew H. Austern
- C++ topics
- Syntax, capabilities, and program design philosophy — Thinking in C++, 2nd ed., Vol. 1, Bruce Eckel
- Namespaces
- Friends
- C++ Templates
- OO Design patterns
- UML
- Intel TBB
Reading List
- C++ Templates: The Complete Guide, Vandevoorde and Josuttis
- The Productive Programmer, Neal Ford
- The Art of Agile Development, Shore and Warden
- Clean Code: A Handbook of Agile Software Craftsmanship, Robert Martin
- Refactoring, Robert Martin
- Refactoring to Patterns, Joshua Kerievsky
- Concurrent Programming on Windows, Joe Duffy
- Modern C++ Design: Generic Programming and Design Patterns Applied, Andrei Alexandrescu
- Exceptional C++, Herb Sutter
- Effective C++, Scott Meyers
- Beautiful Code, Oram and Wilson

