Skip to content

Tài liệu tham khảo

📚 Sách hay về C++

Sách cho người mới bắt đầu

  1. "Programming: Principles and Practice Using C++" - Bjarne Stroustrup

    • Tác giả: Creator của C++
    • Phù hợp: Người hoàn toàn mới với programming
    • Đặc điểm: Comprehensive, from basics to advanced
  2. "C++ Primer" - Stanley Lippman, Josée Lajoie, Barbara Moo

    • Phù hợp: Có kinh nghiệm programming cơ bản
    • Đặc điểm: In-depth coverage, excellent examples
  3. "Accelerated C++" - Andrew Koenig, Barbara Moo

    • Phù hợp: Học nhanh, có background về programming
    • Đặc điểm: Practical approach, STL-focused

Sách nâng cao

  1. "Effective C++" - Scott Meyers

    • 55 specific ways to improve your programs and designs
    • Must-read cho intermediate programmers
  2. "More Effective C++" - Scott Meyers

    • 35 new ways to improve your programs and designs
    • Advanced topics và best practices
  3. "Effective Modern C++" - Scott Meyers

    • C++11 và C++14 features
    • Modern C++ best practices
  4. "The C++ Programming Language" - Bjarne Stroustrup

    • Comprehensive reference
    • Từ creator của C++

Sách chuyên sâu

  1. "C++ Templates: The Complete Guide" - David Vandevoorde

    • Template programming chuyên sâu
    • Meta-programming techniques
  2. "C++ Concurrency in Action" - Anthony Williams

    • Multi-threading và concurrent programming
    • Modern C++ concurrency features

🌐 Tài liệu online

Documentation chính thức

  1. cppreference.com

  2. ISO C++ Website

Tutorials và Learning

  1. learncpp.com

    • Free comprehensive C++ tutorial
    • Step-by-step lessons
    • Good for beginners
  2. GeeksforGeeks C++

    • Practical examples
    • Interview questions
    • Algorithms implementations
  3. Tutorialspoint C++

    • Basic to advanced concepts
    • Code examples
    • Quick reference
  4. Microsoft C++ Documentation

Video Courses

  1. YouTube Channels:

    • The Cherno: Modern C++, game development focus
    • CppCon: Conference talks, advanced topics
    • Bo Qian: In-depth C++ concepts
  2. Online Platforms:

    • Coursera: C++ courses from universities
    • Udemy: Practical C++ courses
    • Pluralsight: Professional development courses

🛠 Tools và Development Environment

Compilers

  1. GCC (GNU Compiler Collection)

    • Cross-platform
    • Standards compliant
    • Open source
  2. Clang

    • Fast compilation
    • Good error messages
    • LLVM backend
  3. Microsoft Visual C++ (MSVC)

    • Windows optimized
    • Visual Studio integration
    • Commercial support

IDEs

  1. Visual Studio (Windows)

    • Professional IDE
    • Excellent debugging
    • IntelliSense
  2. CLion (JetBrains)

    • Cross-platform
    • Smart code assistance
    • Built-in tools
  3. Qt Creator

    • Cross-platform
    • Qt framework integration
    • Good for GUI development
  4. Code::Blocks

    • Free, cross-platform
    • Good for beginners
    • Plugin support
  5. Dev-C++

    • Simple, lightweight
    • Windows focused
    • Good for education

Text Editors

  1. Visual Studio Code

    • C++ extension
    • Cross-platform
    • Highly customizable
  2. Vim/Neovim

    • Terminal-based
    • Highly efficient
    • Steep learning curve
  3. Emacs

    • Extensible
    • Powerful features
    • Customizable

Build Systems

  1. CMake

    • Cross-platform
    • Industry standard
    • Meta build system
  2. Make

    • Traditional build tool
    • Unix/Linux focused
    • Simple syntax
  3. Ninja

    • Fast builds
    • Used with CMake
    • Minimal syntax

🧪 Testing và Debugging

Testing Frameworks

  1. Google Test (gtest)

    • Comprehensive testing framework
    • Google maintained
    • Wide adoption
  2. Catch2

    • Header-only
    • Easy to integrate
    • BDD style
  3. Boost.Test

    • Part of Boost libraries
    • Mature framework
    • Feature rich

