Added an article about the reasons to learn cpp

This commit is contained in:
Evgeny Melnikov
2021-05-21 22:14:00 +03:00
parent 00fa01d10e
commit fce1428e8f

View File

@@ -1,9 +1,37 @@
# Зачем тебе C++?
# А точно 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, исключительно в ваших руках и упорстве. На сегодняшний день - эта сфера всё ещё награждает тех, кто упорно идет к своей цели.