Files
CppDeveloperRoadmap/SelfIdentification.md
2021-05-21 22:14:00 +03:00

37 lines
8.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# А точно C++?
Первое, о чем действительно стоит подумать, прежде чем погружаться в изучение данного языка: а для чего, собственно, он вам нужен?
Не смотрите на C++ в следующей парадигме: "Если вам дали в руки молоток, то всё вокруг становится гвоздями". Данный язык имеет свои ниши применения. Потому, прежде чем инвестировать свое время и силы в его изучение - попробуйте поизучать сферы применения и найти ту, которая заинтересует именно вас. Вот некоторый ряд причин, почему это стоит сделать "на берегу":
- Многие сферы разработки выглядят несколько иначе, в отличие от их романтизированного образа. Например, наиболее популярное направление среди новичков - разработка игр, имеет следующие темные стороны: кранчи (переработки в режиме - живем в офисе следующие полгода), отсутствие внятного менеджмента, работа в "стол"/на выброс и т.д.
- Во многих сферах может быть также популярен и иной инструментарий, языки программирования. Возможно то, что вы хотите решать в интересующей вас сфере, успешно решается на том же Python, Java, etc.
Потому, стоит внимательно присмотреться к той сфере, о которой вы имеете только общее представление. Возможно она окажется не столь заманчивой/интересной после детального погружения.
Второе, на что хочется обратить внимание: язык C++ требует больших временных инвестиций, а также сильную мотивацию. Его не получится выучить по универсальной формуле: "за 24 часа", "7 дней", "1 месяц". Если вы видите книгу с подобным обещанием - выбросите её и забудьте о ней. Таки придется взять какой-либо общепризныннй "кирпич" и прочитать его целиком, выполняя упражнения. А потом ещё несколько "кирпичей" поменьше, чтобы освоить признанные практики и подходы. По-другому освоить C++ вряд ли получится. На YouTube есть неплохие записи лекций по C++, но информации из них не хватит, чтобы освоить язык для промышленного уровня владения.
Вывод: Если вы не уверены в своих силах, или же не готовы к олдскульному методу обучения через книги, то возможно вам стоит сделать выбор в пользу более популярных языков программирования. В них вы также сможете найти массу интересных задач, и благополучно вкатиться в IT. К сожалению, C++ - это не тот язык, который позволяет подобные вольности.
# Я уже знаю Java/Python/etc., могу ли я сразу начать писать на C++?
У многих новичков складывается ощущение, что С++ изучается быстро и непринужденно, по ряду следующих причин:
- изучал в ВУЗе и выполнял на нем лабораторные работы;
- изучал C++ сразу после чистого Си или же в парадигме "Си с классами";
- знаком с одним из ООП языков: Java, C#, etc.
- изучал Python или JavaScript и их исполнение ООП парадигмы.
Так вот, полученный опыт выше, крайне тяжело масштабируется на фундаментальное понимание языка C++. Недостаточно просто послушать семестр лекций, изучить чистый Си или почитать книгу по Python и сразу же перейти на C++. Почему же?
- Если говорить про классическое образование, чаще всего дается только базовый синтаксис, который позволит вам писать простенькие программки для выполнения несложных вычислений. Данных знаний и навыков недостаточно, чтобы выжить в промышленном программировании.
- Если говорить о Си, он всего лишь является подмножеством в рамках C++ и не раскрывает всей функциональности и реальной мощи языка. Скорее, даже навредит новичкам на первых порах в понимании концепций, которые заложены в плюсах. Потому, если есть возможность проигнорировать Си, то сделайте это. Все необходимое для работы с этим подмножеством вы узнаете из базовых книг по C++.
- Если же говорить об опыте в других языках: C++ - мультипарадигменный язык. Он содержит в себе сочетание разнообразных парадигм, таких как: процедурное, обобщенное, ООП и т.д. Конечно, это не значит, что полученный опыт в других языках можно смело выкидывать на помойку. Этот опыт облегчит понимание существующих концепций в плюсах, но не поможет уловить тонны нюансов в деталях языка.
Подводя итог, лучший совет, который здесь можно дать - забыть всё, что вы знаете о других языках и C++ и начать его изучать с чистого листа.
# Как учиться?
Первое, что нужно усвоить для себя - вы и только вы отвечате за себя. Только вы заинтересованы стать профессионалом своего дела. Безусловно, вокруг вас полно разработчиков, которые с радостью вам помогут советом или подсказкой, но никто не придумает за вас задачи или конретную программу обучения. Ваш лучший друг в этом деле - Google и комьюннити. Ищите ответы на возникающие вопросы и учитесь учиться. К счастью, ваше будущее в IT, исключительно в ваших руках и упорстве. На сегодняшний день - эта сфера всё ещё награждает тех, кто упорно идет к своей цели.