Posted in April 21st, 2008
Topics to learn more about
- C++ topics
- Exceptions
- Run-time type identification (RTTI)
- C++ standard library and Boost
- 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
- Multithreading and concurrency
- Performance — benchmarking, tuning, and tools
- 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
- 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