76 lines
5.0 KiB
Plaintext
76 lines
5.0 KiB
Plaintext
TAGS: CppPlan
|
|
=== QUESTION ===
|
|
Please create a learning plan for the modern type of C++ programming language, very similar like GPU plan. It should be for one month with weeks instead of quarters. The target group should be very advanced programmers.
|
|
==== ANSWER ====
|
|
# Modern C++ Programming: A Comprehensive One-Month Journey
|
|
|
|
**Prerequisites**:
|
|
- Extensive experience in programming.
|
|
- Good understanding of basic and intermediate concepts in C++.
|
|
|
|
## Week 1: Advanced C++ Concepts and Techniques
|
|
|
|
**Goal**: Deepen understanding of advanced C++ topics and learn about modern techniques.
|
|
|
|
1. **Advanced C++ Concepts - Goal: Understand advanced C++ concepts**
|
|
- **Primary Resource**: Effective Modern C++ by Scott Meyers (Book).
|
|
- **Alternative Resources**: More Effective C++ by Scott Meyers (Book), "Mastering the C++17 STL" by Arthur O'Dwyer.
|
|
- **Supplementary Exercise**: Implement the concepts learned by developing small programs.
|
|
- **Evaluation**: Self-assessment based on the understanding and implementation of the concepts.
|
|
- **Time Management**: Aim for 2 hours of study per day.
|
|
|
|
2. **C++ Techniques - Goal: Learn about modern programming techniques in C++**
|
|
- **Primary Resource**: C++ Templates: The Complete Guide by David Vandevoorde, Nicolai M. Josuttis, and Douglas Gregor (Book).
|
|
- **Alternative Resource**: Discovering Modern C++: An Intensive Course for Scientists, Engineers, and Programmers by Peter Gottschling.
|
|
- **Evaluation**: Self-assessment based on the understanding and implementation of the techniques.
|
|
- **Time Management**: Aim for another 2 hours of study per day.
|
|
|
|
## Week 2: Mastering Standard Template Library (STL) and Boost Libraries
|
|
|
|
**Goal**: Gain deeper understanding of the STL and Boost Libraries in C++.
|
|
|
|
1. **Standard Template Library - Goal: Master the use of STL**
|
|
- **Primary Resource**: The C++ Standard Library: A Tutorial and Reference by Nicolai M. Josuttis (Book).
|
|
- **Alternative Resource**: C++17 STL Cookbook by Jacek Galowicz.
|
|
- **Evaluation**: Self-assessment based on the understanding and implementation of STL.
|
|
- **Time Management**: Dedicate 2 hours of study per day.
|
|
|
|
2. **Boost Libraries - Goal: Understand and implement Boost Libraries**
|
|
- **Primary Resource**: Beyond the C++ Standard Library: An Introduction to Boost by Björn Karlsson (Book).
|
|
- **Alternative Resource**: The Boost C++ Libraries by Boris Schäling.
|
|
- **Evaluation**: Self-assessment based on the understanding and implementation of Boost Libraries.
|
|
- **Time Management**: Spend another 2 hours of study per day.
|
|
|
|
## Week 3: High-Performance C++ and Parallel Programming
|
|
|
|
**Goal**: Learn about optimizing C++ code and parallel programming.
|
|
|
|
1. **High-Performance C++ - Goal: Write high-performance C++ code**
|
|
- **Primary Resource**: Optimized C++ by Kurt Guntheroth (Book).
|
|
- **Alternative Resource**: C++ High Performance by Viktor Sehr, Björn Andrist.
|
|
- **Evaluation**: Self-assessment based on the understanding and ability to write optimized code.
|
|
- **Time Management**: Aim for 2 hours of study per day.
|
|
|
|
2. **Parallel Programming - Goal: Understand parallel programming in C++**
|
|
- **Primary Resource**: Pro TBB: C++ Parallel Programming with Threading Building Blocks by Michael Voss, Rafael Asenjo (Book).
|
|
- **Alternative Resource**: "Parallel and Concurrent Programming in C++ Part 1" on Coursera.
|
|
- **Evaluation**: Self-assessment based on the understanding and implementation of parallel programming.
|
|
- **Time Management**: Allocate another 2 hours of study per day.
|
|
|
|
## Week 4: Modern C++ Project and Community Engagement
|
|
|
|
**Goal**: Apply modern C++ skills in a real-world project and engage with the C++ programming community.
|
|
|
|
1. **Project - Goal: Implement a real-world project using modern C++**
|
|
- **Resource**: Choose a project that allows you to apply the advanced C++ concepts, techniques, and libraries you've learned. Examples could be a complex data processing task, a game engine, or a machine learning algorithm.
|
|
- **Evaluation**: Project review by peers or mentors.
|
|
- **Time Management**: Spend at least 4 hours a day on the project.
|
|
|
|
2. **Community Engagement - Goal: Connect with the larger C++ programming community**
|
|
- **Resource**: StackOverflow, C++ forums, LinkedIn Groups, Reddit threads.
|
|
- **Supplementary Resource**: Participate in C++ webinars, meetups, and follow leading personalities on Twitter. This will help you network with professionals and stay updated about industry developments.
|
|
- **Evaluation**: Regular participation in discussions, problem-solving.
|
|
- **Time Management**: Aim to spend at least 1 hour per day engaging with the community.
|
|
|
|
This one-month plan focuses on advanced topics in modern C++ for high-level programmers, and while there are time estimates provided, they may vary depending on individual learning speeds. The goal is to provide an intensive dive into modern C++ programming, and engagement with the programming community for exchange of knowledge and experiences.
|