[Перевод] 8 ошибок начинающих JavaScript-разработчиков, мешающих стать профессионалом
Быть JavaScript-разработчиком круто, поскольку на рынке труда постоянно растет нужда в хороших JS-программистах. В наше время очень много фреймворков, библиотек и прочего, что можно использовать в работе, — и в значительной степени мы должны быть благодарны за это opensource-источникам. Но в какой-то момент разработчик начинает тратить на JS-проекты слишком много времени по сравнению со всеми остальными задачами.
Весьма вероятно, что в будущем это приведет к катастрофическим последствиям для вашей карьеры, но пока вы этого не осознаете. Я сам в прошлом допустил некоторые ошибки, описанные ниже, и теперь хочу уберечь от них вас. Вот восемь ошибок JS-разработчиков, которые могут сделать ваше будущее не слишком радужным.
Напоминаем: для всех читателей «Хабра» — скидка 10 000 рублей при записи на любой курс Skillbox по промокоду «Хабр».
Skillbox рекомендует: Образовательный онлайн-курс «Java-разработчик».
Использование jQuery
jQuery сыграл огромную роль в развитии всей экосистемы JavaScript. Изначально JS использовался для создания слайд-шоу и разного рода виджетов, галерей изображений для сайтов. jQuery позволил забыть о проблемах с совместимостью кода для разных браузеров, стандартизировав использование уровней абстракции и работу с DOM. В свою очередь, это помогло упростить AJAX и проблемы с кросс-браузерными различиями.
Однако сегодня эти проблемы не столь актуальны, как прежде. Большая их часть была решена путем стандартизации — например, это касается fetch и селекторов API.
Оставшиеся проблемы решаются другими библиотеками, такими как React. Библиотеки дают и много других возможностей, которые недоступны для jQuery.
Работая с jQuery, в какой-то момент вы начинаете делать странные вещи: например, использовать элементы DOM в качестве текущих состояний или данных, а также писать ужасно сложный код только для того, чтобы выяснить, что там с предыдущим, текущим и будущим состоянием DOM, в дополнение к обеспечению надлежащего перехода к предстоящим состояниям.
Никто не запрещает использовать jQuery, но уделите время, чтобы больше узнать о более современных альтернативах — React, Vue и Angular — и их преимуществах.
Отказ от unit-тестирования
Я часто вижу, как люди игнорируют юнит-тесты для своих веб-приложений. Все идет прекрасно — до того момента, пока приложение не падает с «unexpected error». И в этот момент мы получаем огромную проблему, поскольку теряем время и деньги.
Да, если приложение нормально компилируется, не выдавая ошибок, а будучи скомпилированным, работает, — это не означает, что оно готово к использованию.
Отсутствие тестирования еще более-менее приемлемо для небольших приложений. Но когда программы большие и сложные, их тяжело обслуживать. Поэтому тесты становятся чрезвычайно важным элементом разработки. В этом случае изменение одного компонента приложения не приведет к повреждению другого.
Начните использовать тестирование незамедлительно.
Изучение фреймворков прежде JavaScript
Я прекрасно понимаю тех, кто, приступая к разработке веб-приложения, сразу же начинает использовать популярные библиотеки и фреймворки вроде React, Vue или Angular.
Раньше я говорил, что сначала нужно выучить JavaScript, а потом фреймворки, но теперь я убежден, что все это нужно выполнять одновременно. JS меняется крайне быстро, так что какой-то опыт использования React, Vue или Angular надо получить одновременно с изучением JavaScript.
Это начинает сказываться и на требованиях, выдвигаемых к кандидатам на должность разработчика. Вот, например, что я нашел, поискав в Indeed по ключу «JavaScript».
В описании к вакансии говорится, что им нужно знание jQuery И JavaScript. Т.е. для этой компании оба компонента одинаково важны.
Вот другое описание, в котором указаны лишь «базовые» требования:
И так примерно в половине вакансий, которые я просмотрел. Тем не менее я считаю, что правильное соотношение времени на изучение JS и фреймворков — примерно 65% к 35%, а не 50 на 50.
Нежелание знакомиться с концепцией «чистого кода»
Создавать чистый код должен учиться каждый начинающий разработчик, если он желает стать профессионалом. С концепцией «чистого кода» стоит ознакомиться еще на старте карьеры. Чем раньше вы начнете следовать положениям этой концепции, тем раньше вы привыкнете сразу писать чистый код, который легко обслуживать впоследствии.
Кстати, чтобы понять преимущества хорошего и чистого кода, вам не нужно самим пробовать писать плохой код. Ваши навыки пригодятся позже, во время работы, когда вы ужаснетесь на чужой плохой код.
Слишком раннее начало работы над большими проектами
В начале своей карьеры я совершил большую ошибку: попытался взяться за крупный проект, когда ещё не был к этому готов.
Вы можете спросить, что здесь не так. Ответ есть. Дело в том, что если вы не миддл и не сениор, то вы, скорее всего, не сможете закончить ваш «большой проект». В нем будет слишком много элементов и вещей, которые нужно учесть. И вы не справитесь, если еще в самом начале своей карьеры не выработали привычку писать «чистый код», использовать тесты, масштабируемую архитектуру и т.п.
Допустим, вы все-таки потратили кучу времени на этот проект, не завершили его, а теперь пытаетесь перейти на уровень миддла. И тут внезапно понимаете, что не можете показать кому-либо этот код, потому что он не очень хорош и нужен рефакторинг. Однако на этот «проект века» вы потратили кучу времени, и теперь у вас нет примеров хорошей работы, которые можно добавить в портфолио. И вы уступаете одно собеседование за другим другим тем кандидатам, которые могут показать свои работы, пусть и не очень крупные, в портфолио.
В любом случае, в будущем вам придется провести рефакторинг, поскольку и код не слишком хорош, и технологии вы использовали не совсем те, что нужно. В результате вы понимаете, что проще все переписать с нуля, чем пытаться исправить.
Конечно, все это можно добавить в портфолио, но потенциальный работодатель увидит там массу недостатков и придет к неутешительным для вас выводам.
Нежелание изучать структуры данных и алгоритмов
Можно долго спорить о том, когда нужно начинать изучать структуру данных и алгоритмы. Кто-то предлагает делать это еще до освоения JavaScript, кто-то — после.
Я считаю, что на старте учить это детально необязательно, но разбираться в алгоритмах стоит, поскольку это даст базовое понимание работы компьютерных программ и расчетов.
Алгоритмы — неотъемлемая часть любых расчетов и программ. Собственно, сами компьютерные программы — это сочетание набора алгоритмов и данных, структурированных определенным образом, вот и все.
Отказ от физической активности
Для разработчика очень важно заниматься спортом. Я не тренер, но наблюдал, как меняется мое тело — год за годом. Поэтому могу рассказать, к чему приводит отсутствие физических упражнений.
Моя первая работа была довольно проблемной по целому ряду причин, и одна из проблем была как раз в том, что всего за год я набрал почти два десятка килограммов. Тогда я активно изучал JavaScript.
Если вы не будете заниматься спортом, то рискуете набрать вес, и негативных последствий у этого будет много: ожирение, мигрени (включая хронические), повышенное артериальное давление и т.п. Список проблем воистину бесконечен.
Социальная самоизоляция
Семья и близкие — это важно. С головой погрузившись в изучение JavaScript и недооценивая важность своей психической и эмоциональной жизни, вы рискуете погрузиться в депрессию, стать раздражительным, перестать нормально спать и много чего еще.
Выводы
Надеюсь, что-то из этого вам пригодится. Если вы позаботитесь о себе сегодня, то вам не придется исправлять ошибки позже.
Skillbox рекомендует: