Я посвятила программированию 15 лет.

Мне приходилось создавать сложные системы, отлаживать тысячи строк кода и быть наставником для многих разработчиков-новичков. Я видела все — и хорошее, и плохое, и крайне неприятное.

За свою карьеру я обучила немало начинающих программистов и отредактировала большое количество кода. Тем не менее есть ошибки, которые встречаются так часто, что хочется от досады перевернуть клавиатуру.

Эта статья — не просто желание выпустить пар (хотя, поверьте, мне это необходимо). Прежде всего, это руководство для тех, кто только начинает программировать — будь то самоучка, выпускник курса или студент колледжа, стоящий на пороге мира разработки программного обеспечения.

Если вы только начинаете свой путь в программировании, считайте мою статью шпаргалкой. Избегайте этих ошибок. Они способны затормозить ваше развитие и разочаровать будущих коллег.

1. Мало практикуются

Это упущение новичков не дает мне покоя, потому что программирование — не тот навык, которым овладеваешь за одну ночь.

Программирование подобно игре на музыкальном инструменте — нельзя проснуться в один прекрасный день и вдруг начать играть на гитаре.

На моей первой работе мне поручили создать простое CRUD-приложение (CRUD — create, read, update, delete — создание, чтение, редактирование и удаление — четыре базовые функции управления данными). Мне казалось, что это легко. Прочитав множество руководств в интернете, я полагала, что разработка не составит труда.

Но я ошибалась.

Когда я приступила к написанию кода, меня настиг синдром самозванца. Я наспех проверила код, ни разу не применив его на практике. В результате проект не был выполнен в срок — потребовалось дополнительное время, чтобы завершить его. Я усвоила свой первый урок.

Программирование требует многочасовой практики, позволяющей приобрести опыт путем проб и ошибок. Тем не менее большинство новичков уверены, что напишут идеальный код, прочитав всего несколько туториалов.

Решение: практика, практика и еще раз практика.

Начните с малого — пишите базовые программы, экспериментируйте с циклами и пробуйте себя в мини-проектах. Никогда не забуду первые серии программ, выполненные мной в годы ученичества (результаты казались мне настоящим чудом!):

1. Программа «Hello, World!».

2. Серия программ, определяющих четные/нечетные (odd/even) числа.

3. Серия программ, основанных на алгоритме Фибоначчи.

4. Серия 3D-моделей Bow & Arrow.

5. Cерия простых модулей «вход-выход» (input-output ).

Этот список можно продолжать.

2. Копируют код, не разобравшись в нем

Копипастинг кода из Stack Overflow без понимания его назначения — это не программирование. Я тоже грешила этим. Поначалу чужой код работал. Но лишь несколько минут, затем программа давала сбой. Однажды руководитель моей команды попросил меня объяснить, что я написала, и мне нечего было ответить. Он пришел в ярость: «Как ты собираешься исправлять свой код, если не знаешь, как он работает?».

Это все равно что следовать рецепту, не имея представления о том, что готовишь.

Иногда блюдо может получиться вкусным и красивым, но если этого не произойдет, вы не поймете, что пошло не так.

Это все равно что списать чье-то домашнее задание по математике, не разобравшись в решении задачи.

А что будет, когда вам предложат тесты по математике?

Решение: прежде чем вставлять какой-либо код, постарайтесь понять, зачем он нужен.

Для этого поочередно разберите каждую его строку. Если назначение кода вам не понятно, не стоит его использовать в своей программе.

Можете последовать моему примеру: над каждой строкой вставленного кода пишите краткий поясняющий комментарий.

Таким образом логика кода будет закрепляться в вашем сознании.

3. Боятся отладки

Признаюсь честно: в начале карьеры отладка приводила меня в ужас.

Помню те дни, когда только осваивала навык отладки. Меня охватывала паника, когда приходил отчет о результатах анализа моей программы с красными сообщениями об ошибках, и наставник просил меня отладить и исправить ее. Мне казалось, что это провал и я не гожусь в программисты.

Но однажды я собралась с духом и подумала: я даже не посмотрела, в чем заключается ошибка. Именно тогда мне стало ясно, что боюсь не столько ошибок, сколько возможности выглядеть невеждой в глазах коллег.

