@nellle
Пытаюсь в IT

Проблема изучения C++?

Последние 3 года я занимался изучением Python, совершенно случайно втянувшись в программирование. Изучал я язык достаточно отрывочно, по статьям, видео, книгам и так далее. За эти 3 года я пробовал создавать большое количество пет-проекты: самопальная база данных на манер MongoDB, сетевая игра на сокетах и pygame, простенькие api на FastApi, django сайтики и так далее. Но не мне судить, но наверное изучил я его на неплохом уровне. Также за эти 3 года я успел бегло познакомиться с Go, C#, JavaScript, на базовом уровне.

В этом году у меня ЕГЭ, и встал вопрос с выбором специальности, а я понимаю, что Python используется в других сферах, нежели в которых я бы хотел работать, да и динамическая типизация отталкивала меня последние полгода. И пару дней назад я решил попробовать влиться в С++, т.к его скорость и возможность понимать как работает почти каждый байт — очень привлекала меня, да и использовался он в интересных мне сферах(Геймдев, драйверы и работа с ресурсами компьютера), но послушав 5 или 6 лекций по основам языка, я понимаю, что у меня абсолютно нет идей как применить эти знания на практике. На условном пайтоне, уже познав первые азы можно было накидать какой-то простенький проект и увидеть свой результат, что сильно увеличивало мотивацию погружаться глубже. На плюсах такого нет(или может быть я не вижу), что сильно фрустрирует тратить 6 часов на теорию без какой-либо практики.

Суть вопроса: есть ли какие-то пет-проекты для плюсов, которые можно реализовать после прохождения новых тем, или может быть плюсы уже не самая актуальная тема и стоит посмотреть в сторону других языков(может Rust?)
  • Вопрос задан
  • 700 просмотров
Пригласить эксперта
Ответы на вопрос 5
AlexXYZ
@AlexXYZ
O Keep Clear O
А попробуйте написать свой язык программирования?
Ответ написан
saboteur_kiev
@saboteur_kiev Куратор тега C++
software engineer
C++ как прикладной язык сейчас не сильно приветствуется. Он хорош как системный язык.
На нем легко накидать консольные утилиты.
Для вещей типа пет проект или игрушку, юзают фреймворки, всякие QT, Boost, WT
Или движки типа UnrealEngine, Cocos2d, X-ray, GZDoom
Ответ написан
Комментировать
@evgeniy_lm
Но не мне судить, но наверное изучил я его на неплохом уровне.
Почему же, ты очень даже можешь самостоятельно оценить уровень своих знаний, достаточно заглянуть к себе в карман. Чем больше там денег тем выше твои знания в программировании.

у меня абсолютно нет идей как применить эти знания на практике
Сделай то же, что ты делал на Python. Проблема в том, что порог входа в Python несоизмеримо ниже чем в С++. Т.е. любой бестолковый школьник может за пару дней накидать нафиг никому не нужную фигню и решить, что он уже программист, а вот на С++ уже нужно писать программы, то есть требуются серьезные знания, время и усилия. Ты подсознательно не хочешь и/или не можешь заниматься фигней, а на что-то серьезное у тебя просто не хватает знаний и опыта
Ответ написан
Комментировать
@calculator212
но послушав 5 или 6 лекций по основам языка, я понимаю, что у меня абсолютно нет идей как применить эти знания на практике.
Прикол плюсов в том, что у плюсов наверное один из самых высоких порогов вхождения для написания какого-то полезного кода(по крайней мере среди си-подобных). Плюсы это прям игра в долгую:
1) сначала ты учишь базовые плюсы, которые не касаются стандартов, изучаешь что такое указатели и чем они друг от друга отличаются например int *const от const int * от const int *const и т.д. (непередаваое удовольствие в общем), изучаешь как работают указатели на практике и как работает память, пишешь сам базовые структуры хотя бы list, queue и пары других вещей, мб простую map сделаешь.
2) на плюсах из первого пункта почти никто не пишет сейчас, но они всё равно нужны для понимания языка поэтому дальше изучаешь стандарты c++11 - c++20, основные контейнеры, итераторы и т.д. немного можно коснуться многопоточки, чтобы понимать зачем оно вообще нужно
2.1) Изучение предметной области в которой хочешь работать, плюсовики сильно отличаются друг от друга, т.е. те кто пишут сетевые драйверы обычно не шарят за геймдев и сам код у них будет сильно отличаться, поэтому тебе будет нужно определиться с этой областью и уже изучать ее
2.2) Также тебе придется узнать, что такое системы сборок, т.к. многие либы в плюсах не устанавливаются одной командой как в питоне, а просят скомпилировать их и установить отдельно в системе и установить самому, и тебе самому придется для сборок нормальных проектов освоить хотя бы Cmake и make.
2.3) С кроссплатформенностью сейчас стало гораздо лучше (спасибо c++17 что добавил общее апи для работы с файлами), но если тебе что-то специифическое под винду понадобится, то тебе считай придется учить отдельный язык для винды (на мой взгляд питон было изучать чем апи винды)
3) В общем если ты пункты выше пройдешь, то скорее всего уже сам сможешь найти, что тебе делать дальше
Суть вопроса: есть ли какие-то пет-проекты для плюсов, которые можно реализовать после прохождения новых тем, или может быть плюсы уже не самая актуальная тема и стоит посмотреть в сторону других языков(может Rust?)
С тем сколько ты изучил, ты по сути ничего особо и не напишешь, мб какую-то консольную программу типа справочника с поиском и крудом. Плюсы специфичный язык и я советую его изучать, если тебе он прям нравится или ты очень хочешь стать разрабом на UE, т.к. это специфический язык, если хочешь быстрых результатов, то оставайся в питоне и развивайся в нём, можешь взять промежуточные варианты типа го/явы/шарпа там попроще писать и результаты будут быстрее чем в плюсах
Ответ написан
Комментировать
TrueBers
@TrueBers
Гуглю за еду
К чёрту плюсы. Это гавно мамонта только на легаси поддержке сейчас остаётся у бородатых дедов. Учи Раст. На него переходит большинство адекватных команд. Язык в разы приятнее и эффективнее. Писать на нём в 5 раз быстрее, чем на плюсах. Спецификация не на 5 тысяч страниц, а от силы 500 не наберётся.

У тебя другая проблема: язык это инструмент. Ты нашёл молоток и ищешь гвозди. А когда в руках молоток, всё кажется гвоздём.
Сначала пойми, что тебе интересно. Какая сфера и область разработки. Пет-проекты нужно делать для себя. Никто за тебя их не придумает. Когда нет идей в голове, всё равно какой язык учить, если он не пригодится.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы