1. ОС Linux / Unix и инструменты командной строки.
    Скорее всего, вы напишете свой код C ++ для Unix-подобных ОС. Почему? Потому что это открытый исходный код, что на самом деле означает, что он бесплатный, и каждый может его использовать, что привело к тому, что многие другие библиотеки и проекты C ++ написаны для Linux, поэтому понимание этого и удобство работы с инструментами командной строки терминала являются необходим для разработчика C ++. Настройка среды, установка библиотек, компиляция, запуск и отладка вашего кода - вам, как разработчику, он понадобится повсюду! Так что лучше познакомьтесь с ним прямо сейчас, это просто облегчит вашу жизнь.

    Вот, пожалуйста:
    Учебное пособие по UNIX / LINUX - Учебное пособие
    Учебное пособие по командной строке Linux Для начинающих »
    Курс Udemy: «Мастерство Linux: освоите командную строку Linux за 11,5 часов. »

    Если по какой-либо причине вам нужно научиться программировать для Windows, то лучше сначала изучите командную строку Windows. Но я считаю, что рано или поздно вам все равно придется познакомиться с Linux и его инструментами.
  2. Структуры данных и C ++ STL (стандартная библиотека шаблонов)
    Чтобы кодировать на C ++ (и на любом другом языке), вы должны четко понимать, что такое массив, хеш-таблица, связанный список, очередь. , стек, двоичное дерево и его реализация в стандартной библиотеке C ++. Также вам необходимо знать, что такое алгоритмы поиска и сортировки.
    Поверьте, вам не захочется самостоятельно реализовывать это в реальных проектах. Все, что вам нужно, это пройти через Стандартные контейнеры и Алгоритмы и вспомнить, где вы можете найти эту информацию позже, когда она вам понадобится в вашем коде. Хорошим бонусом здесь будет понимание и умение рассчитывать сложность тех и других алгоритмов.
    Вообще-то это большая тема. Вы не узнаете и не поймете всего сразу или за несколько часов. Предполагается, что это займет некоторое время, возможно, годы, если вы новичок в кодировании. Для начала вам просто нужно знать, что такое STL, и, возможно, вернуться к нему позже, когда у вас будет немного больше практики кодирования, чтобы вы понимали, какие проблемы вы можете решить с его помощью.

    Несколько руководств для начала:
    Структуры данных - GeeksForGeeks
    Учебник по структуре данных и алгоритмам - Учебное пособие
    Стандартные контейнеры и Алгоритмы
    Учебное пособие по C ++ STL - Учебное пособие
  3. Инструменты Make, CMake
    Это инструменты, которые позволяют создавать проекты на C ++. Если ваш проект не состоит из 1-5 файлов, вам нужно автоматизировать процесс его создания. Это то, что в основном позволяют делать эти инструменты. Но прежде чем даже начать читать об этом, вам нужно понять, что такое все процессы сборки C ++ и как запустить компилятор C ++ (G ++ или Clang).

    Make - Unix, Linux Command - Tutorialspoint
    Unix Makefile Tutorial - Tutorialspoint
  4. GDB
    Как только вы научитесь кодировать и запускать свои двоичные файлы C ++, вы столкнетесь с проблемой, когда он дает сбой или просто не работает должным образом. Так что же тогда делать? Вы смотрите на свой код, дважды проверяете логику, но по-прежнему не видите в нем никаких проблем. Что дальше? Здесь у вас есть два способа справиться с этим. Вы можете прикрыть свой код распечатками журнала (что, честно говоря, обычно является скучной задачей, и это не делает вашу программу более читаемой) или вы можете отлаживать его. Отладка намного интереснее! Еще интереснее отладка с терминала. И, честно говоря, я считаю, что это обязательный навык - уметь отлаживать свою программу на C ++ с консоли. Однажды у вас не будет всех этих причудливых интерфейсов отладки IDE, когда что-то выйдет из строя после недавнего выпуска на удаленном сервере разработки, и вам нужно будет исправить это как можно скорее.

    Учебное пособие по отладчику GNU - Краткое руководство - Учебное пособие
  5. UML
    И это моя личная рекомендация. Как ни странно, но никто никогда не спрашивал меня об этом во время моих собеседований, и я, вероятно, никогда не считал это требованием для какой-либо должности разработчика или в программе любых курсов программирования. Это было по программе в университете, где я учился (информатика, NULP), и именно там я впервые узнал о различных типах диаграмм, которые помогают визуализировать, что будет делать ваша программа, как будет выглядеть ее архитектура и многие другие интересные вещи. Как правило, это помогает документировать и описывать ваш проект и код с разных точек зрения, поэтому я считаю, что каждый должен уметь говорить и читать на этом языке и знать инструменты для этого.

    Единый язык моделирования - Официальная документация
    UML Tutorial - Tutorialspoint
    Lucidchart - онлайн-инструмент для создания UML и некоторых других диаграмм. Также существуют различные руководства о диаграммах и о том, как их создавать с помощью этого инструмента.

Спасибо за прочтение! Не стесняйтесь делиться своими мыслями в комментариях :)