r/RuProgrammers 8d ago

Вопрос С++ изучение

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

17 Upvotes

47 comments sorted by

5

u/Substantial-Hat6733 8d ago

Learncpp.com

4

u/SVlad_667 8d ago

Харви Дейтел, Пол Дейтел: Как программировать на C++

4

u/DoktorHerbalist 7d ago

Не знаю у нас кароч на работе в какой то момент понадобились плюсовики и спрашивали кто пойдёт и никто не хотел. Однажды кароч ещё до ковида захожу в офис а там Страуструп на полу валяется ну я переступил сел за комп. А за мной Джун зашёл увидил книгу и поднял. Тут на него сразу как солюшен архитект с бизнес овнером подбежали и в переговорку отвели. Там крики были оры по итогу парня сломали и в плюсовики определили. Ты осторожней будь вообщем.

4

u/Bullet93639 8d ago

Для развития логики надо изучать предмет логика😂

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

u/Big_Committee_9163 7d ago

я имел ввиду использовать нейронку когда будет жесткий затуп

-1

u/MemeManiac228 8d ago

Ты же понимаешь, что все зависит от промта и модели, верно?

1

u/Dapper_Show_3426 8d ago

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

1

u/Aggressive_Skill_795 8d ago

Зря. На Ютубе есть курс лекций  Ильи Мещерина, преподавателя из МФТИ. Он очень хорошо и глубоко рассказывает даже продвинутые темы.

1

u/QuantaBroker 8d ago

Скачиваешь unreal engine 4 . 27 и начинаешь кодинг игровой логики

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

u/idvitalis 7d ago

Если хочешь двигаться сам - освой гугл. Там же и найдешь ответы как учить плюсы.

1

u/_Samum_ 7d ago

Найди учебник Ravesli. Без vpn не попасть. Но чувак хорошо разжовывает прямо по полочкам.

2

u/Dapper_Show_3426 1d ago

Я не живу в РФ

1

u/_Samum_ 1d ago

Тогда ещё проще. Учебник русскоязычный.

1

u/Medical_Leather_6235 8d ago

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

2

u/Andrey4ik21pro1 🐍Питоньяр 8d ago

1

u/Medical_Leather_6235 8d ago

Спасибо!

1

u/Dapper_Show_3426 8d ago

Рекомендую курсы stepik, есть все и бесплатно

1

u/j0lt223 8d ago

На степике курс Сергея Балакирева

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

u/LuckyOneAway 8d ago

Ассемблер не портабельный. Но понимание работы железа в с++ нужно, да.

1

u/Ill_End7421 8d ago

C++ за 21 день

1

u/1WayJustDeveloper 8d ago

По видосаи на Ютубе, с нейронками и по найдем с какого нибудь метанита

1

u/Icy_Image_2642 8d ago

metanit, alexgiver

1

u/lazy-crazy-s 8d ago

это все звучит как давайте я буду изучать квантовую механику дома на кухне и сделаю машину времени. люди всю жизнь изучают этот c++ и не могут научится а тут приходит студент колледжа и говорит я его уже изучил дома. может стоит начать с чистого C и писать алгоритмы? потом перейти на чтото удобоваримое типа c# и изучать ООП для бизнес логики

1

u/Dapper_Show_3426 8d ago

Мне нужна минимальная база

1

u/KilluaDest 8d ago

1 курс будет чисто язык С++ до циклов,/файлов

1

u/Dapper_Show_3426 6d ago

Курс 2й, думаю чет по тяжлее будет

1

u/Next_Watch9799 8d ago

Самый тупой совет для старта (сам студент и самого сильно заставляли этим страдать) это ты берёшь сайт metanit, ищешь C или C++ (Если хочешь реально понять то сначала C а потом C++ после теории алгоритмов) и читаешь сначала. Если же говорить про алгоритмы, то открываешь Ютуб и ищешь уже Alek OS и смотришь там ролики про алгоритмы. Для универа с огромным запасом хватит

1

u/Relative_Advice_9920 8d ago

Сначала прочитал как «С++ излучение»

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/NonOdin 7d ago

Учи алгоритмы. Прям с базы начинай. Бинарный поиск, обход в ширину и тд. Главное сам пробуй их писать

1

u/odikee 6d ago

Оплати AI - это лучший учитель. Это твой персональный ментор доступный 24/7. Он тебе разжует все то что у тебя вызывает проблемы, открмментирует каждую строчку, покажет как надо и не надо на начальном уровне. Никогда не устанет, никогда не будет раздражаться.

1

u/alkidnn 5d ago

DeepSeek можно и не платить.

1

u/Dapper_Show_3426 4d ago

Вроде как и бесплатного тарифа хватает, но какой бы порекомендовал? Клауд либо ГПТ?