Я просто нажала кнопку отладки, зашла в строки кода и посмотрела на значения переменных. Ошибка оказалась необработанным исключением во вложенном цикле. Я почувствовала себя победителем.

Со временем я поняла: отладка подобна решению головоломки — это не наказание, а часть игры.

Новички обычно замирают при виде сообщений об ошибках, воспринимая их как личные неудачи, а не как подсказки, ведущие к решению. Избегая отладки, вы упускаете возможность улучшить свои навыки.

Решение: относитесь отладке как к занимательному процессу.

Перенесемся на несколько лет назад, когда я работала над очень сложным веб-приложением. Ошибок не было, но код работал не так, как ожидалось. Тогда я увидела в этом вызов, как детектив, раскрывающий преступление. После нескольких чашек кофе, преодолевая режущую боль в глазах и пальцах, я обнаружила проблему. Ею оказалась крошечная опечатка в API.

Эта ошибка научила меня относиться с уважением к кропотливому труду, а мой менеджер оценил мою настойчивость и умение решать проблемы. До сих пор помню его слова: «Нам нужно больше таких людей, как она, которые умеют видеть в ошибках возможности, а не препятствия». Все-таки я была создана для того, чтобы стать программистом.

Начните с простых приемов, таких как вывод переменных для проверки их значений или использование отладчика для просмотра кода. Отмечайте каждую исправленную вами ошибку.

Отладка — не враг, это ваш самый ценный учитель.

4. Не разбивают задачи на мелкие части

Однажды мне поручили составлять отчеты о продажах и каждое утро отправлять их по электронной почте руководителю отдела и ведущим продавцам. Я запаниковала, как будто на меня возложили ответственность за продажи компании. Первый проект кода представлял собой сплошной хаос: я пыталась работать над всем сразу.

Старший разработчик порекомендовал мне разбить задачу на более мелкие части. Тогда я сосредоточилась прежде всего на составлении отчета о продажах и корректных цифрах. Затем перешла к загрузке отчета на дэшборд. И наконец, подключила отчет к почтовому серверу и реализовала ежедневную рассылку писем. В результате закончила работу за день до установленного срока.

Новички часто уходят с головой в работу, пишут огромный блок кода, а потом удивляются, почему ничего не работает.

Программирование достаточно сложное занятие — не стоит усложнять его, перегружая себя.

Решение: разбивайте свои задачи на мелкие части.

Например, если создаете калькулятор, начните с написания функции, которая складывает два числа.

Потом определите функцию для вычитания этих чисел. Затем переходите к умножению.

Каждая маленькая победа будет мотивировать вас, приближая к выполнению большой задачи.

5. Не делают копии своих работ

Такое случалось не раз.

Я видела, как новички переписывали свой предыдущий код. Или, что еще хуже, полностью теряли код, потому что не создавали резервной копии.

Ирония заключается в том, что многие из этих же ребят копируют код отовсюду. И все же забывают использовать данный навык, когда это действительно важно!

Я всегда в нескольких местах сохраняю свои наработки, особенно программы с интенсивной версткой, где требуется много форматирования. Иногда верстка нарушается, даже если вы изменили всего одну координату. В таких случаях можно легко вернуться к предыдущей версии, сохранив массу времени и нервов.

Потеря работы подобна ушату ледяной воды, вылитой на голову. Но эту потерю можно предотвратить на 100 %.

Решение: всегда сохраняйте копии своих работ.

Используйте системы контроля версий, такие как Git. Если же этот инструмент кажется пугающе сложным, начните с более простого.

Прежде чем вносить серьезные изменения в код, скопируйте файл и переименуйте его, указав номер версии или дату.

Поверьте, в будущем вы поблагодарите себя за это.

Вот те пять ошибок, из-за которых я выхожу из себя!

Если вы совершаете хотя бы одну из них, не переживайте. Хорошая новость заключается в том, что каждую ошибку можно исправить, если вовремя осознать ее и приложить необходимые усилия.

Читайте также:

Читайте нас в Telegram, VK и Дзен


Перевод статьи Mrunal Natu: 5 Unforgiving Mistakes Beginner Programmers Make

Предыдущая статьяОбучение LLM (и не только) на Go. С Python в люльке