WebLog

Suggested Reading Order

  1. A Tour of C++ – builds the foundation quickly Why: Best modern C++ overview, concise but complete (C++11–17). Covers classes, templates, smart pointers, and STL fundamentals – everything you need for clean design in your raytracer and parser. Read first, then go deeper with Effective C++ and STL books.
  2. Effective C++ – learn best practices Why: Shows you how to write clean, bug-free, performant code with idiomatic C++. Covers memory management, resource handling, class design, operator overloading, and more – critical for a raytracer engine.
  3. Effective STL – master STL containers for parser/raytracer Why: The parser tool will involve containers, iterators, and algorithms heavily. Helps you avoid STL pitfalls and teaches performance-conscious patterns for maps, vectors, strings, etc.
  4. Design Patterns (GoF) – structure components properly Why: The parser/doc tool is essentially a framework, not a small project. This book is about modularization, dependencies, and layering in large C++ codebases – invaluable for your tool.
  5. Large-Scale C++ Software Design – for the parser/doc framework Why: The raytracer and parser will benefit from patterns like Visitor, Factory, Composite, Observer. The parser in particular will require AST visitors and extensible components – this book will help you design those cleanly.
  6. (Optional) C Traps and Pitfalls for low-level pitfalls Great for understanding subtle C mistakes, but less critical if you focus on modern C++.
  7. The C Programming Language (K&R) Classic reference; good if you want to deepen raw C fundamentals. But "A Tour of C++" and "Effective C++" are higher priority.

Not Needed for Now (for These Projects) CUDA / GPU Books (Programming Massively Parallel Processors, Professional CUDA C Programming): These are more relevant for CFD solvers or GPU-accelerated projects, not a CPU-based raytracer or parser.

Parallel Programming (MPI, Patterns): Parallelization is not your primary bottleneck yet; get your single-threaded implementations working first.

Introductory C Books (The Joy of C, Problem Solving and Program Design in C, The Art of C Programming): You’re past this level.

Books in my custody

C Traps and Pitfalls from Andrew Koenig

Patterns for parallel programming from Timothy G. Mattson

Programming Massively Parallel Processors: A Hands-on Approach edition 4 from Wen-mei W. Hwu David B. Kirk

Professional CUDA C Programming

Problem Solving and Program Design in C from Elliot Koffman

The Art of C Pro­gram­ming from Robin Jones

Design Patterns. Elements of Reusable Object-Oriented Software.

Large-scale C++ Software Design from John Lakos

Effective STL: 50 Specific Ways to Improve Your Use of the Standard Template Library 1st Edition

Effective C++: 55 Specific Ways to Improve Your Programs and Designs (Addison-Wesley Professional Computing) Paperback – 12 May 2005

Parallel Programming with MPI Paperback – 1 Oct. 1996

The Joy of C: Programming in C Paperback – 4 Feb. 1993

The C Programming Language. (Prentice Hall Software) Paperback – 22 Mar. 1988 A Tour of C++ (C++ In Depth SERIES)