Те же грабли: разбор частых ошибок новичков в программировании
Планируете стать разработчиком, но не знаете, как учиться? Разбор частых ошибок новичков в программировании, чтобы вы не теряли время зря.
Допустим, у вас появилась возможность вернуться в прошлое и что-нибудь изменить в своей работе. Что это будет?
Наверняка вам кажется, что многие часы работы ушли впустую, не дали эффекта, который мог бы пригодиться сегодня. Или их можно было потратить продуктивнее, либо оставить для отдыха. Например, вы мечтали работать в Германии, но не достигли желаемого, а потратили время на что-то менее важное.
Так вот эта статья сэкономит ваше время. Мы расскажем о частых ошибках, которые ведут неправильной дорогой и мешают развитию. Скорее всего, вам тоже есть о чем рассказать. Сделать это можно в комментариях ;)
Плохой наставник или курс обучения
Амбициозным ученикам кажется, что можно пойти по отработанной модели. Например, всего лишь изучить Python, PHP, cPanel. Потом сделать пару десятков проектов, оформить их в портфолио. Наконец, начать работать, параллельно заниматься изучением каких-нибудь модных вещей, вроде блокчейна − в интернете ведь полно видео. Ну и таким образом, года через три стать специалистом высшего уровня.
Ага, если бы.
В последние годы появилось очень много онлайн-ресурсов для самостоятельного изучения языков программирования. Хорошего контента стало так много, что теперь непонятно, а что изучать? Ведь невозможно изучить всё сразу, а тратить время на некачественные курсы с купленными отзывами не хочется.
Кому вы доверяете, какие ресурсы используете? Все существующие Youtube-видео, книги, онлайн-школы, курсы, университеты созданы с целью получения прибыли. То есть они зарабатывают на том, что вы занимаетесь этими вещами. И зачастую им совершенно неважно, как сложится карьера учеников.
Поэтому когда вы решаетесь взять наставника или поступить на какой-то курс, отнеситесь к вопросу серьёзно: несколько месяцев могут уйти впустую. Чтобы этого избежать, следует проанализировать информацию о человеке, который будет вас учить. Вот чеклист:
- Активен ли инструктор на Github или других популярных веб-платформах для программистов? Есть какой-то подтверждённый опыт обучения, или только красивые лендинги?
- Когда контент обновлялся в последний раз?
- Чего достигли ученики спустя некоторое время после обучения? Если информация о них у вас есть, место работы можно проверить в LinkedIn или на Facebook.
- В процессе обучения вы будете заниматься созданием бессмысленных проектов (дейтинг-приложение для собаководов, калькулятор, ту-ду лист) или сотрудничать с брендами, внедрять более-менее инновационные идеи?
- Есть ли блог сервиса или наставника? Посмотрите, насколько качественный контент там публикуется и кем. Возможно, тексты пишутся на аутсорсе.
- Пройдите несколько вводных уроков. Пропускаете их, потому что кажется, что все и так понятно? Тогда стоит выбрать другой источник информации.
Наконец, нет ни одного инструктора, который мог бы научить вас всему. Учиться разному у разных людей − нормальная практика.
Подытожим: если вас постоянно курируют, дают задания и ответы к ним − скорее всего, перед вами хороший маркетинг; если большую часть времени вы занимаетесь самостоятельно, ищете ответы, с таким ментором стоит продолжать учиться.
Всё и сразу
Вообще, конечно, хорошо разбираться сразу в нескольких технологиях, узнавать новое. Но как новичок может изучить сразу несколько языков программирования?
Так, ну Google активно использует Go, Python помогает в машинном обучении, а это сейчас нужно всем, ну и вроде как без JavaScript сейчас никуда не возьмут. Всё, значит, сейчас я буду изучать эти три языка, может ещё чего в процессе освою.
Для опытных программистов это кажется смешным, но среди новичков в программировании, это мнение довольно популярно.
Лучше всего начать с изучения одного языка, потом пойти в компанию, попрактиковаться в работе над реальными проектами. Затем можно начать изучать другие языки, инструменты или структуры, в зависимости от того, что требуется вам в работе. До тех пор, пока вас не готовы взять на какую-то позицию, не стоит пытаться объять необъятное. Иначе может получиться, что вы знаете очень много, но так как практического опыта нет, то и ваша ценность стремится к нулю.
Хотите изучить React, Angular, Vue, потому что они попали в какой-то топ? По сути, они выполняют одинаковые задачи. Сосредоточьтесь на чем-нибудь одном и стремитесь получить практический опыт только в этой области.
Стремление к совершенству
Идеальных программистов нет, как и идеального кода. Да, все вот эти спикеры, лекторы, выходцы из Google и Amazon тоже регулярно совершают ошибки. Если вам так будет проще, то примите факт, что задача, над которой вы сейчас работаете, через несколько лет станет неактуальна или потребует переосмысления. И да, ошибки − естественный процесс обучения, даже когда менеджеры негативно о вас отзываются, вам не стоит огорчаться: вы сделали так, как считали правильным.
Так что, если кажется, что вы ещё недостаточно совершенны для работы над каким-то проектом, забудьте. Откликайтесь на вакансии, создавайте стартапы, продолжайте, даже если ничего не получается. Если делать что-либо ответственно, то рано или поздно получится хорошо.
Неправильный выбор инструментов
Для начала стоит понять, что сегодня востребованы не только программисты, не нужно лезть в эту область ради денег. Если уж вы настроились стать программистом, то определите, чем хотели бы заниматься. Исходя из этого, определите базовые инструменты, языки программирования, только потом приступайте к их пошаговому освоению.
Среди новичков в программировании часто встречаются те, кто приступает к изучению библиотек, не понимая, что они делают и почему они популярны. Следовать трендам, не понимая сути, − bad idea.
Например, кому-то нравится модный React за удобство использования функциональных компонентов. А TypeScript − за то, что он позволяет совершать меньше ошибок. Разве такие особенности делают какой-то из инструментов обязательным к изучению? Нет! Мнения, тренды, да и сами инструменты постоянно меняются. Совет на все времена − сосредоточьтесь на основах.
Синдром студента
Не стоит просто смотреть чужой код, пытаться закончить каждый курс на Udemy, особенно если он не кажется полезным. Может, это звучит слишком радикально, но на определённом этапе обучения лучше всего начинать создавать собственные проекты. Во-первых, это практический опыт, во-вторых, будет что показать при поиске работы.
Вообще, доступ к YouTube есть у всех. Но посмотреть несколько десятков тематических лекций на YouTube, а потом перейти к следующим − значит стоять на месте. Это как смотреть на игру в футбол, а приходя на поле не попадать по мячу. Не нужно делать как все: попытайтесь поскорее отделиться от этой массы новичков в программировании, бесконечно поглощающих теоретическую информацию.
Стоит ли идти в тренировочные лагеря для программистов (Bootcamp)?
Нет. Потому что, как правило, информация будет совпадать с той, что есть в открытом доступе. И когда есть выбор между получением знания под контролем профессионала и платой за них или самостоятельным изучением и экономией, стоит ориентироваться на наличие финансовых средств и способность учиться.
Более того, такие лагеря менее гибкие по сравнению с онлайн-курсами на крупных платформах, составленными вместе с ИТ-компаниями. И единственное преимущество, которое они дают − это комьюнити и ощущение связи с профессией. В любом случае, без упорства ничего не выйдет, так что это не быстрый путь к успеху.
Не пользуйтесь чужими решениями, если вы не понимаете, как они работают
Среди новичков в программировании популярна практика поиска готовых фрагментов кода на Stack Overflow или GitHub в целях ускорения разработки. Но вместо того, чтобы понять, почему этот код работает, а их собственный нет, они двигаются дальше, оставляя пробел в знаниях.
Программировать с нуля сложно, но этому необходимо научиться. Чтобы улучшить свои навыки решения проблем, стоит изучить алгоритмы и структуры данных. Программирование − это поиск долгосрочных решений.
Задавайте вопросы нормально
Обычно говорят, что нет плохих вопросов. На самом деле, это не так. Почему-то новички в программировании очень плохо умеют объяснять другим, в чём им нужна помощь. Из-за этого, многие бояться задавать вопросы на форумах, избегают критики и программистского снобизма.
Если не задавать откровенно глупых вопросов, ответы на которые можно найти в интернете, то можно получить решение проблемы. И лучше сделать это, чем найти быстрый ответ и забить на суть вопроса. Если есть проблема − научитесь решать её сразу, не оставляйте на потом.
Чтобы нормально задать вопрос, объясните его контекст, расскажите, что вы уже пытались сделать, поделитесь, какой вариант решения вам самим кажется наиболее правильным (и предположите, в чем именно может быть ошибка), приложите код, чтобы можно было воссоздать ситуацию.
Перестаньте сомневаться в своих перспективах
Конечно, кажется, что нет никаких шансов, что вы когда-нибудь станете известным, востребованным программистом. Ну да, вряд ли вы им станете. А надо ли? Технологии развиваются, популярность (востребованность) кратковременна, поэтому стоит занять свою нишу, в который вы чувствуете себя комфортно. И развиваться в ней, но не чтобы стать лучшим, а чтобы не остаться позади.
Вместо того, чтобы пытаться изучить несколько технологий за месяц, стремиться к миллионной месячной зарплате, лучше развиваться постепенно, жить, а не выживать. В конце концов, если наличие больших финансовых ресурсов так важно для вас, то, может быть, стоит заняться чем-нибудь другим?
Оставайтесь человеком
Концентрация несчастных людей среди программистов высока, и связано это с отсутствием социальной жизни. Серьёзно, не нужно пытаться быть продуктивным в ущерб здоровью, романтизировать бессонницу, вдохновляясь примерами основателей известных компаний.
Программирование − это просто ещё одна область для изучения, которая не требует отказа от встреч с друзьями, нормального питания, отдыха. Всё это − базовые, необходимые для функционирования организма вещи. Делать вид, что они подождут, глупо. Так или иначе, бесконечное обучение может вызвать отвращение к тому, что вы изучаете.
Заключение
Главное − критическое отношение ко всему. Идеальных формул нет, и если вы видите, что все увлекаются новой книгой о программировании, которая вам неинтересна, не стоит тратить время впустую. Каждый раз, когда вы вкладываете свое время во что-то, вы отказываетесь от возможности заняться чем-то другим. Качество, а не скорость − вот долгосрочная стратегия.
И последнее: прежде чем следовать советам из этой статьи, оцените, совпадают ли наши идеи с вашими принципами.
Понравился разбор ошибок новичков в программировании? Возможно, вас заинтересует следующее:
- 5 столпов программирования, с которыми вы точно освоите азы
- Советы программистам, которые учатся самостоятельно
- 25 самых популярных мифов о программировании и программистах
Источник: Обзор популярных ошибок новичков в программировании на Medium