Все совершают ошибки, особенно в начале пути программиста. Но зная о всех «граблях», можно постараться обойти их стороной. Ниже — 15 промахов, которые допускают новички в разработке, с примерами, юмором и советами, как их избежать.
Без английского и баг не пофиксишь
Некоторые новички думают, что в программировании можно обойтись без английского. Первое время вроде бы все идет неплохо: иногда и документация на русском найдется, и переводчиком можно воспользоваться. Но без английского рост быстро упрется в потолок. Большинство свежих материалов, документации и обсуждений — на английском. Ошибки от компилятора тоже обычно на английском, да и в международной команде без языка никуда. Английский для разработчика — обязательный навык.
Совет: не откладывайте изучение. Читайте документацию и статьи в оригинале (или с переводчиком), смотрите технические видео с субтитрами. Постепенно вы привыкнете, и поиск решений станет гораздо проще.
Тонны теории, ноль практики
Можно пройти десятки курсов и прочесть горы книг, но так и не стать разраюотчиком. Знания без практики — как учебник по плаванию без бассейна. Теорию вы выучили, а вот плавать (то есть кодить) так и не научились. Частая ошибка новичков — застрять в вечном обучении и бояться перейти к реальному проекту.
Совет: сразу применяйте новые знания на практике. Придумайте небольшой учебный проект и регулярно добавляйте в него все, что изучили. Освоили массивы — решите задачку с массивами; прочитали про новую технологию — попробуйте ее в деле. Опыт приходит только с практикой.
Сначала кодим, потом думаем
Многие так рвутся писать код, что берутся за дело без всякого плана. Потом оказывается, что не учли нечто важное — данные организованы неудобно, половину работы приходится переделывать. Вы будто построили дом, а про дверь забыли.
Совет: перед тем как кодить, набросайте план решения. Продумайте основные шаги и структуру программы, прикиньте возможные подводные камни. Это спасет от крупных переделок. Только не уходите в долгие раздумья — баланс важен.
Усложнять готовые решения
Про «изобретение велосипеда» слышали все, но новички все равно частенько пишут свое там, где есть готовое. В итоге время потрачено, а результат хуже. Классика: свой движок сайта вместо популярного фреймворка, самописная сортировка вместо встроенной функции.
Совет: прежде чем делать что-то с нуля, поищите готовые решения. Скорее всего, нужный функционал уже реализован в виде библиотеки или сервиса. Использовать готовое — не стыдно, а разумно: вы сэкономите время и избежите лишних багов.
Стесняюсь спросить
Новичку бывает страшно задать вопрос: вдруг он глупый, и коллеги подумают, что вы некомпетентны. В итоге можно два дня биться над задачей, которую опытный разработчик решил бы за пять минут. Это и есть синдром самозванца: ощущение, что все вокруг умнее, а вы один ничего не знаете. На самом деле любой сеньор когда-то был джуном и тоже учился.
Совет: попробуйте разобраться сами,поискать в Google, почитать документацию. Если застряли — не бойтесь попросить помощи. Лучше спросить, чем потратить неделю впустую.
ТЗ не читал, но код пишу
Новичку дали задачу, а он поленился уточнить детали и сразу написал решение «как понял». В итоге получилось не то, что требовалось заказчику или тимлиду — время потрачено зря, всё переделывается.
Совет: лучше задать уточняющие вопросы в начале, чем переписывать всё в конце. Если что-то неясно в требованиях, обсудите это с менеджером или коллегами. Это сэкономит и ваше, и их время, и покажет вашу внимательность.
Копипаст без понимания
Найти готовый код на Stack Overflow — удача для новичка. Только большая ошибка — вставить его в проект, не разобравшись, как он работает. Можно получить мгновенный результат… все может полететь при первом нестандартном случае. А исправить не получится — ведь непонятно, что делает этот инородный код.
Совет: используйте чужой код для примера, но разбирайтесь в нем. Лучше понять каждую строку, адапатировать решение под свою задачу. Иначе вы закладываете в проект бомбу замедленного действия и лишаете себя ценного опыта.
Не тестирую, и так сойдет
Программа заработала — и новичок тут же берется за следующую задачу, почти не проверив код. В голове мысль: «раз сейчас все работает, значит, все правильно». Увы, стоит ввести неожиданные данные — и все падает. Просто этот случай не был протестирован.
Совет: всегда тестируйте свой код, хотя бы вручную. Попробуйте сломать программу: введите неправильные данные, очень большие числа, необычную последовательность действий. Лучше найти ошибку самому, чем узнать о ней от пользователя или команды. Привычка проверять себя экономит уйму времени и нервов.
Нечитабельный код
Когда пишете код, вам-то всё ясно. Но важно, чтобы было ясно и другим (и вам же через месяц). Новички часто не думают об этом: называют переменные a и data, делают функции на 200 строк, дублируют одинаковые куски кода. В итоге получается нечитаемый «спагетти-код».
Совет: следите за чистотой кода с самого начала. Давайте переменным и функциям осмысленные названия, разбивайте сложные части на подфункции, убирайте дублирование. Код чаще читают, чем пишут — пусть его будет легко понять.
Перебор с комментариями
Комментарии в коде нужны, но в меру. Некоторые новички, стремясь сделать код понятным, начинают комментировать каждую строчку. В результате кода 10 строк, а комментариев — 20: x = x + 1; // увеличиваем x на 1. Такие пояснения очевидного только мешают чтению.
Совет: не надо объяснять в комментариях каждую мелочь. Пишите код понятно, а комментарии оставляйте для действительно сложных мест или пояснений. Хорошие имена переменных и функций зачастую лучше подробного комментария.
«Работает — не трогай»
Новичок написал код, он вроде выполняет задачу — и ладно, зачем улучшать. В результате копятся неоптимальные решения, временные заглушки остаются навечно, технический долг растет. Если опытный коллега делает замечания, джун может проигнорировать: раз на результат не влияет, можно не править.
Совет: не бойтесь улучшать код, даже если он уже работает. Рефакторинг и оптимизация — часть работы. Прислушивайтесь к советам опытных разработчиков: их обратная связь помогает расти. Никто не пишет идеальный код с первого раза, хороший результат получается через итерации и улучшения.
Леплю костыли вместо решений
Программа падает с ошибкой, а вы вместо поиска причины просто обходите проблему. Например, ловите исключение и ничего с ним не делаете или вставляете задержку sleep, надеясь, что «само пройдет». Формально ошибка перестала появляться — но вы просто прилепили костыль. Такой подход дает быстрый эффект, но делает код хрупким и непредсказуемым. Рано или поздно все рухнет.
Совет: находите и исправляйте корень проблемы, а не маскируйте ее. Если не получается — обсудите с коллегами или наставником. Лучше потратить больше времени на нормальное решение, чем потом разгребать ворох новых багов.
Без Git-а и бэкапов
Кто терял несохраненный код — знает эту боль. А если еще не теряли, то рискуете, если не делаешь бэкапы. Некоторые новички хранят проект только локально, считая контроль версий чем-то ненужным: «я же один, зачем мне этот Git». Но стоит компьютеру сломаться или случайно удалить файлы — и результаты работы исчезнут. А совместная разработка без Git-а и вовсе превратится в хаос.
Совет: используйте контроль версий с самого начала. Даже для учебного проекта заведите репозиторий — на GitHub, GitLab или других сервисах. Коммитьте изменения, отправляйте их в облако — так у вас всегда будет резервная копия и история правок. Это спасет от многих неприятностей.
Сначала прокрастинация, потом аврал
Без навыка тайм-менеджмента легко впасть в две крайности: прокрастинировать или потом героически кодить ночами в режиме аврала. Типичный сценарий: вы откладываете задачу, отвлекаясь на интернет и мелкие дела, а когда до дедлайна остаётся мало времени — устраиваете марафон кодинга на кофе и нервах. Качество кода при этом падает, вы выматываетесь.
Совет: работайте регулярно, а не рывками. Разбейте проект на части и делайте понемногу каждый день. Ставьте личные мини-дедлайны, отключайте отвлекающие уведомления. Так вы избежите ночных авралов и стрессов, а результат будет лучше.
Сон для слабаков
Гордиться умением работать 24/7 — сомнительная затея. Чем дольше сидишь без отдыха, тем меньше толку: усталый мозг совершает глупые ошибки, пропускает очевидное. А постоянный недосып и отсутствие выходных ведут к выгоранию, когда работать уже не хочется вовсе.
Совет: соблюдайте баланс работы и отдыха. Давайте себе спать, делайте перерывы, отвлекайтесь от кодинга. Парадоксально, но хороший сон и жизнь вне компьютера повышают вашу продуктивность. Свежей головой вы решите проблему куда быстрее, чем ночным измученным мозгом.
В сухом остатке. Ошибаться — нормально. Если узнали себя в каких-то пунктах — не беда, теперь вы знаете, над чем работать. Даже опытные разработчики когда-то наступали на эти же грабли — а многие продолжают ошибаться и спустя годы работы. Главное — замечать ошибки и учиться на них, постепенно улучшая свои навыки. Не стесняйтесь обращаться за помощью к коллегам или наставникам, не бойтесь задавать вопросы и обсуждать проблемы.
Программирование — не только знание технологий, но и постоянное саморазвитие, любопытство и смелость пробовать новое. Чем больше ошибок вы совершите в начале пути, тем быстрее вы научитесь их исправлять. Так что относитесь к промахам спокойно, с юмором и без паники. У каждого багфикса есть свой плюс — он делает вас чуть-чуть лучше.
Держите голову холодной, а код чистым — и все обязательно получится. Удачи в коде!