Какие курсы прошли или книги прочитали за этот год? Чему научились?cplus-70

Книги

  1. "Effective Modern C++" by Scott Meyers

    • Что изучил:
      • Лучшие практики использования C++11/14, включая move-семантику, лямбда-выражения и std::unique_ptr/std::shared_ptr.
      • Нюансы работы с auto и decltype.
      • Как избежать "проблемы most vexing parse" при инициализации объектов.
    • Пример применения:
      auto ptr = std::make_unique<MyClass>(); // вместо std::unique_ptr<MyClass>(new MyClass)
      
  2. "C++ Concurrency in Action" by Anthony Williams

    • Что изучил:
      • Глубокое понимание многопоточности в C++: std::thread, std::async, мьютексы.
      • Паттерны like "double-checked locking" и их pitfalls.
      • Работу с атомарными операциями (std::atomic).

Курсы

  1. "Advanced C++ Programming" (Coursera / Udemy)

    • Что освоил:
      • Оптимизация производительности через move-семантику и perfect forwarding.
      • SFINAE и концепты (C++20).
      • Пример:
        template<typename T>
        requires std::integral<T>
        T add(T a, T b) { return a + b; }
        
  2. "Linux Kernel Development" (LFD400)

    • Что дал курс:
      • Написание системного кода на C (драйверы, работа с памятью).
      • Понимание того, как системные вызовы взаимодействуют с ядром.

Практические навыки

  • Углубление в STL:
    Научился эффективно использовать std::unordered_map с кастомными хэш-функциями.

    struct MyHash {
        size_t operator()(const MyClass& obj) const {
            return std::hash<int>()(obj.id);
        }
    };
    
  • Инструменты:
    Освоил perf и Valgrind для профилирования и отладки утечек памяти.

Резюмируем

За год удалось систематизировать знания по современному C++, углубиться в многопоточность и низкоуровневую разработку. Ключевой прогресс — переход от "работающего кода" к "оптимальному и поддерживаемому".