Задать вопрос

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

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

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

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