C++ Best Practices
This course is aimed at C++ developers at the beginner and intermediate levels. The content is built on best practices developed by the community, as well as industry standards for developing critical-safe applications.
Detailed and modern C++ course about the Standard Template Library. This topic is the most common at C++ interviews, so every C++ developer should understand the internals. Become a master of STL and increase your C++ language knowledge with real cases and 19 really interesting tasks. With the help of a trainer, we will create the best playground for shooting your foot, measuring, comparing, and discussing the history and future with colleagues and experts.
To be determined
This course is a deep investigation of Standard Template Library components:
- Functions
- Containers
- Algorithms
- Iterators
Consider reasons to attend this course:
* Your knowledge will be organized without gaps
* Practical tips, idioms, and guides
* Implementation notes
* Information about C++17 and C++20 is included
* Challenging tasks and hard questions are prepared for experienced developers
* 19 practice tasks
* “Think-times” (discussion topics or mini-quiz)
* Possibility to prove that your code is modern enough
Be ready to answer basic and advanced questions about STL at an interview
Primary: C++ Developers (Junior/Regular/Senior)
Optional: C Developers (Regular/Senior)
1. Introduction (15 min - theory)
Acquaintance, training rules, topic, and methodology overview.
2. Functional objects (2h – theory, 45 min - practice)
A small talk about generic programming and callable objects. The second part is about functions related to STL. The third part describes transformations between different function types (function adaptors).
3. Containers (11h – theory, 4h - practice)
The main topic of the training. Contains visual representation, implementation details, use cases, corner cases, and operations overview for all containers. Container classification is given and explained.
• Sequence containers (4h 30min – theory, 1h - practice)
I. Common
II. Vector
III. List
IV. Forward list
V. Deque
• Container adaptors (1h 30m – theory, 30m - practice)
• Ordered associative (1h 40m – theory, 20m - practice)
• Unordered associative (2h - theory, 1h 30m - practice)
• Pseudocontainers (1h 20m – theory, 40m - practice)
4. Iterators (2h – theory, 1h 30m - practice)
Iterator model, classes, properties and operations are investigated. For stream iterators and iterator adaptors, implementation is discussed.
5. Algorithms (4h 50m – theory, 2h 40m - practice)
At this stage of training, we’ll continue to extend STL with new items. Has a lot of practice, drawings, and discussions. Includes algorithm overview, non-modifying and modifying sequence algorithms, sorting and searching, numeric algorithms, and discussions about the future of algorithms.
• Algorithms overview (15m - theory)
• Non-modifying algorithms (1h – theory, 30m - practice)
• Modifying algorithms (3h - theory, 1h 30m - practice)
• Sorting and searching (40m - theory, 20m practice)
• Numeric (40m - theory, 20m - practice)
• Bonus: the future is here (15 m - theory)