Почему C++ такой сложный? Как я могу улучшить свои навыки? Вопрос

Adre Adre 27 Мая 2022

Я хорошо разбираюсь в HTML, CSS и JavaScript, и я попытался взяться за C++, потому что один из моих друзей предложил мне его. Я попробовал, и это очень запутанно! Как я могу улучшить свои навыки программирования на C++?

3 Комментария

  1. Вы спросили: «Почему C++ труден?» С++ не сложный. Проблема в С++, его преподают неправильно.

    C++ часто воспринимается не только как общий высокопроизводительный язык, но и как потомок низкоуровневого языка C.

    Поэтому большинство вводных курсов посвящены особенностям C и внутреннему устройству машины. На мой взгляд, этому нет места в курсе для начинающих.

    Итак, на мой взгляд, любой курс должен начинаться следующим образом:

    Переменные, значения (типы) и функции

    Это соответствует почти 1:1 любому процедурному языку, например JavaScript.

    Поскольку указатели и ссылки не имеют значения-семантики, их введение следует отложить до тех пор, пока не возникнет проблемно-мотивированный вариант использования.

  1. С++ — это не шутки; это язык для программистов, которые знают, что делают. Я всегда считал себя «хорошим» в написании кода и уверенным, даже самоуверенным в решении любой задачи по программированию. C++ — единственный язык, который когда-либо заставлял меня задуматься.

    С++ сложен, потому что компьютеры — сложные машины. Если вы хотите напрямую запрограммировать сложную машину, вам понадобится сложный язык.

    Если вам нужен язык, который заставляет машину выглядеть проще, чем она есть, то вам нужен язык, который исправляет ваши ошибки во время выполнения.

  1. Есть так много причин, по которым C++ трудно изучать.

    Например, управление памятью, слишком много способов: malloc/free, new/delete, shared_ptr/make_shared и т.д. Сложное взаимодействие тут: stack/heap/static и т.д. Слишком много правил для наследования классов и т.д.

    Я мог бы продолжать.

    Есть способ обойти многое из этого — сразу начать обучение под руководством грамотного преподавателя. От него многое зависит.

    По поводу преподавания, мы во 2 классе пошли в Университет, в кружок, где С++ начал преподавать кто-то, кого я посчитал слегка безумным. Возможно, он применил подход классического образования, но приступили мы издалека, и для второго класса, это был явный перебор. К тому же, меня всегда волновало применение.

    Когда мне показали большой зал, где стоял компьютер длиной метров 10 и перфоленты, и упрощая (меняя даже язык) он сказал, что С++ надо чтобы дырки в бумажках ставить… Не лучший пример, хотя понимаю сейчас, он просто хотел упростить всё, но я тогда подумал: «и это всё, что мы делаем и мучаемся для этой фигни?» smile

    В общем, первое знакомство было ужасным. Я вытерпел пару месяцев и сбежал. От преподавателя многое зависит. Конечно, возможно, надо было остаться. Ведь С++ стал мне крайне необходим позже.

    Как я могу улучшить свои навыки?

    Найдите преподавателя, — это самый быстрый способ.