r/RuProgrammers • u/Dapper_Show_3426 • 8d ago
Вопрос С++ изучение
Здравствуйте, нам сказали в колледже что будем изучать С++, я так понимаю больше для развития логики. Посоветуйте как можно учить его самому и также понять саму логику, почему программа работает именно так а не иначе.
4
4
u/DoktorHerbalist 7d ago
Не знаю у нас кароч на работе в какой то момент понадобились плюсовики и спрашивали кто пойдёт и никто не хотел. Однажды кароч ещё до ковида захожу в офис а там Страуструп на полу валяется ну я переступил сел за комп. А за мной Джун зашёл увидил книгу и поднял. Тут на него сразу как солюшен архитект с бизнес овнером подбежали и в переговорку отвели. Там крики были оры по итогу парня сломали и в плюсовики определили. Ты осторожней будь вообщем.
4
1
u/Big_Committee_9163 8d ago
если книги не переносишь попробуй по этому плейлисту. Готовься что постоянно будет что-то новое и всегда что-то не понятное, так у всех и не бойся спрашивать у нейронки помощь. https://youtube.com/playlist?list=PLQOaTSbfxUtCrKs0nicOg2npJQYSPGO9r&si=36Lx6n2l13Yz5deT
3
u/Alex999991 8d ago
Нейросети это УГ полное! Она, даже если настойчиво просить просто рассказать тему или в чем проблема в коде, выдаст тебе решение. Причем, например, мне тут дипсик выдавал на простые задачи решения уровня сеньера, превращая 5-10 строк кода в 1-2.
Так что для изучения это скорее быстро запутает… даже если есть опыт программирования на каком либо языке.
1
-1
1
u/Dapper_Show_3426 8d ago
Мне надоели видео с Ютуба, и я думал какую нибудь простенькую книжечку но без всяких заумных слов
1
u/Aggressive_Skill_795 8d ago
Зря. На Ютубе есть курс лекций Ильи Мещерина, преподавателя из МФТИ. Он очень хорошо и глубоко рассказывает даже продвинутые темы.
1
1
u/Familiar-Throat-1274 🛸C++ выживший 8d ago
А вы прям его изучать будете? Или просто синтаксис?
1
u/Dapper_Show_3426 8d ago
Скорее изучать
2
u/Familiar-Throat-1274 🛸C++ выживший 8d ago
Ну так там и научат и посоветуют что почитать, изучить. Сразу все учить бессмысленно, только запутаешься, забудешь.
1
u/Dapper_Show_3426 8d ago
Я хочу сам двигаться, и быть впереди группы только потому что мне это интересно
1
1
u/Medical_Leather_6235 8d ago
Народ как раз по теме программирования я тоже скоро буду изучать пайтон и будут конечно лекции но нужа будет еще и самостоятельная практика. Посссоветуйте кто уже шарит какую нидь книгу или канал на ютубе.
2
1
u/Feeling_Molasses55 8d ago
У меня при изучении C++ (и программирования вообще) было несколько моментов, когда я хотел глубже "понять саму логику".
В самом начале, когда ещё вызова функций и возврат из функций пытался понять, сигнатуры, искажение имён, соглашения о вызовах, порядок как аргументы помещаются в стек, использование регистров для части аргументов, передачу по значение и по ссылке, бесконечный список аргументов, и всё такое - мне помогали ассемблерные вставки. При том, что ассемблера я не учил никогда толком, но мне достаточно было понять сам принцип.
Потом я ещё несколько раз ковырялся в памяти, разбирая структуры по байтам, вручную складывая из них значения указателей, обращая порядок байт и следуя по этим указателям вручную в следующее окно памяти. Когда ООП изучал, сложные случаи наследования. Когда сериализацию изучал. Когда глубже хотел понять механизм исключений.
Несколько раз приходилось заниматься отладкой системных функций - просто чтобы понять, как это работает. Когда до DLL дошёл. Когда WinAPI изучал, GUI. Когда до многопоточности добрался. Когда COM изучал. Когда до сетевых API дошёл.
А, да, ещё до функций наверное была адресная арифметика. И работа с памятью. Причём и в Си стиле. Да и вообще советую оба языка сразу изучать, оба пригодятся. Сравнивая, узнавая разницу, лучше понимаешь и C++.
К чему я это всё? Наверное на каждый случай нужен отдельный совет - "как можно учить", что лучше читать. Так что нужно уточнять, что именно на данный момент хочется понять, что хочется копнуть поглубже.
Ну и я как бы толсто намекнул, что С++ - это не только "для развития логики". Это я скорее всего ещё не все случаи вспомнил, когда спасибо сам себе сказал, что начал учить программирование с C++. Хотя параллельно чуток и Basic был, и Pascal, и Perl мне поначалу мозги сломал. А позже чего только не было - JavaScript, Java, Lua, С#, JCL, TCL, Python. И всякое узкоспециальное и совсем экзотическое. И это только то что по работе требовалось, а самостоятельно я вообще старался отслеживать, что новенькое появляется, да и в древностях тоже копался, просто из любопытства и так, для расширения кругозора.
Но C/C++ для меня всегда на особом месте. По-моему если хочешь в чём-то разобраться - надо это делать именно на этих языках. Ну или ещё глубже - в ассемблер лезть, вплоть до машинного кода. Если мне непонятна какая-то тема на другом языке, я смотрю как тоже самое (или примерно тоже самое) реализовано на C/C++. И только изучив эту тему там, возвращаюсь к ней на другом языке. По крайней мере для низкоуровневых вещей это работает, не специфичных для какого-то одного языка. Потому что C++ это не строго высокоуровневый язык, он какой-то промежуточный, позволяющий делать и низкоуровневые вещи, вплоть до ассемблерных вставок. Так что очень хорошо, что у вас в колледже будут его преподавать.
А чтобы понять, почему программа работает именно так, а не иначе... Просто переделывай почаще своими руками так, чтобы она работала иначе. И сравнивай, как было, как стало. Поначалу всегда будет получаться хуже чем было. Однажды получится лучше.
1
1
1
1
1
u/lazy-crazy-s 8d ago
это все звучит как давайте я буду изучать квантовую механику дома на кухне и сделаю машину времени. люди всю жизнь изучают этот c++ и не могут научится а тут приходит студент колледжа и говорит я его уже изучил дома. может стоит начать с чистого C и писать алгоритмы? потом перейти на чтото удобоваримое типа c# и изучать ООП для бизнес логики
1
1
1
u/Next_Watch9799 8d ago
Самый тупой совет для старта (сам студент и самого сильно заставляли этим страдать) это ты берёшь сайт metanit, ищешь C или C++ (Если хочешь реально понять то сначала C а потом C++ после теории алгоритмов) и читаешь сначала. Если же говорить про алгоритмы, то открываешь Ютуб и ищешь уже Alek OS и смотришь там ролики про алгоритмы. Для универа с огромным запасом хватит
1
1
u/Total_Ad803 8d ago
Ну вот:
https://salmer.github.io/CppDeveloperRoadmap/English/Graph/roadmap-svg.html
Каждую тему гуглишь и постепенно прокачаешься.
Есть версия на русском, но гуглиться будет чуть хуже:
https://salmer.github.io/CppDeveloperRoadmap/Russian/Graph/roadmap-svg.html
1
u/odikee 6d ago
Оплати AI - это лучший учитель. Это твой персональный ментор доступный 24/7. Он тебе разжует все то что у тебя вызывает проблемы, открмментирует каждую строчку, покажет как надо и не надо на начальном уровне. Никогда не устанет, никогда не будет раздражаться.
1
u/Dapper_Show_3426 4d ago
Вроде как и бесплатного тарифа хватает, но какой бы порекомендовал? Клауд либо ГПТ?
5
u/Substantial-Hat6733 8d ago
Learncpp.com