Засилье разнообразных профессий так или иначе связанных с вебом продолжает угнетать. Каждый день придумываются новые способы делать то, что давно уже делается, придумываются все новые и новые фреймворки. Но абстракция в разработке повышается и ответственность разработчиков систематически растет. В итоге современные названия веб-профессий больше становятся похожими на хитрый маркетинговый ход, а не на действительно существующие специализации.
В более взрослых отраслях, чем IT, уже давно осели такие дивные непонятные профессии с названиями вроде «коуч-эксперт», «консалтинговый менеджер» или какой-нибудь «клининговый тьютор». Веб-отрасль постепенно постигает та же горькая участь.
Какофония профессий
«Веб-дизайнер», как понятие в русскоязычном пространстве совершенно не совпадает с аналогичным понятием в англоязычном пространстве. Русскоязычный веб-дизайнер занимается составлением коллажа и макетов будущих страниц. Продвинутые веб-дизайнеры, чтобы отличаться от тех, низкоквалифицированных дизайнеров, дополнительно вешают на себя ярлыки «UI/UX дизайнера» или «дизайнера интерфейсов», подразумевая, что они предварительно думают головой, прежде чем рисовать коллажи и макеты будущих страниц и приложений. А особо продвинутые называют себя «арт-директором» или еще как-то так. Тех, кто не успел повесить себе медаль «UI-эксперта», пренебрежительно дразнят операторами фотошопа. Операторы фотошопа же или вообще новички в отрасли целенаправленно пытаются получить гордый титул «UI/UX», подразумевая, что они тут не хухры-мухры, а ребята с серьезными намерениями.
И еще у нас есть отдельная, в последнее время вымирающая, профессия «веб-верстальщика», которая подразумевает перевод нарисованных дизайнером картинок в удобочитаемый и адекватный html+css и иногда с примесью javascript. Если веб-верстальщик знает больше, чем просто набор тегов и немного css, называться «веб-верстальщиком» ему почему-то становится стыдно, и он вешает на себя ярлык «фронтэнд-разработчика», подразумевая, что он делает полноценные приложения в браузере, а не просто режет картинку на дивы и таблички или берет css-бутстрап и просто переопределяет переменные для CSS. Еще более модное название той же самой профессии даже не хочется переводить с английского, потому как по-русски оно звучит не достаточно круто — «клиент-сайд девелопер». По-русски это бы был обычный «разработчик приложений в браузере», а одно время гуглотранслейт буквально это переводил, как «разработчик переднего конца», что звучит скорее оскорбительно. Интересно, что появилась такая профессия в далекие времена ie6, opera8 и ff2 и именно потому, что тем людям, у кого было воспитано чувство прекрасного, не хватало сил и терпения научиться создавать html-файлы, которые одинаково хорошо отображаются в этих самых ie6, opera8 и ff2.
В итоге получаем какофонию профессий, одна из которых непонятнее другой. Веб-дизайнер, дизайнер интерфейсов, веб-верстальщик, фронтэнд-разработчик, клиент-сайд девелопер, джаваскрипт-разработчик...
Систематизируй это
Правильному веб-дизайнеру просто необходимо уметь на выходе выдавать не красивую psd-ai-sketch картинку, а набор html+css+js, полностью готовый к интеграции в существующее приложение. В итоге веб-дизайнер должен еще быть хорошим веб-верстальщиком. Само собой, голову ему тоже стоит использовать в своей работе, поэтому «дизайнер-интерфейсов» как понятие тоже должно отсутствовать. «Веб-дизайнер» и точка.
Тех верстальщиков, которые не готовы придумывать интерфейсы с нуля, а любят возиться с css и оптимизировать рендеринг в браузере и размер правильнее называть веб-технологами. Звучит как минимум гордо. Веб-технолог не верстает странички, и не пишет приложения на ангуларе. Технолог решает проблемы, которые возникают повсеместно — как вращать текст по часовой стрелке, чтобы рендеринг не тормозил на мобильных, как сократить трафик фоновой картинки и как заставить векторные картинки отображаться в мобильной опере.
Правильного фронтенд-девелопера стоит переименовать в простого джаваскрипт-разработчика и не выделываться, потому как мириады инструментов, созданных для веба, принципиально не отличаются от той массы инструментов для какого-либо другого окружения, будь до java, ruby, PHP или еще что-нибудь. Руби-разработчик остается руби-разработчиком вне зависимости от количества гемов и инструментов, используемых в работе. И почему-то его отличают от эрланг-разработчика, несмотря на то, что и тот и другой является в общепринятом смысле «бекэнд-разработчиком». А вот фронтенд-девелопер внезапно должен уметь одинаково хорошо программировать на es6 и react-js и в это же время писать отличный код на TypeScript с AngularJS. Современные реалии должны отличать TypeScript-разработчика от elm-разработчика и знания клиентских фреймворков должны позиционироваться точно так же, как и знания фреймворков у любого разработчика. Джанго-разработчик и разработчик, умеющий писать плагины для ansible принципиально отличаются в базовых знаниях, несмотря на то, что и то и другое написано на питоне.
И читая (или составляя) резюме с пометкой «UX/UI-дизайнер» в первую очередь нужно обращать внимание на то, что кандидат не знает как правильно составить html, не знаком с технологиями браузеров и возможно плохо владеет графическими инструментами для составления полноценных макетов, а не то что этот человек отлично разбирается в том, какого размера кнопку нужно поставить в правый верхний угол и как уменьшить количество кликов, чтобы пользователь зарегистрироваться. C фронтенд-девелопером приблизительно такая же логика — в первую очередь видно и понятно, что работать над интерфейсами ему не интересно и он не умеет, а не то что он с закрытыми глазами на ощупь отличает версию ангулара.
Вместо выводов можно предложить перестать навешивать на себя ярлыки несуществующих или мифических профессий и критично подходить к разработчикам, которые так себя называют.
Комментарии (10)
AndreyRubankov
22.08.2016 16:12По-моему, Web Engineer или более общее Software Engineer очень хорошо описывает уровень программиста.
Программисты должны быть инженерами, а не просто разработчиками (кодерами).
Они должны разбираться в куче всего, что связано с написанием и поддержкой кода + понимать что нужно бизнесу. Если программист не понимает ценности чего-то для бизнеса — он простой кодер.
А из дизайнеров и UI/UX специалистов не нужно делать developer'ов — они и так имеют конкретное различие, верстать не должны, но понимание, как устроена верстка у них должно быть, чтобы не рисовать красивости, которые нереально сложно наложить на html.
azShoo
22.08.2016 16:33+1Я бы, честно говоря, призывал к обратному. Каждый раз, когда я вижу вакансию Django-разработчика, Symphony разработчика, или что ещё хуже, React разработчика — мне хочется плакать.
Фреймворк, технологии и даже язык программирования — всего лишь инструмент. «Везде есть свои особенности и костыли, которые надо знать» — возразите вы.
Да, если вы берете джуниор разработчика — вам полезнее брать того, кто уже набил себе шишек на ошибках, похожих на ваши.
Если вы берете разработчика с приличным багажом знаний, и всё что он знает — как правильно готовить Django, то вы в заднице.
Потому что как только вам понадобится что-то, не укладывающееся в существующий стек технологий, архитектуру фреймворка, или просто не описанное в разделе Django на стаковерфлоу — ваш чудесный Django разработчик словит bsod.
И потом начинается «а давайте здесь впилим монгу, потому что я монго-разработчик».aratak
22.08.2016 17:30Вы абсолютно правы. И, если честно, не понимаю почему вы считаете это "обратным". Это ведь тоже самое! К слову, у обычных разработчиков (серверных, если хотите), а не у "фронтенд-разработчиков" с этим все более-менее аккуратно и очевидно. Фраза "я разработчик и я знаю питон, скалу, руби и эрланг" никого не удивляет и вполне естественна. А вот "я фронтенд-девелопер и умею все, что в браузере работает" звучит раздуто.
Разработчик должен многое уметь и многое знать, постоянно развиваться. Посыл основной статьи был в том, что фронтенд-девелопера стоит переименовать в простого джаваскрипт-разработчика, и не в коем случае не в react/angular-разработчика. Стоит отличать javascript-разработчика от typescript-разработчика, а от elm-разработчика не требовать знать coffeescript. Конечно же, разработчик может знать несколько языков, тогда он будет гордо носить титулы, например, typescript-разработчика и elm-разработчика одновременно.
А вот инструментарных разработчиков вроде django-разработчиков, rails-разработчиками и angular-разработчиками нужно отправлять куда-нибудь учиться, а не программировать. Вместе с операторами фотошопа и верстальщиками.
Кроме того, тенденции серверной разработки говорят нам, что существуют и вполне успешно scala-разработчики, который вообще не умеют писать на java или elixir-разработчики, который ни в зуб ногой в erlang. Это нормально. А возражение «везде есть свои особенности и костыли, которые надо знать» говорит в подкрепление к вашему комментарию и к моей статье одновременно, что действительно везде свои особенности и все надо, мать его, знать.
В статье оспаривалось существование мифических профессий, вроде "фронтенд-девелопера", который о навыках программиста говорит не больше, чем просто "разработчик". Или вроде "UX/UI дизайнера", который как бы и не художник и верстать не умеет и с фотошопом плохо работает. Если проводить параллель "UX/UI дизайнера" с кем-нибудь из вышеперечисленных, то получится такой себе "монго-разработчик"
November
22.08.2016 19:43А как бы вы перевели термин "верстальщик" на английский? Если отказываться от несуществующих профессий, то надо перевести существующую на lingua franca.
aratak
22.08.2016 20:09Отдельного понятия «верстальщик» в англоязычном вебе нет и у нас это звучит, как нонсенс. Человек, который картинки превращает в разметку. Как написано в статье, дизайнер самостоятельно должен заботиться о разметке, а технолог не должен заниматься psd-to-html конвертированием.
Даже больше, верстать верстку адекватно должны уметь все. Та профессия, которая должна заменить верстальщика — «веб-технолог». Это человек, разбирающийся в тонкостях рендеринга браузеров, различных форматов и протоколов передачи данных. В общем-то технолог в общем смысле этого слова есть практически в каждой отрасли и в веб-разработке он тоже смотрится отлично.
vedmaka
22.08.2016 20:45+1Я бы предпочел иметь в штате отдельно дизайнера ( который «занимается составлением коллажа и макетов будущих страниц» ), отдельно «верстальщика» ( который «просто режет картинку на дивы и таблички» ), отдельно JS-кодера и отдельно Backend-кодера. А то, что вы описываете — по моему мнению, это когда «и жнец, и чтец, и на дуде игрец», чем, к сожалению, все больше пестрят вакансии.
TemRhythm
24.08.2016 09:07Давно я ждал подобную статью. Полностью согласен со статьей. Намученный горьким опытом верстки psd макетов горе-дизайнеров, скажу что намного продуктивнее будет иметь дизайнера, который делает шаблоны веб-продукта в html css. Тут сразу появляется большое преимущество по сравнению с рисующими дизайнерами — анимация и другие эффекты будут делаться им и ровно так, как задумал дизайнер. И выглядеть (стоить) продукт будет гораздо лучше (больше), на мой взгляд. А кроссбраузерностью и исправлением технических недочетов как раз таки занимается веб-технолог.
Эх… Поработать бы с командой, которую описал автор статьи…
Xenfield
шедевральная адаптация понятия «front-end разработчик»!)
VDemot
Верно подмечено. Даже как-то обидно стало :-\