Перейти к основному содержимому

Чек-лист самопроверки

Разработчику Архитектору

Чек-лист самопроверки

  1. Что такое C++ и чем он отличается от C?
  2. Какие парадигмы программирования поддерживает C++?
  3. Что означает принцип «нулевой стоимости абстракций»?
  4. Как происходит компиляция и линковка C++-программы?
  5. Что такое препроцессор и какие директивы он поддерживает?
  6. Что такое заголовочные файлы и зачем нужны include guards или #pragma once?
  7. Какие есть фундаментальные типы данных в C++?
  8. В чём разница между int, long, size_t, ptrdiff_t?
  9. Что такое const и как он применяется к переменным, указателям, функциям?
  10. Что такое ссылки и указатели — и чем они отличаются?
  11. Как работает приведение типов в C++ (static_cast, dynamic_cast, const_cast, reinterpret_cast)?
  12. Что такое область видимости и продолжительность жизни переменной?
  13. Что такое автоматические, статические и динамические переменные?
  14. Как работают условные операторы (if, switch)?
  15. Какие циклы поддерживаются (for, while, do-while, range-based for`)?
  16. Что такое функции и как передаются аргументы (по значению, по ссылке, по указателю)?
  17. Что такое перегрузка функций?
  18. Что такое inline-функции и зачем они нужны?
  19. Что такое пространства имён и как их использовать?
  20. Что такое класс и чем он отличается от структуры?
  21. Какие спецификаторы доступа существуют (public, private, protected)?
  22. Что такое конструктор, деструктор, конструктор копирования, оператор присваивания?
  23. Что такое правило трёх (Rule of Three) и правило пяти (Rule of Five)?
  24. Что такое move semantics и rvalue-ссылки?
  25. Что такое std::move и когда его применять?
  26. Что такое RAII и как он реализуется?
  27. Что такое умные указатели (unique_ptr, shared_ptr, weak_ptr)?
  28. Что такое наследование и как оно работает в C++?
  29. Что такое виртуальные функции и полиморфизм?
  30. Что такое чисто виртуальные функции и абстрактные классы?
  31. Почему множественное наследование в C++ считается сложным?
  32. Что такое шаблоны и как они обеспечивают обобщённое программирование?
  33. В чём разница между шаблонами функций и шаблонами классов?
  34. Что такое SFINAE и как оно использовалось до C++20?
  35. Что такое концепты (concepts) и как они упрощают шаблоны?
  36. Что такое лямбда-выражения и как они захватывают переменные?
  37. Что такое стандартная библиотека (STL) и из чего она состоит?
  38. Какие основные контейнеры есть (vector, list, map, unordered_map, set, array)?
  39. В чём разница между последовательными и ассоциативными контейнерами?
  40. Что такое итераторы и какие категории итераторов существуют?
  41. Как работают алгоритмы из <algorithm> (sort, find, transform, accumulate)?
  42. Что такое исключения и как их обрабатывать (try/catch/throw)?
  43. Что такое noexcept и зачем он нужен?
  44. Как работает многопоточность в C++ (std::thread, std::mutex, std::async)?
  45. Что такое futures и promises?
  46. Что такое атомарные операции и std::atomic?
  47. Что такое модули в C++20 и как они заменяют заголовочные файлы?
  48. Что такое корутины и как они работают в C++20?
  49. Что такое диапазоны (ranges) и как они упрощают работу с коллекциями?
  50. Какие современные практики рекомендуются в C++20/C++23 (например, использование std::format, std::span, char8_t)?

Освоение главы0%