Веб-разработка является областью многих названий. Вы можете быть разработчиком внешнего интерфейса, разработчиком пользовательского интерфейса, инженером-программистом или разработчиком внутреннего интерфейса. Если это слишком широко, вы можете назвать себя гуру JavaScript, разработчиком Bootstrap или рок-звездой Node. На самом деле нет предела количеству разнообразных (а иногда и нечетных) должностей, которые распространяются по нашей отрасли. Почему существует так много разных должностей? Они существуют, потому что есть очень мало ограничений на то, что вы можете сделать при создании веб-сайтов. Традиционно существует четкая грань между разработкой интерфейса и бэкенда. Тем не менее, обе эти категории имеют свои собственные подсообщества. Фронтальный разработчик может специализироваться на написании CSS или работе с основами пользовательского интерфейса на основе JavaScript, в то время как бэкэнд-разработчик может специализироваться на разработке Ruby или обработке сеансов. Это приводит к вопросу, который вызвал много споров в сообществе веб-разработчиков. Если вы хотите добиться успеха в своей области, на чем вам следует специализироваться? Стоит ли вообще специализироваться? Стоит ли вам стремиться быть разработчиком с полным стеком, который превосходен как во внешней, так и во внутренней среде, или вы должны быть действительно хороши в одном?
Что работодатели просят
Я думаю, что реальный вопрос заключается в том, является ли один тип разработчика более нанимаемым, чем другой. Имея это в виду, имеет смысл сделать шаг назад и попытаться посмотреть, что работодатели сейчас ищут.
По мере роста возможностей сети работодатели ожидают, что разработчики овладеют большим количеством технологий и сред. Это связано с тем, что веб-сайты становятся все более динамичными и интерактивными, поскольку грань между нативными приложениями и веб-приложениями на основе браузера продолжает стираться. В агентстве, в котором я работаю, все больше клиентов запрашивают сайты с возможностями современного веб-приложения вместо простого статического сайта.
Для тех, кто ищет в основном статические сайты, потребность в веб-разработчике продолжает уменьшаться. На самом деле, есть несколько компаний, чья бизнес-модель ориентирована на рынок статических сайтов, позволяя клиентам создавать свои собственные сайты без написания единой строки кода. WordPress.com , Squarespace и Wix , все обещают веб-сайты по очень низкой цене, с каждой платформой, имеющей небольшую кривую обучения и простой пользовательский интерфейс. Навыки программирования не требуются.
Хотя я не верю, что эти сайты выводят веб-разработчиков из бизнеса, я думаю, что они снижают ценность простых навыков HTML, CSS и Javascript, и я думаю, что работодатели начинают это понимать. Они начинают искать более умелых и опытных разработчиков, которые понимают весь стек, от разработки выпадающего меню до развертывания сервера.
Хотя я не верю, что настоящая разработка полного стека очень практична или даже возможна, я верю, что веб-разработчики, которые имеют общее представление о всем стеке, с большей вероятностью будут наняты, чем те, кто этого не делает. Это не значит, что вы должны знать все, что нужно знать о веб-разработке. Вместо этого я думаю, что должен быть список систем и технологий, о которых каждый разработчик должен быть открыт, чтобы узнать больше о них, стремясь повысить уровень, когда у него есть время.
Список
Javascript Jabber недавно выпустил подкаст, посвященный этой самой теме. Они используют большое количество технологий, которые должен понимать конкурентный веб-разработчик. Я собрал некоторые из наиболее распространенных навыков ниже.
- HTML, CSS, Javascript
- Язык бэкэнда
- Контроль версий
- Использование командной строки
- Node / Ruby Tooling
- Препроцессоры
- Клиентские MVC-фреймворки
- Популярные инструменты и фреймворки, такие как Angular, Laravel, Rails и др.
- Понимание систем баз данных
- Понимание серверных сред
- Стратегии развертывания сайта
- Как создать и использовать REST API
- Адаптивная веб-разработка
- доступность
-
Тестирование кода
Вот еще один замечательный список, составленный Луи Лазарисом . Несмотря на то, что ему уже несколько лет, многие из перечисленных технологий все еще широко используются сегодня.
Не паникуйте
Просматривая эти списки технологий, вы должны начать понимать, что вы, по крайней мере, слышали о большинстве из них. Кроме того, никто не ожидает, что вы будете экспертом в каждом инструменте или технологии веб-разработки. Вместо этого мы все должны быть открыты для получения дополнительной информации о веб-разработке в целом, дополняя наши знания новыми инструментами и технологиями, когда это возможно.
Также важно помнить, что умеренный уровень специализации хорош. Веб-разработчик может отлично разбираться в сложных макетах CSS, но при этом понимать, как писать JavaScript, который добавляет новые функции в приложение. Несколько компаний и агентств (включая мое) работают так, что один разработчик пишет код для внешнего интерфейса, а другой — код для сервера. Такой командный рабочий процесс работает лучше всего, когда каждый разработчик имеет умеренное понимание того, что делает другой.
Вывод
Сосредоточить свою карьеру на конкретном инструменте или технологии может быть плохо, если это мешает вам развивать свой набор навыков. По мере роста возможностей сети для веб-разработчиков становится все более понятным понимание всего стека. У нас все еще есть свобода быть лучше в определенных областях, но по мере того, как макет становится дешевле, а интерактивность становится все более востребованной, ожидаются простые навыки работы со шрифтами и навыки разработки приложений. Может быть тревожно слышать, что работодатели ищут полный стек по специализации. Энди Шора очень хорошо подводит итог этого чувства.
По правде говоря, никто не ожидает, что вы закодируете все приложение от начала до конца, начинаете заканчивать, все самостоятельно. Вы не должны работать на кого-то, кто просит вас сделать это. Если вы можете хорошо выполнять пять-десять вещей и готовы учиться и переходить на другие 100+, с которыми вы не знакомы, вы пользуетесь спросом.