Are there any reeeally good books on programming C++ that anyone knows of? Ones that just do an excellent job of teaching different techniques and clean coding practices, as well as things that can really be applied (like making and styling windows, communicating via TCP/IP, etc)?

Dani AI

Generated

asked for books that teach solid C++ techniques plus practical topics like GUIs and TCP/IP. correctly points out the Read Me — that sticky will have long lists — but here is a compact, practical set of recommendations and a study approach focused on modern C++ and applied work.

Core language and style:

  • For a fast, modern introduction: Accelerated C++ (Koenig & Moo) or C++ Primer (Lippman, Lajoie & Moo).
  • For deep reference and rationale: The C++ Programming Language (Stroustrup).
  • For everyday best practices and clean-code idioms: Effective C++ and Effective Modern C++ (Scott Meyers).
  • For the STL and library details: The C++ Standard Library (Josuttis).
  • For concurrency, templates and advanced techniques: C++ Concurrency in Action (Williams) and C++ Templates: The Complete Guide (Vandevoorde, Josuttis & Gregor).

Applied topics (GUI, networking):

  • Networking fundamentals and sockets: UNIX Network Programming and TCP/IP Illustrated (Stevens) for protocol and API depth; TCP/IP Sockets in C (Donahoo & Calvert) for hands-on examples. For C++-centric networking, use Boost.Asio as the practical, production-ready library.
  • GUI work: For cross-platform apps, C++ GUI Programming with Qt (Blanchette & Summerfield). For raw Win32-style programming, Petzold’s Programming Windows remains the canonical reference.

Practical plan and cautions:

  • Follow a path: learn core syntax (Accelerated C++/Primer), practice idioms (Meyers), study the standard library (Josuttis), then implement projects: a command-line tool, a TCP echo server (sockets or Boost.Asio), then a GUI client (Qt). Emphasize RAII, smart pointers, move semantics and the Rule of Five. Prefer modern C++ standards (use -std=c++17/-std=c++20), enable sanitizers and static analysis, and avoid relying solely on pre-C++11 texts for contemporary best practices.

Recommended Answers

All 2 Replies

Two threads up, as a Read Me sticky.

ah.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.