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