Что значит быть Full Stack разработчиком?

Сегодня попасть в сферу веб-разработки не так уж и сложно, но с каждым днём на это требуется всё больше сил и знаний.

Динамичный характер данной отрасли заставляет постоянно осваивать новые техники, инструменты и языки программирования.

Ушли в прошлое те дни, когда от разработчика требовался только один язык программирования. Сегодня, для того чтобы сделать достойный проект, программисты должны знать целый ряд различных технологий.

Что значит full stack разработчик?

Термин full stack описывает разработчика, который одинаково хорошо справляется с написанием фронт-энда и бэк-энда.

Чтобы быть более конкретным, это означает, что разработчик может работать с базами данных, PHP, HTML, CSS, JavaScript, а так же может превратить Photoshop-ый макет в готовый к использованию шаблон.

Full stack разработчику не нужно быть супер профессионалом во всех областях и технологиях, в которых он должен работать, потому что это практически невозможно. Он просто должен уметь работать с этими технологиями.

Что значило full stack в 2000 году и что значит сейчас?

2000 год был очень давно, в этом году был выпущен PHP 4.0. Да, 4.0. Тогда, хороший веб-разработчик знал немного HTML, CSS и процедурный PHP, потому что собственно ООП появился в версии 5.0.

Сборка LAMP (Linux - Apache - MySQL - Perl / PHP) был в моде в те годы, практически без альтернативы. В начале 2000-х, если кто использовал контроль версий – то они считались либо технологическими еретиками либо мастерами. Сегодня это смешно, если кто-то не использует данные технологии.

Так, давайте попробуем классифицировать основные требования, которыми должен обладать full stack разработчик:

Системное администрирование

  1. Linux и написание shell скриптов
  2. Облачные технологии: Amazon, Rackspace, и т.д.
  3. Фоновые процедуры: Gearman, Redis
  4. Поиск: Elasticsearch, Sphinx, Solr
  5. Кэширование: Varnish, Memcached, APC / OpCache
  6. Мониторинг: Nagios

Linux по-прежнему самая распространённая операционная система Интернета, используемая в веб-разработке (не считая .NET). Кроме того, full stack разработчик должен знать, как работает облачный хостинг, Amazon / Rackspace.

Поиск является неотъемлемой частью большинства веб-сайтов - разработчик должен знать, как настроить и использовать поисковые серверы, такие как Sphinx или Elasticsearch.

Кэширование также важно: Varnish, обратный прокси, Memcached.

Инструменты веб-разработки

  1. Контроль версий: Git, Mercurial, SVN
  2. Виртуализация: VirtualBox, Vagrant, Docker

Сегодня неприемлемо не использовать контроль версий, даже если вы разработчик одиночка.

Используя средства виртуализации и среды разработки на основе каждого проекта легко настроить с помощью VirtualBox и Vagrant.

Если вы хотите работать с Vagrant вы должны знать, основной синтаксис Ruby.

Бэк-энд технологии

  1. Веб-серверы: Apache, Nginx
  2. Языки программирования: PHP, NodeJS, Ruby
  3. Базы данных: MySQL, MongoDB, Cassandra, Redis, SQL / JSON в целом

Знание тонкостей работы с Apache и Nginx - это норма. Full stack разработчик должен знать, как настроить данные инструменты.

PHP должен быть освоен на высоком уровне, NodeJS, Ruby – как можно лучше.

В дополнение к веб-серверам и языкам программирования, full stack разработчик должен знать как работать с различными базами данных.

Реляционные (например, MySQL, PostgreSQL) и нереляционные базы данных (как MongoDB, Redis или Cassandra) различия между которыми full stack разработчик должен знать, наряду с XML / JSON.

Фронтальные технологии

  1. HTML / HTML5: Семантический веб
  2. CSS / CSS3: LESS, SASS, Медиа запросы
  3. JavaScript: JQuery, AngularJS, Knockout, и т.д.
  4. Особенности совместимости всех браузерах
  5. Адаптивный дизайн
  6. AJAX, JSON, XML, WebSocket

JavaScript, который изначально никто не воспринимал всерьёз, сегодня превратился в один из самых популярных и мощных языков. Новые методологии и структуры появляются каждый день: MVC, MVVM, MVP, Angular, Knockout, Ember, и т.д.

Наряду с HTML, CSS, Javascript, full stack разработчик должен знать о принципах работы с медиа-запросами CSS, а так же препроцессорами, такими как LESS и SASS.

Следует также знать, как работать с технологиями AJAX или WebSocket.

Дизайн

  1. UI
  2. UX
  3. Преобразование веб-дизайна в код

В дополнение к интерфейсным технологиям, full stack разработчик также должен уметь преобразовать макет сайта в полноценный шаблон, используя HTML / CSS / Javascript.

Так же вам могут потребоваться знания самых разных технологий. Если вы хотите настроить Vagrant вам нужно знать синтаксис Ruby, а для более эффективной работы с DOM не обойтись без JQuery.

Ещё одна категория, которая заслуживает упоминания это мобильные технологии. Это очень динамичная отрасль, которая тесно связана с веб-разработкой:

  1. IOS
  2. Android
  3. Гибрид: PhoneGap, Appcelerator

Full stack разработчик должен иметь хорошее представление об этих технологиях.

Хорошо ли быть full stack разработчиком?

Быть full stack разработчиком значит быть открытым к новым технологиям, понимать каждую из них и иметь представление о том, как развить веб-приложение от стадии проектирования - до готового продукта.

Данный урок подготовлен для вас командой сайта ruseller.com
Источник урока: http://www.sitepoint.com/full-stack-developer/
Перевел: Станислав Протасевич
Урок создан: 30 Сентября 2014
Просмотров: 76825
Правила перепечатки


5 последних уроков рубрики "Разное"

