Верстальщик vs Разработчик Front-end

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

Выделю специальность «верстальщик». Варианты термина на английском: layout designer, web coder.
Верстальщик преобразует графический макет (Photoshop или иной) в набор HTML + CSS + картинки. Иногда к свёрстанному макету может подключить типовые библиотеки JavaScript, например, slider для картинок, light-box для видео-клипов, всплывающие подсказки (tooltip) или диалоговые окна (dialog popup).
Знания и навыки:

  • работа с графическими программами, чтобы понять, как собран макет и экспортировать из макета отдельные графические элементы
  • знание HTML/HTML5, CSS/CSS3
  • понятие про форматы PNG/JPG/SVG, веб-шрифты, спрайты и другие технологии работы с изображениями
  • пригодятся знания по HTML-фреймворкам, например, 960 Grid System, Twitter Bootstrap или Semantic UI
  • также полезными буду знания по препроцессорам CSS (SASS, LESS, SCSS, Stylus) и препроцессорам HTML для ускоренной («рапидной») вёрстки (Haml, Slim/Plim, Jade)
  • навыки кроссбраузерной вёрстки, чтобы в разных браузерах выглядело и работало одинаково
  • навыки отзывчивой вёрстки, чтобы можно было использовать на устройствах с разными возможностями и разрешениями
  • знание типовых решений JavaScript, чтобы реализовать простейшие вещи, заложенные в макете (см. Какие задачи нужно уметь выполнять на JS начинающему? с пометкой важно)

Рекомендую также прочитать Каким образом из дизайн-макета делается вёрстка?

Фронтенд-разработчик делает так, чтобы макеты, полученные от верстальщика, были наполнены реальными данными. Если приложение построено как client-side (то есть вся основная логика загружается в виде огромного javascript в браузер, а данные запрашиваются с сервера по AJAX; это называется «жирный клиент» / Rich Internet Application), то фронтенд-разработчику потребуется следующее:

  • знание HTML/HTML5, CSS/CSS3
  • понятие про форматы PNG/JPG/SVG, веб-шрифты, спрайты и другие технологии работы с изображениями
  • знания по AJAX, WebSocket, Comet и другим технологиям асинхронной передачи данных; что такое CORS; навыки создания тестовых «затычек» на стороне сервера, чтобы можно было разрабатывать асинхронный обмен данными, пока бакенд не готов
  • пригодятся знания по HTML-фреймворкам, например, 960 Grid System, Twitter Bootstrap или Semantic UI
  • полезными буду знания по препроцессорам CSS (SASS, LESS, SCSS, Stylus) и препроцессорам HTML (Haml, Slim/Plim, Jade)
  • глубокое знание Javascript, включая использование готовых фреймворков, библиотек и написание расширений для них, что подразумевает объектно-ориентированное и событийное программирование (см. Какие задачи нужно уметь выполнять на JS начинающему?)

Если фронтенд строится на стороне сервера, то дополнительно потребуется знать используемый серверный язык программирования (например, Python, Ruby или PHP) и используемый фреймворк (Django, Ruby-on-Rails, Yii). На практике бывало такое, что фронтендер просил в нужной части проекта сделать var_dump от структуры данных, которую надо показать и перечислить серверные методы, которые надо вызвать по нажатию предполагаемых кнопок.
Зачастую фронтенд-разработчик может и сам закодировать эти серверные методы, если не требуется углубляться в серверную логику (отношения в данных, конкретная бизнес-логика, хранение данных, кэширование, очереди, крон-задачи). Я лично таких очень ценю.

И моё личное мнение — фронтенд разработчику не помешают базовые знания про UML. Иногда с ними так тяжело обсуждать обмен данными по AJAX. У них это какой-то непрерывный поток магической энергии, волшебным образом преобразующийся в буковки на экране пользователя, а вот для бакенда это набор отдельных операций, иногда ещё и асинхронный.

 

webmentor.pro — твой надёжный друг, опытный советник и поддержка
Программы поддержки при изучении проектирования и разработки веб-приложений, новых языков программирования и веб-технологий.
Опросник по стеку технологий для веб-разработчика
Быстрая оценка текущего уровня знаний. Графики личного профессионального роста. Виджеты для портфолио. Рекоментации по эффективному повышению уровня знаний.

Павел Волынцев

Уже более 15 лет занимаюсь разработкой веб-проектов. Fullstack Senior Developer. IT евангелист — доношу свет знаний об информационных технологиях. Профессиональные цели: Дать людям возможность дать людям больше.

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

  • Pingback: backend vs frontend | Блог о веб-разработке и веб-технологиях()

  • Pingback: Как самостоятельно переучиться на веб-разработчика? | Блог о веб-разработке и веб-технологиях()

  • Постоянно встречаю спрайты))) А что это не знаю))
    С Html и css знаком уже не первый год.
    в мае начал изучать js.

    • Спрайты — много изображений в одном файле, а через CSS делается так, чтобы был виден только один фрагмент этого избражения. Это могут быть GIF/JPG/PNG/SVG файлы. Описание: https://learn.javascript.ru/css-sprite

  • Игорь

    Стоит заметить, что верстальщики уже не востребованы, а во фронтенде конкуренция намного выше чем в любой другой области разработки. Сам Пол года назад устроился. Пришлось пройти 8 собеседований. Знал React, Node.js, Gulp, Webpack, SCSS, Jade, JS/Typescript. Сейчас это сфера у всех на слуху. Говорят, что тут легко, но с нынешней конкуренцией быстрее и проще работу на Шарпе или Джаве найти да и денег больше платить будут.

    • Не соглашусь. Если искать именно вакансию верстальщика — такие есть. Знания технологий для front/back — желательны, но не обязательны на момент трудоустройства. Результат их работы — не сайт, а отдельные страницы.

      • Игорь

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

        • Да, небольшие студии. С несложных проектов начинать проще.
          Английская пословица «Learn to walk before you run» (прежде чем бегать, научись ходить)
          Вот интересный рассказ об опыте трудоустройства новичка https://geekbrains.ru/posts/case_web_developer

    • На чистом HTML сайтов уже (почти) нет. Поэтому в вакансиях на вёрстальщика помимо HTML/CSS указывается требование знать какой-нибудь язык программирования. Но знания требуются очень поверхностные — чтобы только в синтаксисе разбирались.

      Такая вот типовая задача: исправить вёрстку уже давно готового блока, который уже из HTML перенесён в программный код. Верстальщику надо понять, в каком файле хранится нужный фрагмент кода HTML и в каком файле стили к нему.

    • Федя

      Все лезут во фронт, думая, что это прощено. Но все же от задач зависит. Обычно с бекэндом даже проще тк во фроне все слишком нестабильно, а если ие8 нужно поддерживать в сложных проектах, то это вообще кошмар. В целом, даже не знаю какие есть плюсы того, чтобы во фронт лезь. Там и сложнее(хотя все от проекта зависит), и технологии очень быстро меняются да и конкуренция выше.

      • Как fullstack скажу, что обе стороны (back и front) не простые. Очень много технологий придётся изучить и там и там. И разные. Если хочется творить, то это будет выглядеть по-разному. У «фронтов» могут быть красивые интерактивные сайты (SPA, анимация), у «бакендов» — быстрые или «сложно-сочинённые» сервисы (микросервисы, интеграции, highload).

        http://copist.ru/blog/2015/08/26/backend-vs-frontend/ — про выбор «backend или frontend»
        https://copist.ru/ru/blog/2017/04/13/backend-remote-developer/ — план на backend разработчика