Большинство начинающих программистов совершают одни и те же ошибки. Многие из них даже не совсем ошибки, а скорее особенности поведения. Создатели курсов Java опросили лидеров мнений и собрали наиболее распространенные примеры таких поведенческих ошибок. Если вы начинающий программист, рекомендуем ознакомиться с ними, чтобы в будущем постараться их избежать.
Использование неправильных инструментов
Самая распространенная ошибка – это использование неподходящих инструментов или неправильное использование подходящих. Например, новичок берёт инструмент, о котором услышал в рекламе или прочитал в отзыве, но при этом игнорирует задачу, которую нужно решить с его помощью.
Также начинающие иногда боятся расширять свой набор инструментов. Могут упорно игнорировать Git, основы которого можно изучить очень быстро, могут использовать первый попавшийся редактор кода, устаревшую среду IDE, неправильный фреймворк и т. д.
Например, новички не знают об инструментах VCS, таких как Git, и вместо них используют что-то вроде DropBox для хранения кода. А некоторые даже пишут код в Wordе.
Игнорирование отладки
Отладчик тоже является инструментом, однако этот пункт стоит рассмотреть отдельно, так как он очень важен. Особенно для тех, кто работает со статически типизированными языками программирования, такими как Java, C++ и т.д. Попробуйте делать отладку сразу после написания ваших первых программ. Это чрезвычайно полезная привычка, которая должна закрепиться и стать уверенным навыком к тому времени, как вы устроитесь на работу.
Все современные IDE (а, исправив ошибку предыдущего пункта, вы ведь будете использовать только современные IDE?) имеют отличные встроенные отладчики со всеми необходимыми функциями. Вы можете отлаживать всю программу, ее модуль, отдельную функцию и так далее. Прочтите документацию, посмотрите обучающие материалы на YouTube или попросите помощи у опытного друга. В любом случае исследуйте отладчик.
Копирование без проверки
Поиск решения в интернете и копирование чужого кода на самом деле не является преступлением. Напротив, это значительно ускоряет работу и помогает разработчику в его постоянном обучении. Однако копировать надо с умом. Часто новички не знают, как правильно искать информацию. Копирование кода из первой же ссылки или использование устаревших библиотек – распространённая проблема. Учитесь на чужом коде, попробуйте понять, как он работает, изменяйте его под свою задачу.
Игнорирование модульного тестирования
Часто новички не пишут тесты для своего кода. Некоторые проверяют его, но делают это очень специфическим образом. Например, вручную меняют данные в программе и выводят результат на консоль. От этого метода нужно отказаться сразу, как вы освоите базовый синтаксис.
Привыкаете к модульному тестированию, вам нужно понять все пограничные состояния вашего кода и прорабатывать их. Это одна из наиболее вероятных проблем, с которой вы можете столкнуться.
Зацикленность на курсах и учебниках
Новички часто не знают, где лучше обучаться и как получать новую информацию. Они начинают смотреть видео на Youtube, закупать курсы, половину из которых так и не посмотрят.
И проблема не в том, что курсы или учебники плохи, проблема в отсутствии практики. Если вы хотите научиться играть в баскетбол, разве будете вы годами сидеть за учебниками? Нет, вы отправитесь на площадку и будете бросать мяч. То же самое и с программированием. Не просто читайте/смотрите, а пытайтесь повторять, экспериментировать. Применяйте полученные знания на реальных проектах. Начните создавать тот веб-сайт / приложение / игру, которую вы всегда хотели создать.
Страх и чрезмерная реакция на инспекцию кода
Одна из очевидных ошибок начинающих программистов - резкая реакция на инспекцию кода. Очень часто новички болезненно воспринимают замечания коллег, расстраиваются, спорят, пытаясь доказать свою правоту. Однако, проверка кода – это всего лишь процедура его улучшения. Она актуальна не только для новичков.
Инспекция кода для начинающего программиста – это отличная возможность учиться на работе. И именно в таком ключе стоит воспринимать данный процесс. Помните, что никто не хочет вас обидеть или унизить. Все стараются максимально повысить качество вашего проекта. Конечно, рецензент не святой и тоже может ошибаться. И если вы всё же уверены в своей правоте, то постарайтесь аргументировать мнение спокойно.
Слишком много или мало усилий
Это две крайности. Одни разработчики прилагают слишком мало усилий, из-за неуверенности отказываются от сложной задачи, которую на самом деле способны выполнить. Но даже опытные программисты ежедневно сталкиваются со сложностями и неизвестными проблемами, поэтому важно изменить своё отношение, набраться терпения и больше доверять себе.
Другие, напротив, изводят себя, пытаясь справиться с непосильной задачей, от которой стоило бы давно отказаться.
В результате первый развивается слишком медленно, а второй теряет мотивацию.
Сверхинженерия
Спросите начинающего программиста, каким, по его мнению, должен быть идеальный код. Обычным ответом будет "Конечно, оптимальным!" Обычно это означает «оптимальный» с точки зрения производительности и потребления ресурсов. Звучит логично, но в жизни всё немного иначе.
На самом деле такой ответ в корне неверен, особенно, если речь идет о крупных проектах, которые будут использоваться и поддерживаться в течение многих лет. Опытные разработчики между оптимальностью и удобочитаемостью выберут последнее. Они знают, что оптимальный код Джуниора обычно настолько сложен для чтения и поддержки, что его скорее всего его придется полностью переписать. А если вы видите перед собой ровный отформатированный код без изысков, пусть он и покажется скучным, скорее всего, его создал опытный программист.
Где твои комментарии, чувак?
Встречается две крайности: комментарии могут быть буквально везде и объяснять очевидные вещи, или, наоборот, могут отсутствовать полностью. Пожалуйста, не делайте так. Если участок кода ссылается на другие модули или его назначение не читается без пояснений, добавляйте комментарии.
Комментарии – это не что-то бесполезное, что пишется от нечего делать. Это в некотором роде техническое руководство по сложным системам. Конечно, грамотное комментирование – целая отдельная наука. Но если вы ей овладеете, коллеги будут вам признательны.
Беспорядочное форматирование кода и неприятные имена
Иногда начинающие разработчики не понимают важности стандартизации своего кода. Они еще не осознали, насколько сложно ориентироваться в чужом коде, и не понимают, что пишут не только для себя.
У каждого языка есть набор правил, описывающих корректное форматирование кода. Некоторые IDE уже умеют форматировать код стандартным способом, вам нужно разобраться, как это делается в вашем случае.
Ещё один важный момент – наименование переменных. Если в обучающей задаче int p; выглядит вполне адекватно, то в модуле большого проекта – уже нет. Там вы можете встретить что-то вроде persentOfYearIncome, который хоть и выглядит ужасно, но зато хорошо передаёт смысл.
Не старайтесь использовать короткие имена и писать транскрипты в комментариях. Лучше не поленитесь и подберите понятные имена. Даже если они будут не самые изящные.
Выводы
Не надо бояться ошибок. Их совершают все, даже самые опытные программисты. Это то, на чём мы учимся. Главное не повторять одни и те же ошибки, и вы сможете стать настоящим профессионалом.