Как изучить C++?

Привет Тостеру
Я несколько лет подряд поверхностно изучал C++, и моя проблема в том, что я не только не понял как его изучить на профессиональном уровне, но и не понял, где в этом языке сложность. Я знаю, что есть языки попроще, но меня очень тянет сам язык. Я видел много вариантов видеокурсов, уроков, книг по этому языку, но я не понимаю, с чего требуется начать. Я даже толком и не понимаю весь потенциал языка, и не совсем понимаю, как отличить новичка от профессионала?
Тут много профессионалов, которые уже достаточно знают в этом вопросе, поэтому я вас прошу помочь, мне нужна ваша помощь. Помогите мне составить систему, по которой возможно достичь хотя бы начальных результатов в изучении C++. Я думаю в этом вопросе лучшим средством будут книги, хотя и хватает довольно много полезных видеокурсов. Заранее благодарю за вашу помощь,
  • Вопрос задан
  • 2361 просмотр
Решения вопроса 1
но и не понял, где в этом языке сложность

1. сложность в поиске работы
2. сложность в написании программ, аналогичных программам на C#, java
3. очень легко забыть очистить память выделенную оператором new, работа с указателями, ссылками, виртуальными функциями. А если лезть в дебри таблиц виртуальных ф-ций, то вы автоматически начнете программировать ради программирования.

Я даже толком и не понимаю весь потенциал языка

на плюсах можно написать все тоже самое, что можно написать на C# или Java и наоборот. Возможно единственный плюс C++ в том, что программы на нем получаются несколько более производительными (на ассемблере еще лучше в этом плане), хотя тут большую часть играет опыт разраба: какие алгоритмы он пишет, как выстроена архитектура программы.

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

Изучал С++ упорно первый год своего знакомства с программирование, даже написал небольшую игру. Не вижу в этом языке практической пользы в нынешнем 2018 году, если только ради развития самой теории программирования, но не ради написания программ. Слишком сложный в применении.
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
Decadal
@Decadal
Когда-то я учил этот язык пять лет в учебных целях и теперь совершенно его не использую, но на примере другого языка пришел к пониманию, что сложность начинается не там, где всё запустилось и работает, а там, где начинается активное использование вашего приложения.
Проблемы следующие: много кода, тяжело вносить правки; большая нагрузка (на базу, на память, на прочие ресурсы) - нужно оптимизировать но не ломать; параллелизм (для вас особенно актуально) - нужна стабильная работа; удобство и продуманность (нужно чтобы пользователи быстро осваивали вашу программу и не плевались).
Новичок прикидывает "на глазок". У него мир делится на "явно сложное" и "явно простое". А профессионал берёт время на подумать и задаёт очень много вопросов. Он не делает поспешных выводов. Новичок пишет код и время от времени понимает, что написал плохо; профессионал четко понимает, где написал плохо, почему, и при каких условиях это нужно переделать, а при каких - не нужно трогать вообще. Новичок работает на программу, профессионал работает на бизнес (или "пользователей", которые использует программу).

Чтобы стать профессионалом - 1) попадите в опытную команду которая работает над бизнес-продуктом 2) сделайте что-то такое, у чего появятся пользователи, и регулярно выслушивайте их фидбеки, внедряйте их хотелки и тд.
Опыт - очень важная часть программирования, которую нельзя "проглотить", прочитав книгу. Вы должны понять, ЧТО вам советуют, чтобы знания принесли пользу, а для этого тоже нужен опыт... часто даже печальный опыт.
Ответ написан
GavriKos
@GavriKos
Помогите мне составить систему, по которой возможно достичь хотя бы начальных результатов в изучении C++. Я думаю в этом вопросе лучшим средством будут книги, хотя и хватает довольно много полезных видеокурсов.

Лучшим средством в изучении ЯП является практика. Книги безусловно нужны, но если вы не будете применять свои знания на практике - толку ноль.
Ответ написан
devalone
@devalone
̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
Просто начни писать код
maxresdefault.jpg
Ответ написан
Комментировать
@majstar_Zubr
C++, C#, gamedev
0) посмотри что пишут на c++ и задайся вопросом, зачем оно надо https://github.com/fffaraz/awesome-cpp
1) почитай любую книжку по с++, хоть для чайников, или любой курс по основам, не важно какой. Потыкай, подпиши чего-нибудь. Так вот, это было введение. А теперь ставь linux. Основные команды под терминал и менеджер пакетов под дистрибутив изучи. Что в каждой папке лежит и зачем узнай.
2) поставь geany, cppcheck, clang-format, warning as errors, и напиши hello world.
3) а теперь открой Википедию и почитай про стандартную библиотеку. Измени программу так, чтобы компилировалась под виндой тоже. Нужно возвращать платформозависимые коды выхода.
4) почитай про процесс компиляции (от препроцессора до линковки), слинкуйся статическим и динамически, вынеси из хеллоу ворда печать в динамическую, автоматическое узнавание имени текущего пользователя в статическую либу (ну, узнать можно по user directory например, чтобы программу хеллоу ворда не усложнять)
5) добавь исключения, напиши make скрипт сборки, и пол Винду тоже.
6) добавь поддержку utf-8
7) настрой автоматическую сборку через cmake
8) теперь можно читать страуструпа, любую книжку, параллельно читая cppreference.com: пройдись по всем ключевым словам, а потом по остальным разделам: нужно чтобы ни одна ссылка не была непосещенной.
9) параллельно можно изучать boost, qt, node.js или что там интересным показалось; и документацию к компиляторам и стандарт языка можно погладывать.
10) всю эту систему можно сократить в разы, если сформулировать s.m.a.r.t. цель. Игры? Графика? САПР?Высоконагруженное серверное? Транслятор? Нейронки? Биндинги? Кросплатформенное? Хобби? SkillUp? Работа? За год? Три?
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы