Tài liệu tham khảo
📚 Sách hay về C++
Sách cho người mới bắt đầu
"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
"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
"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
"Effective C++" - Scott Meyers
- 55 specific ways to improve your programs and designs
- Must-read cho intermediate programmers
"More Effective C++" - Scott Meyers
- 35 new ways to improve your programs and designs
- Advanced topics và best practices
"Effective Modern C++" - Scott Meyers
- C++11 và C++14 features
- Modern C++ best practices
"The C++ Programming Language" - Bjarne Stroustrup
- Comprehensive reference
- Từ creator của C++
Sách chuyên sâu
"C++ Templates: The Complete Guide" - David Vandevoorde
- Template programming chuyên sâu
- Meta-programming techniques
"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
cppreference.com
- Reference đầy đủ nhất cho C++
- Examples và explanations chi tiết
- Link: https://en.cppreference.com/
ISO C++ Website
- Standards documents
- Committee papers
- Link: https://isocpp.org/
Tutorials và Learning
learncpp.com
- Free comprehensive C++ tutorial
- Step-by-step lessons
- Good for beginners
GeeksforGeeks C++
- Practical examples
- Interview questions
- Algorithms implementations
Tutorialspoint C++
- Basic to advanced concepts
- Code examples
- Quick reference
Microsoft C++ Documentation
- Visual Studio specific
- Windows development focus
- Link: https://docs.microsoft.com/en-us/cpp/
Video Courses
YouTube Channels:
- The Cherno: Modern C++, game development focus
- CppCon: Conference talks, advanced topics
- Bo Qian: In-depth C++ concepts
Online Platforms:
- Coursera: C++ courses from universities
- Udemy: Practical C++ courses
- Pluralsight: Professional development courses
🛠 Tools và Development Environment
Compilers
GCC (GNU Compiler Collection)
- Cross-platform
- Standards compliant
- Open source
Clang
- Fast compilation
- Good error messages
- LLVM backend
Microsoft Visual C++ (MSVC)
- Windows optimized
- Visual Studio integration
- Commercial support
IDEs
Visual Studio (Windows)
- Professional IDE
- Excellent debugging
- IntelliSense
CLion (JetBrains)
- Cross-platform
- Smart code assistance
- Built-in tools
Qt Creator
- Cross-platform
- Qt framework integration
- Good for GUI development
Code::Blocks
- Free, cross-platform
- Good for beginners
- Plugin support
Dev-C++
- Simple, lightweight
- Windows focused
- Good for education
Text Editors
Visual Studio Code
- C++ extension
- Cross-platform
- Highly customizable
Vim/Neovim
- Terminal-based
- Highly efficient
- Steep learning curve
Emacs
- Extensible
- Powerful features
- Customizable
Build Systems
CMake
- Cross-platform
- Industry standard
- Meta build system
Make
- Traditional build tool
- Unix/Linux focused
- Simple syntax
Ninja
- Fast builds
- Used with CMake
- Minimal syntax
🧪 Testing và Debugging
Testing Frameworks
Google Test (gtest)
- Comprehensive testing framework
- Google maintained
- Wide adoption
Catch2
- Header-only
- Easy to integrate
- BDD style
Boost.Test
- Part of Boost libraries
- Mature framework
- Feature rich
Debugging Tools
GDB (GNU Debugger)
- Command-line debugger
- Cross-platform
- Powerful features
Valgrind
- Memory error detection
- Performance profiling
- Linux/macOS
AddressSanitizer (ASan)
- Runtime error detection
- Built into compilers
- Fast execution
Visual Studio Debugger
- GUI debugger
- Windows focused
- Integrated with IDE
📊 Libraries và Frameworks
Standard Library Alternatives
Boost
- High-quality libraries
- Many became part of standard
- Peer-reviewed
POCO
- Application frameworks
- Network programming
- Cross-platform
GUI Frameworks
Qt
- Cross-platform
- Professional grade
- Commercial/Open source
wxWidgets
- Native look and feel
- Cross-platform
- Open source
Dear ImGui
- Immediate mode GUI
- Game development
- Easy integration
Game Development
Unreal Engine
- Professional game engine
- C++ support
- Visual scripting
SFML
- Simple multimedia library
- 2D graphics focus
- Easy to learn
SDL
- Low-level multimedia
- Cross-platform
- Industry standard
Networking
Asio
- Asynchronous I/O
- Network programming
- Header-only option
cURL
- HTTP client library
- Wide protocol support
- C library with C++ bindings
🎯 Practice Platforms
Competitive Programming
Codeforces
- Regular contests
- Problem archive
- Rating system
TopCoder
- Algorithm competitions
- Educational content
- Professional opportunities
AtCoder
- Japanese platform
- High-quality problems
- Beginner friendly
Interview Preparation
LeetCode
- Technical interview focus
- Company-specific questions
- Discussion forums
HackerRank
- Skills assessment
- Certification tests
- Job matching
CodeSignal
- Interview practice
- Company assessments
- Skill evaluation
Project Ideas
GitHub
- Open source projects
- Collaboration
- Portfolio building
Project Euler
- Mathematical problems
- Algorithm challenges
- Multiple languages
🌍 Communities và Forums
Discussion Forums
Stack Overflow
- Q&A platform
- Expert answers
- Reputation system
Reddit r/cpp
- News and discussions
- Community support
- Informal atmosphere
C++ Discord Servers
- Real-time chat
- Quick help
- Community building
Professional Networks
LinkedIn C++ Groups
- Professional networking
- Job opportunities
- Industry discussions
Meetup Groups
- Local communities
- In-person events
- Networking
Conferences
CppCon
- Largest C++ conference
- Expert talks
- Annual event
Meeting C++
- European conference
- Community focused
- Online participation
C++Now
- Library focused
- In-depth discussions
- Smaller, intimate
📝 Coding Standards
Style Guides
Google C++ Style Guide
- Widely adopted
- Comprehensive rules
- Tool support
LLVM Coding Standards
- Compiler project standards
- Modern C++ practices
- Open source focus
Best Practices
Core Guidelines
- Bjarne Stroustrup led
- Modern C++ practices
- Tool support (GSL)
MISRA C++
- Safety-critical systems
- Automotive industry
- Strict rules
🔄 Staying Updated
News Sources
ISO C++ Blog
- Official updates
- Standard development
- Committee news
C++ Weekly (YouTube)
- Jason Turner
- Weekly tips
- Modern C++ focus
Sutter's Mill Blog
- Herb Sutter
- Advanced topics
- Standards committee perspective
RSS Feeds
Planet C++
- Aggregated blogs
- Multiple authors
- Regular updates
Modern C++ Blogs
- Individual expert blogs
- Specialized topics
- Technical deep dives