Debugging Tools

  1. GDB (GNU Debugger)

    • Command-line debugger
    • Cross-platform
    • Powerful features
  2. Valgrind

    • Memory error detection
    • Performance profiling
    • Linux/macOS
  3. AddressSanitizer (ASan)

    • Runtime error detection
    • Built into compilers
    • Fast execution
  4. Visual Studio Debugger

    • GUI debugger
    • Windows focused
    • Integrated with IDE

📊 Libraries và Frameworks

Standard Library Alternatives

  1. Boost

    • High-quality libraries
    • Many became part of standard
    • Peer-reviewed
  2. POCO

    • Application frameworks
    • Network programming
    • Cross-platform

GUI Frameworks

  1. Qt

    • Cross-platform
    • Professional grade
    • Commercial/Open source
  2. wxWidgets

    • Native look and feel
    • Cross-platform
    • Open source
  3. Dear ImGui

    • Immediate mode GUI
    • Game development
    • Easy integration

Game Development

  1. Unreal Engine

    • Professional game engine
    • C++ support
    • Visual scripting
  2. SFML

    • Simple multimedia library
    • 2D graphics focus
    • Easy to learn
  3. SDL

    • Low-level multimedia
    • Cross-platform
    • Industry standard

Networking

  1. Asio

    • Asynchronous I/O
    • Network programming
    • Header-only option
  2. cURL

    • HTTP client library
    • Wide protocol support
    • C library with C++ bindings

🎯 Practice Platforms

Competitive Programming

  1. Codeforces

    • Regular contests
    • Problem archive
    • Rating system
  2. TopCoder

    • Algorithm competitions
    • Educational content
    • Professional opportunities
  3. AtCoder

    • Japanese platform
    • High-quality problems
    • Beginner friendly

Interview Preparation

  1. LeetCode

    • Technical interview focus
    • Company-specific questions
    • Discussion forums
  2. HackerRank

    • Skills assessment
    • Certification tests
    • Job matching
  3. CodeSignal

    • Interview practice
    • Company assessments
    • Skill evaluation

Project Ideas

  1. GitHub

    • Open source projects
    • Collaboration
    • Portfolio building
  2. Project Euler

    • Mathematical problems
    • Algorithm challenges
    • Multiple languages

🌍 Communities và Forums

Discussion Forums

  1. Stack Overflow

    • Q&A platform
    • Expert answers
    • Reputation system
  2. Reddit r/cpp

    • News and discussions
    • Community support
    • Informal atmosphere
  3. C++ Discord Servers

    • Real-time chat
    • Quick help
    • Community building

Professional Networks

  1. LinkedIn C++ Groups

    • Professional networking
    • Job opportunities
    • Industry discussions
  2. Meetup Groups

    • Local communities
    • In-person events
    • Networking

Conferences

  1. CppCon

    • Largest C++ conference
    • Expert talks
    • Annual event
  2. Meeting C++

    • European conference
    • Community focused
    • Online participation
  3. C++Now

    • Library focused
    • In-depth discussions
    • Smaller, intimate

📝 Coding Standards

Style Guides

  1. Google C++ Style Guide

    • Widely adopted
    • Comprehensive rules
    • Tool support
  2. LLVM Coding Standards

    • Compiler project standards
    • Modern C++ practices
    • Open source focus

Best Practices

  1. Core Guidelines

    • Bjarne Stroustrup led
    • Modern C++ practices
    • Tool support (GSL)
  2. MISRA C++

    • Safety-critical systems
    • Automotive industry
    • Strict rules

🔄 Staying Updated

News Sources

  1. ISO C++ Blog

    • Official updates
    • Standard development
    • Committee news
  2. C++ Weekly (YouTube)

    • Jason Turner
    • Weekly tips
    • Modern C++ focus
  3. Sutter's Mill Blog

    • Herb Sutter
    • Advanced topics
    • Standards committee perspective

RSS Feeds

  1. Planet C++

    • Aggregated blogs
    • Multiple authors
    • Regular updates
  2. Modern C++ Blogs

    • Individual expert blogs
    • Specialized topics
    • Technical deep dives

Khóa học C++ miễn phí