или авторизуйтесь, чтобы добавлять комментарии, оценивать уроки и сохранять их в личном кабинете
  • 1 Октября 2014 00:39
    СиротА
    на мой взгляд это просто невозможно... Ибо пока изучать будешь, придут новые технологии и техники, таким образом full stack разработчик просто постоянно будет изучать, а практики не будет... Вообще считаю что быть универсалом далеко не комильфо... Ибо универсал это не профессионал... ИМХО.
    • 1 Октября 2014 09:51
      stas.protasevich
      Я всё-таки думаю, что это возможно, но требует множества усилий, ведь технологии по сути похожи одна на другую.. и можно поймать эту волну и быстро подстраиваться
      • 1 Октября 2014 11:40
        СиротА
        Ну да Моцарт тоже в четыре года уже сочинял))
  • 1 Октября 2014 01:24
    sv2109
    Термин "full stack разработчик" придумали работодатели, которые хотят нанять 1 человека, который бы им и сервер настроил и программировал и логотипчик в фотошоп мог сделать и даже приложение для андроида. А еще чтобы сео знал чтобы их сайт в топ вывести.
    • 1 Октября 2014 02:04
      СиротА
      согласен))
    • 1 Октября 2014 09:51
      stas.protasevich
      Ну да) Зато такие люди стоят очень дорого)
      • 1 Октября 2014 11:52
        KOPC1886
        Не сказал бы
      • 1 Октября 2014 11:58
        flashz1
        нифига они не стоят! Нормальный менеджер не пойдет на такую авантюру, этож ответсвенность на одном человеке, все вопросы к нему, а худшем варианте, творит чо хочет...)) А по зп, так обычно это даже меньше, чем у профи в чем то одном, т.к. изначально наниматель понимает, что человек не специалист в чем то одном, а значит и качество работы ниже...ИМХО
  • 1 Октября 2014 12:05
    micha
    Для меня это немыслимо. Может за бугром их так готовят?
    • 1 Октября 2014 12:08
      flashz1
      Разве что индусов))
  • 1 Октября 2014 21:01
    LTN1
    [facepalm] одним словом. NodeJS - это не язык программирования. Попытка охватить подобный стек технологий приведет к тому, что будет максимум пафоса и минимум эффективности. Тем более, если без упора на какую-либо конкретную часть. "Фронтальную" часть работают фронтэнд-разработчики. Бэкенд - соответственно. Либо ты хороший фронтэнд и дерьмовый бэкенд, либо наоборот. Третий вариант - ты просто дерьмовый. Тема сабжа о "вебмастерах" - это как раз третий вариант. Готовят их везде, точнее они сами всплывают. Большинство из них бросают спустя какое-то время, остальные выбирают направление и становятся профессионалами.
  • 2 Октября 2014 07:53
    kolobok2010
    100% Согласен с LTN1. И еше самое главное, Знатие языка мало что значит. А вот уметь им пользоваться! Когда ти сидишь и пишеш логику.... тебе совсем не до CSS3! там другои сидит и style дрочит! А если ето будет делать один, ни какои проект не закончится!
  • 3 Октября 2014 10:20
    dmlogvinenko
    Раньше этого волшебного человека называли «вебмастером». Который и сервак настроит, и страничку сверстает, и контент набьет. С одной стороны — это и неглубокие знания технологий (не всегда, совсем не всегда) и хреновый дизайн (хороший тут действительно редкость). А с другой — отсутствие проблем менеджмента проектом — всё ведь в одной голове, никакой каши и недопониманий. Один из примеров, кстати, — Библиотека Мошкова. Дизайн так себе (но с оправданиями), зато концепция выдержана.
  • 3 Октября 2014 17:29
    alcorn
    Я full stack разработчик и этим горжусь. Если нужно, что-то решить очень глубоко, то нанимаю узкоспециализированного специалиста. В моём понимании full stack разработчик = технический директор =)
    • 29 Сентября 2015 23:04
      anastasiyaag
      Добрый вечер! Приглашаем в нашу команду Full-stack Web-разработчика. Проект новый, запускаемся на базе компании, инкорпорированной в 2012 году. Сфера деятельности: оказание консультационных услуг по программам лояльности. - Работа над новым HighLoad проектом в качестве ведущего разработчика - Работа над интересным проектом в команде профессионалов Офис: метро Спортивная; - График работы 5/2 (есть возможность в режиме home-office, с посещением офиса 2 раза в неделю); - Оформление по ТК; - Заработная плата обсуждается индивидуально с успешным кандидатом + отличный бонус в размере "Оклад +" после запуска проекта. - Опыт работы full stack разработчиком от 2-х лет; - Опыт работы с базами данных (PostgreSQL, Redis, Memcached), опыт работы с большими объемами данных; - Знание python (flask, pytest, epydoc) и его экосистемы, опыт программирования от 2-х лет; - Знание HTML5, CSS3, опыт программирование на JavaScript от 2-х лет, знание AngularJS, RequireJS; - Знание Java, опыт программирования от 2-х лет,знание JDBC, Concurrency; - Опыт работы с gunicorn, nginx, rabbitmq, git, oauth, rest, less, gradle; - Уверенный пользователь Linux (Ubuntu). С уважением к Вам, руководитель отдела по подбору персонала Анастасия тел./viber:8-915-430-07-69 e-mail: anastasiya-ag@mail.ru
    • 22 Октября 2015 11:49
      Dashik_2
      Поможете найти такого же талантливого как и Вы?) или может быть сами заинтересованы в новой работе? Подробности по почте. dzanina@c-ex.ru skype:dzanina_2
  • 7 Октября 2014 18:38
    vetalreal
    Согласен с большинством высказываний выше, при том что считаю себя full-stack-разработчиком (знаю и владею не всем перечисленным в статье). Решил свои пять копеек добавить: картинка прикольная, но я бы поменял местами Server Side Code с Web-Server.
  • 8 Октября 2014 13:57
    susoev
    Ещё Ленин говорил:" УЧИТЬСЯ,УЧИТЬСЯ И ЕЩЁ РАЗ УЧИТЬСЯ!!! ". Хотя на мой взгляд, проверенный в разных сферах- от строительства до торговли- лучше знать нужных людей, с которыми можно договориться и которым можно доверить выполнение определённой работы... Никогда кустарный труд не был эффективней командной работы... Главное, чтоб организатор знал основы и понимал о чём ведётся разговор ))))), чтобы правильно ставить задачу.
  • 22 Октября 2015 11:54
    Dashik_2
    Ищу full-stack-разработчика! Работа в Москве, почти в центре. ЗП хорошая! Может кто ищет новую работу, так же как работа ищет нового сотрудника?! Помогите, а?) dzanina@c-ex.ru skype:dzanina_2
  • 1 Сентября 2016 08:08
    cr11
    "Термин full stack описывает разработчика, который одинаково хорошо справляется с написанием фронт-энда и бэк-энда." скорее одинаково плохо
^ Наверх ^