Теперь Кью работает в режиме чтения

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

Как правильно изучать язык программирования C++?

Изучаю C++ на курсе, и мне кажется, что меня учат не всему. Из-за этого я отстаю от многих. Как мне быть с этим языком, если есть опыт программирования на языках C#, Python, Delphi?
ОбразованиеПрограммирование+4
Собиржон Матназаров
  ·   · 5,6 K
Я - программист, который знает немного о циклах и...  · 1 дек 2021
При изучении такого товарища как C++, который оброс legacy фичами и вместил в себе все возможные и невозможные стили написания программ, нужно исходить из задач, какие вы собираетесь решать.
Если вы будете работать в gamedev, то нужно сосредоточиться на низкоуровневых аспектах программирования: взаимодействию с драйверами, работе с графическими движками: объектно-ориентированности там будет мало: код будет больше похож на структурированный C, акцент будет делаться на перформанс всего и вся, потому что конечная цель - fps.
Если вы будете делать enterprise приложения, то там всё будет мало чем отличаться от C#, который вы уже знаете, как я понял. Если использовать "умные указатели" (shared_ptr, unique_ptr и пр.) и применять классические паттерны из ООП как в C#, то программы будут выглядеть почти так же, за исключением того, что для циклических ссылок придётся попотеть с weak pointers и хорошо знать memory model. Изучать тут лучше начинать с классических книг по ООП для C++, причем чем для более позднего стандарта написана книга, тем лучше. Всё потому что поздние стандарты и всякие либы типа Boost позволят вам не изобретать множество велосипедов и сразу приобщиться к хорошей структуре кода.
Если вы будете делать операционную систему или драйвера писать, то начинать надо с C: вначале его освоить на очень хорошем уровне, а потом уже изучать ООП, потому что вряд ли, опять же, у вас будет большая глубина иерархии классов и классы будут использоваться лишь для инкапсуляции поведения, а не для моделирования сложных взаимосвязей. Хотя уже есть примеры низкоуровневого кода с хорошей объектно-ориентированностью: всё потому, что C++ любит абстракции с нулевой стоимостью: например, если вы будете использовать не виртуальные методы, то компилятор сможет очень хорошо соптимизировать результирующий машинный код.
Основные увлечения - программирование...  · 4 февр 2022
Немного юмора: А серьезно - универсальный ответ: писать программы, читать книжки, изучать исходники, общаться более опытными товарищами. Читать далее
Диванный философ, по совместительству инженер  · 9 нояб 2021
Если у Вас есть опыт программирования на Delphi попробуйте что-нибудь сделать на C++ Builder. По сути та же среда и та же архитектура компонентов что и в Delphi. Возможно курсы наоборот слабоваты для Вас если Вы уже Delphi-разр... Читать далее
В программировании с 1977 года. Последние года...  · 8 нояб 2021
Вот здесь немного про C++ и другие языки, чтобы не повторяться. Заключение обязательно почитайте. Понятия правильного или неправильного изучения C++ (и не только его) не существует. Это как с языком общения: Кто-то сразу... Читать далее
1 эксперт согласен
По образованию физик, работаю программистом  · 8 нояб 2021
Язык Си++ является языком более низкого уровня, чем перечисленные Вами. Если Вы поймёте, как работает Си++, то станете глубже понимать, что происходит в других языках программирования. Основное отличие заключается в том, что... Читать далее
Почитайте пару книг Андрея Столярова. Про введение в профессию программирование и отдельная часть по языку Си
Диванный эксперт широкого профиля :)  · 15 нояб 2021
> Изучаю C++ на курсе, и мне кажется, что меня учат не всему. Из-за этого я отстаю от многих. Как мне быть с этим языком, если есть опыт программирования на языках C#, Python, Delphi? Если есть опыт с другими ЯП, стоит... Читать далее