Компания
177,19
рейтинг
18 января в 09:35

Разработка → Перевод: full stack разработчик — это миф перевод

Вашему вниманию предлагается перевод любопытной статьи Скотта Хадфилда, CTO и со-основателя стартапа “Hello Pretty”. Сейчас в половине вакансий, связанных с вебом и серверной разработкой, встречается волшебная фраза “full stack”. Чаще всего с эпитетами вроде “джедай”, “супер-герой” и “ниндзя”. Кого ищут все эти люди, и кого им на самом деле удается получить в свою команду?

Конечно, в названии статьи я несколько сгустил краски и full stack разработчики существуют. Но вы никогда такого не найдете. “Настоящие” full stack разработчики существуют — так же как существуют гении и люди, которые программируют с 12 лет. Я слишком часто вижу это словосочетание, и, по моему мнению, единственный вариант найти такого человека — это заняться хантинг-браконьерством. Если у вас не запредельное везение, то все бойцы, подходящие под описание “full stack”, уже давно и надежно трудоустроены.

Я знаком с несколькими ребятами, которые соответствуют описанию “full stack”. И за этими ребятами постоянно гоняется толпа хантеров, что лишь подпитывает миф о том, что у вас получится найти такого разработчика в свой проект.

Описание “full stack developer” так же бессмысленно как “Гений” или “Тот, кто может сделать все что угодно в [вставьте здесь свою предметную область]”.

Раскрою эту мысль поглубже. Иллюстрация ниже показывает неполную версию того самого “stack”, о котором говорится во всех этих вакансиях. В большинстве случаев разработчику нужны только одно или два умения из каждого слоя. Некоторые умения можно получить за пару часов (например, простейшая компиляция с помощью “./configure && make && sudo make install” или использование VPS). Получение других умений может занять годы.



То, что ожидается от “full stack” разработчика надежно выходит за рамки возможностей обычного человека. Такой разработчик должен разбираться в масштабировании приложения до нескольких миллионов кликов в день (в час?), знать что такое “домашние животные vs крупный рогатый скот” и почему это так важно, уметь выбирать между MongoDB и MySQL, применять CAP-теорему, настраивать PaaS и IaaS, владеть дюжиной средств управления конфигурациями для развертывания приложений на Rails, Django, Wordpress, Swift или их комбинации, разбираться в отличиях микросервис-ориентированной архитектуры от монолитных приложений и еще несколько дюжин вещей.

Это значит, что full stack разработчик должен обладать как минимум хорошим пониманием каждого компонента в стеке веб технологий, чтобы иметь возможность принимать обоснованные решения как их использовать. Он также должен уметь объяснить свой выбор менеджерам, желательно простым языком. Да-да, на самом верху стека находятся хорошее владение письменным языком, навыки командной работы и умение донести непростые вещи до менеджеров.

Каждый год новые компоненты добавляются к каждому слою стека. А раз в несколько лет к стеку добавляется новый слой. Вы все еще считаете, что разумно писать в вакансиях “full stack разработчик”? Это не очень умно. Особенно когда вы начинаете искать одного человека, одновременно являющегося специалистом по безопасности, веб разработке, юзабилити и настройке серверов. И такие запросы не то чтобы очень редки.

Вишенка на торте. Так как full stack разработчиков чаще всего ищу стартапы, от этих бойцов также ожидают работы в роли менеджера и общения с пользователями.

Ах, да, и когда CEO заглядывает в офис, нужно настроить принтер и общий доступ к файлам на его новеньком ноутбуке с windows.

Как я уже писал, такие люди существуют. Лично знаю нескольких. Но также я знаю множество великолепных разработчиков, дизайнеров и менеджеров проектов, которые даже близко не подходят под определение “full stack”. И еще больше тех, кто называет себя “full stack разработчиками” и при этом с трудом могут дать определение больше чем дюжине слов из списка выше. И это при том, что в список далеко неполный, в нем даже нет некоторых слоев, например того, на котором живут JRE и Node.js. И тут мы понимаем, что у нас проблема.

В большинстве случаев, когда я видел “full stack” в описании вакансии, на самом деле они искали “очень крутого спеца”.

Самое раннее упоминание “full stack” и “full stack инженера” я видел в посте разработчика Facebook Карла Буэно, который называл этим термином генералиста с сильным уклоном в анализ производительности.

Возможно, “full stack” инженеру или разработчику вообще не нужно писать код. А вместо этого фокусироваться на работе системного архитектора или интегратора. Человек со знанием всего стека технологий может предвидеть проблемы коммуникации и интеграции между слоями до того, как они смогут нанести вред разрабатываемому проекту.

Но даже в случае, если под “full stack” понимать роль архитектора, необходимо определить о каком “стеке” идет речь. Стек веб разработки, мобильной разработки, нативных приложений? Даже в таком виде “full stack” это не одно умение, а большой набор умений, с глубоким пониманием о взаимодействии технологий в рамках “стека” и о том, как изменения на одном слое стека влияют на другие его слои.

Full stack разработчик — это миф. Но не потому, что таких людей нет, а потому, что такое определение не имеет смысла. Нет никакой разницы между этой формулировкой и “coding ninja” или “rockstar”. Но про последние все хотя бы понимают что такие названия не имеют отношения к конкретному набору умений.

Вы ищете “на все руки мастера”, специалиста по интеграции, специалиста по производительности, того кто может быстро изучать новые технологии и приемы разработки? Или вы ищете того, кто является экспертом во всех перечисленных областях? У меня для вас плохие новости, посмотрите на картинку еще раз. Она далеко неполная.

Изображение взято отсюда.
Автор: @ishmakov Scott Hadfield

Похожие публикации

Комментарии (116)

  • +9
    Какое-то передёргивание и доведение до абсурда, как мне кажется. Автор видел вообще такие вакансиии?
    • +30
      Посмотрите блок вакансий на Хабре. Первые две:
      Ведущий веб-разработчик • full stack • PHP, YII, JS
      Full-stack веб-разработчик
      • +3
        В том то и дело, что Full-stack, это не человек знающий абсолютно все, а человек знающий стек технологий в своей сфере. Если я пхп разработчик то фулл стек в моей сфере не предполагает бизнес аналитику и рельсы или django. Я должен знать свой пхп, но при этом еще и тот же фронтенд. Я не должен уметь в фотошопе рисовать дизайны, но если они есть, я должен уметь их сверстать. Это не панацея, это лишь расширенные знания у разработчика.
        Вообще в идеале в (вебе например) бекенд, фронтенд, базхы данных, итд, этим разные люди занимаются, и каждому нужно платить. Хороший узконаправленный специалист сделает свою работу в разы лучше чем специалист широкого профиля. но когда не нужны идеальные настройки, берут одного который может больше но не так идеально. Это и предполагается.
        • –5
          > Я должен знать свой пхп, но при этом еще и тот же фронтенд.

          А потом такие приходят и ставят на сервер пых мейк инсталлом, потому что кроме пыха и цсс ничего не знают, не умеют, и учиться не хотят.
          • +3
            Нет, не такие ставят. Увы.
          • +1
            >> пых мейк инсталлом

            «Таким» проще написать как раз apt-get install php5, чем что-то там компилить, не?
            • +1
              какой первый манул попадется так и ставят
        • +1
          Если брать такое понимание, то под него подходит практически любой разработчик хоть с каким-то опытом. Лично мне очень тяжело представить себе человека, ни разу не разбиравшегося со смежными вопросами. Сидит условный пхп-кодер. Знает только ПХП. Со шаблонизаторами никогда не работал, вёрстку не видел, про базы данных ничего не ведает, тестовое окружение ему только админы разворачивают, какая ОС на серверах не догадывается. Такое возможно? Только если человек вчера прочитал книжку «ПХП для чайников».
          Но если практически любой с опытом подходит под это определение, то зачем его писать в вакансии? Затем же зачем у нас для вёрстки странички в три абзацы ищут крутых верстальщиков с опытом работы в крупных корпорациях, желательно умеющих перемножать в уме шестизначные числа, и за зарплату младшего разработчика. Ах, да! И это всё срочно! Это тот же тренд, что и на всём рынке труда — даже уборщица должна иметь диплом о высшем образовании (нет, я не против высшего образования в ИТ, а очень даже за, но во всём надо знать меру).
          В итоге все понимают, что требования в вакансиях нужно делить на 2, а то и на 10. А потом на Хабре появляются статьи «Почему на вакансию с чёткими требованиями для старшего разработчика приходят люди со знаниями младшего?» Потому что в подавляющем числе вакансий требования очевидно завышены.
          • 0
            Ну хпх был примером, есть ветви где разделение более чем четкое, корпоративный сегмент берет узко направленных специалистов в основном, им качество дороже денег. В .net часто встречаются люди отлично знающие именно .net, но не работающие с бд, потому что всю жизнь у них был «свой бд разработчик», а они просто вызывали функции и те им возвращали что нужно. То же саомое и с версткой. Даже у меня сейчас на работе в небольшой фирме, есть разделение, я могу вообще не касаться верстки, и все, даже самую мелочь отдавать в отдел фронтенда. Многие крутят носом по поводу того же фронтенда, зачем, когда у тебя есть свой собственный верстальщик? Администрирование тудаже входит, «зачем мне париться с живыми серваком, чета там смотреть и делать? Есть же девопс!!» эта мысль сидит во многих головах, если в команде/проекте есть админ. Кому-то это интересно, кому-то нет. Кто-то хочет просто педалить и ничего больше, их тоже можно понять.
  • +24
    Нет слов. Давайте лучше постить котиков. Вот, например.

    • +22
      Это прекрасно! Особенно та часть, в которой она занимается анализом внешности. Теперь я понял, наконец-то, почему иногда не проходят собеседования вполне себе компетентные люди. Да у них форма ушей не та и подбородок выдвинут! Нет слов.
      • +6
        Эльфов ищут.
        • +3
          Да, да. Особенно порадовало: «выдвинутый подбородок для системного администратора — не надо», «их можно сравнить с животными»)))
          • +2
            То ли она училась на ветеринара, то ли просто выбрала в качестве основной специализации зоопсихологию. :)

            Может она руководствуется каким-то внутренним документом: «Как определить программиста», «Как выглядит правильный разработчик», «Требования к форме ушей тестировщиков в нашей компании».
            • 0
              ))) Да нет же. Просто, видимо, айтишники — такая интересная специализация с точки зрения психологии)))
              • +1
                Просто несёт в массы знания :)
          • +3
            С широким кончиком носа — блоки на сайтах оптимизировать. С узким — в системных платах ковыряться. Вот оно, что решает по жизни!
    • +25
      Гитлер обзавидовался бы такой методике. Я про часть где описывается требуемая внешность.
    • +4
      Ситуация, когда человек, совершенно некомпетентный (это я про эйчарку эту) даже и не понимает, чему именно ему нужно научиться, чтобы стать компетентным, придумывает себе сам вымышленную предметную область и становится в ней специалистом.
      • –1
        Так она и не эйчар, написано же "Анна Кулик профайлер-полиграфолог, психодиагност" — простыми словами она специалист по прогнозированию поведения человека и психологических особенностей его личности на основе анализа его признаков и внешности. А видео — просто небольшой курс по психологии для эйчаров, не более.
        • +2
          «она специалист по прогнозированию поведения человека и психологических особенностей его личности на основе анализа его признаков и внешности»


          Вот об этом я и говорю. Уши, значит, у меня на сантиметр длиннее — и поэтому я буду чинить базу данных не так, а вот эдак.
          • +1
            Ну да))) А еще полиграфологи определяют лжешь ты или нет, когда говоришь, что починил базу.
            • +2
              Ржу в голос. Тут, бывает, самому понять починил ты эту е№у%:? ю базу или нет, проблема, а уж если тебя эта леди спросит, то вообще караул, пойди пойми, что она имеет в виду )
        • +1
          Это как специалист по биоинформационной медицине — практика есть, научного подхода нет.
      • 0
        Там на видео выше никакой не эйчар, ну с чего вы взяли? Вот откуда вы это решили?

        Это Анна Кулик — руководитель Информационно-Аналитического Департамента Всемирного Антитеррористического Фонда при содействии ФСБ и МВД, профайлер-полиграфолог.

        Кстати, там есть и второе видео с ней ещё, вторая часть, а тут только первая выложена. Более подробней здесь пасите про Аню:

        http://blogerator.ru/page/arhetip-sisadmina-anny-kulik-sobesedovanija
    • +6
      Рюкзак!
    • +4
      Спасибо! Поржал. На 6 минуте девушка показала своё ухо и заявила, что такая форма ухо говорит о живости ума :)) мочка («вот это расстояние») — много меньше остального уха («вот это расстояние»)
      Погуглил про мочки уха О чем расскажет ухо?

      Мочка уха гармоничного размера и естественного цвета — Хорошие резервные возможности организма, спокойный характер, трудолюбие
      Мочка уха слишком большая, негармоничная форма, неоднородная консистенция (участки уплотнения) — Общее истощение организма, генетическая предрасположенность к онкологическим заболеваниям
      Мочка уха очень маленькая (почти отсутствует) — Врожденные формы умственной неполноценности
      • +1
        По ссылке не хватает только рекламы массажа «очень маленьких» мочек уха, для избавления от умственной неполноценности и достижения «гармоничного размера и естественного цвета» ) или это будет только маскировка? Надо у барышни спросить у нее живость ума врожденная или натянутая.
    • +3
      Носить вещи в рукзаке очень удобно, когда у тебя нет авто.
      • +3
        Я больше скажу — даже если у тебя есть авто, рюкзак все равно незаменимый аксессуар, в большинстве случаев. Какие-то документы там с собой постоянно бывает нужно таскать, пачку ключей разных, очки / чехол, второй телефон, книгу, на случай внезапного ожидания…

        Единственное, что пропало из моего рюкзака после покупки авто — музыка, в ней действительно смысла особого нет, если большую часть времени по улицам в машине передвигаешься.
        • +3
          Ещё дон Хуан говаривал: сумки — зло и портят осанку, рюкзаки — добро и не портят.
    • +10
      Тема сисек не раскрыта. Извините.
    • +4
      Бред, конечно, забавный. Охотно верю, что найдутся те, кто примет это всерьез.
    • +2
      Выключил на «рюкзак», «торчат наушники из рюкзака». Неприятная женщина. У меня 80% знакомых айтишников, и это не обязательно программеры ходят с рюкзаками, а у них оттуда торчат, обожешки, ноутбуки.
    • +1
      а у парней-то и правда ступор наверное, когда они пытаются сообразить да всерьез ли эта корова или прикалывается?
  • +15
    Я знаю много людей знающих технологии перечисленые снизу до верху. Сам знаю большую часть.
    Любой девелопер прошедший через 5-10 компаний рано или поздно со всем этим сталкивается
    • +2
      +1. Я сейчас не разработчик, но до сих пор практикую (большей частью — в качестве хобби, но и по работе, бывает, в сложные момент приходится подключаться). Из перечисленной таблицы мне приходилось плотно (несколько лет) работать почти по всем упомянутому в таблице и уж точно — по всем строкам.
    • +17
      Или же когда человек просто интересуется обстановкой в IT сфере и хочет держать руку на пульсе. Но одно дело разбираться а другое дело быть специалистом в каждой из областей. Так что в какой-то мере я понимаю автора. Хотя я тоже считаю что такие люди есть хоть их и не очень много.
      • +1
        Ну, я в каждой строке специалист, но не во всех словах строки. Например, в БД у меня набор другой: MySQL, MongoDB, Oracle, плюс активно смотрю PostgreSQL. В языках у меня нет в активе Руби, Джавы и Свифта. Ну и так далее.

        Но мне не очень понятно почему в каждой строке именно такой набор. Например, почему в языках нет Си и Си++. Какой же fullstack без этого? В безопасности («security») набор куцый, выдаёт полное незнание автором предмета и так далее.

        В общем, табличка, мягко говоря, спорная.
        • 0
          Потому что разделяющий слова слэш неоднозначен;
          в одном месте может читаться как &&, в другом ||, где-то скобки пропущены
        • +9
          Табличка спорная. Вопрос не в табличке. Вы сможете например на память рассказать обо всех уровнях модели OSI? А формат заголовка IP пакета? А учитывая VLAN? Когда лучше использовать new а когда malloc? Как работают мюьтексы и чем отличаются от локов и причем тут симафоры? Какое ограничение у реализации winsock через select, а у WaitForMultipleObjects? А рассказать разницу между асинхронным кодом, threads, fork? А на windows? Может рассказать чем InnoDB отличается от MyISAM и где лучше использовать MyISAM? А рассказать чем GIS у оракла отличается от Postgre? А как работает механизм полнотекстового поиска у Postgre? А что такое короутины в питоне и чем они отличаются от генераторв? Как работают кроссдоменные AJAX запросы и что для этого нужно? А может ли в js у анонимной функции быть имя и если да где его область видимости. Продолжать?
          Это я все к тому что я лично уверен что можно быть специалистом только в одной ну двух областях. Но не во всем стеке. Каждый из дурацких вопросов которые я тут задал для специалиста в своей области покажется смешным. Но только те на которые он знает ответ. На сколько сходу сможете ответить Вы?
          • +2
            Вы сможете например на память рассказать обо всех уровнях модели OSI?
            Да.
            А формат заголовка IP пакета? А учитывая VLAN?
            Нет.
            Когда лучше использовать new а когда malloc? Как работают мюьтексы и чем отличаются от локов и причем тут симафоры?
            Да.
            Какое ограничение у реализации winsock через select, а у WaitForMultipleObjects?
            Нет.
            ? А рассказать разницу между асинхронным кодом, threads, fork?
            Да.
            А на windows?
            Откуда fork на Windows?
            А рассказать чем GIS у оракла отличается от Postgre? А как работает механизм полнотекстового поиска у Postgre?
            Нет (в PostgreSQL я только начинаю разбираться).
            А что такое короутины в питоне и чем они отличаются от генераторв?
            Ничем не отличаются.
            Как работают кроссдоменные AJAX запросы и что для этого нужно?
            Да.
            А может ли в js у анонимной функции быть имя и если да где его область видимости.
            Может. Внутри функции.
            Продолжать?
            Как хотите.

            Что это показывает-то?
            • +1
              Преклоняюсь, вы гуру )
              Думаю мало кто может сразу на все вопросы ответить, как и вы не смогли и я бы не смог. А человек которого называет fullstack разрабом автор статьи должен. Правильное ли это определение fullstack разработчика не знаю. У меня другое понимание.
              С форком поймали ) Хотя cygwin это как-то обходит?
              Я бы завалился на GIS и мало что смог сказать про полнотекстовый поиск. Ну и OSI я сходу не перечислю без бумажки )
              У генераторов кстати нет yield from и yeld на вход они не принимают. И не всегда сопрограммы основаны на генераторах. Вроде в 3.5 что-то поменялось по этому поводу.

              P.S. Но выпить с вами пива или чай за интересной беседой я бы не отказался

              • +1
                Думается мне автор статьи сам придумал заведомо нереальное определение, оттолкнулся от него и разоблачил. Это известный приём в спорах — создать противника, набить ему морду, сассоциировать с оппонентом (или с группой оппонентов).

                Хотя cygwin это как-то обходит?
                Мне помнится, что не обходит, выдаёт ошибку.
                P.S. Но выпить с вами пива или чай за интересной беседой я бы не отказался
                Проблематично, думаю ) Я переехал в Казань, в Москве, универсальной точке сбора, бываю редко и набегами (приехал, деловая встреча, уехал).
            • +19
              Что это показывает-то?
              У кого fullstack длиннее)
          • +1
            А формат заголовка IP пакета? А учитывая VLAN?


            VLAN это технология канального уровня, в IP-пакете про VLAN ничего нет.
            • +2
              Так же как и форка у windows)
    • +5
      А я не верю, что все это знается на высоком уровне. Все равно всегда есть 2-3 главные области (где человек знает глубины и тонкости) и несколько смежных (где имеет общее представление, но все равно проиграет в одни ворота хорошему узкому специалисту).
      • 0
        Нет пределу совершенству. Но если они и я в том числе прошли через несколько компаний из Топ-100 вы думаете им зря платят?
        Мне говорят идею и приношу DVD с софтом и рекомендации кому и как продавать.
        Сколько там слоев — зависит от задачи.
        • 0
          Удачно топ-10 заменён на топ-100 :) А то я уже хотел спрашивать — это среди кого топ, во всем мире или Томске?
          • 0
            Я уже второй десяток лет как в Канаде. Просто подумал? что RIM когда богатейшая компания Канада в десятку софтверных вряд ли когда-то входила, вот и поправил.
    • +1
      Знать и уметь использовать правильно хотя бы на 50% это гигантская разница.
  • +3
    В таблице опечатка про LASS или что-то такое и правда есть?
    • +8
      Скорее всего имелись в виду HTML5 / CSS3 / SASS / LESS, но автор не обязан знать такие тонкости.
    • +5
      Есть. Библиотека сэмплов струнных LA Scoring Strings, музыканты сокращают до LASS. И, возможно, это не очепятка =)
      • 0
        В ряду с HTML5 / CSS3 / SASS — маловероятно.
        • +1
          Там Wordpress указан в качестве фрамеворка(!), поэтому, тут может быть — всё что угодно.
          • 0
            Мне кажется, что если считать фреймворк конструктором — то любая расширяемая дополнениями — темами и модулями/плагинами система управления содержимым сайтов вполне себе Фреймворк — «как хочу так и верчу» — бложики, фотогалерейки, госовалки, модули онлайн магазинов, репостинг/шаринг в соцсетях, аналитика CTR/посещаемости и прочее.
          • 0
            Он и есть фреймворк, уже давно.
  • +12
    Начало вроде нормальное, но потом куда-то не в ту степь. Ни разу не сталкивался, чтобы под full-stack разработчиком понимали специалиста с доскональным знанием технологий от ассемблера до фотошопа и менеджмента. Обычно имеется в виду конкретный стек (например, веб), и специалист на все руки, который знает всего понемногу (PHP и верстку) на нормальном уровне, чтобы не нанимать 2 или 3 разных специалистов.
    Люди, которые «знают всё» на профессиональном уровне, тоже бывают, но я бы не стал называть full-stack разработчиками только их.
    • 0
      Что-то у вас коротковат стэк. Для вэб я б назвал: язык для бэкэнда, js, css, html, http, настройку сервера, деплой. Возможно, субд. Эт если не лезть в дебри конкретных либ и такого прочего.
  • +18
    Ну ерунда же. Full stack разработчик — это специалист более-менее знающий, что происходит по обе стороны протокола общения вашего сервера и фронтэнда, не более того. И именно в этом контексте это понятие понимается на рынке труда. А для реально крутых ребят, которые знают все и все делают хорошо — и названия то нет, кроме тех-же романтично обобщающих: «гений», «ниндзя», «веб-даос» и т. д. Вот только искать таких — бессмысленно: они либо случайно вам попадутся, (и вы облажаетесь, потому, что не будете знать как их лучше задействовать), либо просто никогда с ними не встретитесь.
    • +1
      Full stack разработчик — это специалист более-менее знающий...

      Хорошее заменчание. Действительно кто как понимает значение full stack. Может голосование сделать? Вот мне казалось что все зависит от стека потенциальных платформ потенциального клиента. Вон для такого же evernote это будут серверы, веб, приложения, масшабирование, бд, ocr и тд. Но вот нужен ли он такой…

      и вы облажаетесь, потому, что не будете знать как их лучше задействовать

      об этом я тоже сразу подумал но написать не решился.
  • +2
    Кажется, автор не усвоил разницу между fullstack и devops.
    • +4
      Я тоже не усвоил что такое Devops. Это по-моему просто модное слово, которое все используют.
      • +1
        Ну, я считаю что девопс — это я. Я в основном разработчик, но ещё я умею и периодически занимаюсь автоматизацией сборки, автоматизацией развёртывания и релиз-менеджментом, более-менее разбираюсь в технологиях виртуализации, знаю инструменты и техники масштабирования. Могу настраивать ОС на которых крутится моя система и могу настраивать все сопутствующие моей системе компоненты. Это и называется devops developer+operations. Противопостовляется отдельной эксплуатации из мира кровавого энтерпрайза (по крайней мере в моём мире Java).

        А кроме этого я ещё и небольшой фуллстэк, но всё-таки не полноценный — я умею много на чём писать, но вот красиво верстать странички, например, не умею.
    • +2
      Причем здесь devops?
      • +3
        Большая часть из перечисленного в таблице (os, virtualization, hosting, containers, package management, server management, config management) относится именно к devops, разработчику это не надо кроме понимания в общих чертах.
  • +12
    Мне кажется, говоря full stack, HR'ы подразумевают «Кроме как писать код(\админить\анализировать данные) вам ещё придется заниматься всем, что нам вздумается на вас свалить — от продажи продукта клиентам, когда никто не понимает что делает система — до заливки тонера в ксерокс». Не нужно так акцентировать внимание на самом термине, нужно просто понимать на что вас хотят подписать.
  • 0
    Но даже в случае, если под “full stack” понимать роль архитектора, необходимо определить о каком “стеке” идет речь. Стек веб разработки, мобильной разработки, нативных приложений?

    Архитектор не обязан быть профи клиентской разработки, но должен понимать концепции работы GUI и мобильных приложений. К примеру, если речь идет о мобильном геймдеве и архитектор с акцентом на server side, то он по-хорошему должен заниматься протоколом, разбираться в кросс-платформенном C++ (по сути единственный язык программирования, на котором можно написать серверную и мобильную логику всех платформ), представлять ограничения платформы. Но не писать сам мобильный апп.
    В противовес «full stack» можно получить другую крайность — каждый занимается своим делом. Вроде хорошо: мобильные разработчики занимаются мобильной разработкой, серверные-серверной, админы админят. Только вот нет человека (как правило, достаточно одного), который имеет общее представление о комплексной системе, видит ее «сверху», видит фундаментальные вещи — архитектуру целого.
    • 0
      > C++ (по сути единственный язык программирования, на котором можно написать серверную и мобильную логику всех платформ)
      Не соглашусь. На javascript тоже можно написать серверную и мобильную логику, а еще логику в браузере. Это если мы говорим про веб + мобильные приложения. Да и на декстопы есть electron и прочие. Так что тоже много где можно писать. Я уже молчу что на некоторых системных языках можно написать большинство из того что можно написать на C++, так как есть бинарная совместимость.
      • 0
        Насколько я знаю, лицензия iOS запрещает создание исполняющей среды (виртуальной машины), поэтому javascript легально нельзя. Даже Chrome для iOS — обертка над Safari. Поправьте меня, если я не прав.
        • 0
          Они недавно изменили это и разрешили. Писать на js теперь можно, но: 1. надо обязательно использвать jsc, 2. не загружать логику динамически (чтобы фичи не продавали в обход аппстора).
      • 0
        Еще раз уточняю — я не говорю про web-gui, я про приложения вроде игр с собственным графическим интерфейсом.
  • +5
    Мне кажется, табличка слегка преувеличена.

    • Hardware/OS/Virtualization/Hosting/Containers/PaaS/Package management/Server management — это не задача разработчика вообще, даже fullstack, это частично работа админа, частично — devops.
    • Scaling — далеко не все проекты обслуживают по миллион кликов в минуту/час. Миллион кликов в сутки — это 10 кликов в секунду. На типовом проекте, если у разработчиков прямые руки, всё должно спокойно умещаться на одном сервере.
    • Search — опять же, далеко не во всех проектах нужен полнотекстовый поиск. При необходимости, можно взять какой-нибудь Lucene, на изучение базовых возможностей хватит пары недель, обычно этого хватает большинству проектов.
    • Frontent design — это задача не разработчика, а дизайнера. Если devops/администирование — это то, что разработчику под силу, то дизайн — совсем другая дисциплина, требующая совсем другого взгляда на мир, и, ИМХО, на эту позицию совсем никак нельзя сажать разработчика (если он только не является этаким Ленардо да Винчи с широким спектром интересов).
    • Business requiremenets — это задача аналитика.


    Оставшееся — как раз то, что должен делать разработчик. Многие разработчики, однако, действительно узко специализированы и не разбираются во всех оставшихся пунктах, а только в некоторых. ИМХО, как раз fullstack разработчик — это именно разработчик, хорошо умеющий всё из таблицы автора, что не перечислено у меня в списке, и немного разбирающийся во всех остальных пунктах. Смысл не в том, чтобы всю работу компании поручить одному человеку (который заметьте, по сути дилетант во всём, что не касается его прямых обязанностей), а в том, чтобы был человек, который мог бы «залатать швы» между узкими специалистами, когда неизбежно возникают проблемы из-за недостатка коммуникации.

    Такие люди отсутствуют на рынке труда. Чаще всего они «вырастают» в компании, куда пришли на роль разработчика и постепенно взяли на себя инициативу и ознакомились со смежными дисциплинами. Навыки таких людей абсолютно бесполезны в контексте других компаний, однако они ценны не навыками, а тем, что способны и готовы приобрести новые навыки.
  • 0
    В приведенной таблице даже в одной последней строчке смешаны весьма разные менеджерские профили: Product Owner и Project Manager. А все остальное является перечислением скилов: Админов, Программистов и Системных архитекторов.
    Человек который ищет для решения всех этих задач «full-stack разработчика» просто формирует инфантильный бизнесс-запрос — реши все мои ИТ проблемы за меня, «тыжпрограммист». И правильный ответ человека обладающий знаниями о всех этих активностях, даже поверхностным — «тебе нужен не программист, а СТО, так что давай прощаться с иллюзиями и готовить соответствующий бюджет и на меня и на команду».
    На проектах на которых возникают все задачи из перечисленных в таблице речь конечно же идет не о работе одного человека. И конечно же специализация каждого члена команды в конкретных навыках(а менеджерские и технические навыки вообще требуют разного типа мышления) дает большую эффективность работы команды в целом.
  • +4
    full-stack — это человек, могущий создать сервис с нуля самостоятельно — база, сервер, клиент, вёрстка.
    Всё.
    • –4
      Я вот лично не верю что в современном IT более менее серьезный проект может быть реализован одним человеком. Сейчас серьезные проекты разрабатываются около года командой из 5-7 человек.

      Если под full-stack разработчиками понимать тех ребят что пилят «сайты», «Элементарные ERP», «лэндинги», «социалки» и прочее из того что нужно типичному комерсанту на фриланс биржах, то таких людей действительно много, но кажется автор говорит о других людях.

      Рано или позно каждый человек приходит к тому, что нужно выбрать специализацию… А fullstack это с одной стороны спец. который знает все, а с другой стороны он не знает ничего на достаточно хорошем уровне.
      • +1
        Как раз веб-разработка — это такая сфера, где если ты знаешь что-то одно, но хромаешь в смежных областях, то это не есть хорошо. Как можно, например, знать ЯП (PHP, Python, Ruby), но при этом не знать HTML и/или SQL и/или не уметь настроить продакшен? Так что аналогия «с одной стороны спец. который знает все, а с другой стороны он не знает ничего на достаточно хорошем уровне», на мой взгляд, не совсем уместна, так как здесь сама сфера требует обладать познаниями из разных областей. Ты не имеешь права заявить, что хорошо владеешь технологией, если не имеешь хотя бы минимальные познания в смежных с ней.
        • 0
          Скорее «стек технологии» уже.
          Потому как python|ruby|asp.net|perl включают в себя не только сам ЯП, но и кучу стандартных библиотек даже для ввода вывода/чтения/записи, я уже не говорю про сами по себе комплексные Фреймворки, которые включают в себя десяток библиотек чтобы эти самые Rails или Django просто запустились, как единая сущность, которую можно использовать для разработки, которые могут включать в себя не один десяток библиотек
      • 0
        А что на ваш взгляд такое «несерьёзный проект»? :-)
    • 0
      То есть, любой человек, прошедший начальные курсы по asp.net/rails/Django/nodejs и написавший онлайн магазин/бложик/голосовалку/что-то-ещё по дефолтным вводным мануалам на соотвтетствущих сайтах, может считаться фул стек разработчиком?
      • +1
        Начинающим. Джуном или трейни. Если сможет всё это повторить уже без мануалов, а только по спекам.
        • 0
          Ну вот я написал свою веб бухгалтерию ещё на asp.net mvc 4, самостоятельно, простенько, но функционально, за годик по вечерам, и да, я знаю и понимаю что я джун.
          Теперь вот поскольку основной профиль — хостмастер — пишу для своей работы веб приложения на rails, в том числе одно весьма масштабное, и понимаю что я ещё более джун чем был, но, хотя бы знаю в какую сторону расти :(
          • 0
            Зато фуллстэк джун )
  • –2
    > “Настоящие” full stack разработчики существуют — так же как существуют гении и люди, которые программируют с 12 лет.
    Все намного проще, не надо знать все, надо просто уметь учиться. Собственно, чтобы на изучение чего либо годы не уходили, надо быть грамотным инженером, а не гением. При этом, для того чтобы стать грамотным инженером, надо закончить неплохой вуз.

    Есть такое ощущения, что те люди, которые тут лет пять назад всерьез обсуждали, что учиться в универе смысла нет, сбивая юных с правильного пути, теперь оправдывают свои неудачи какими-то мифическими гениями.
    • +2
      Что бы на обучение не уходили годы, надо потратить от пяти лет, что бы окончить вуз. Гениально. За пять лет можно стать охрененным специалистом с большим багажом опыта VS выйти теоретиком без реального опыта, зато с гордым званием «инженер», написанным на корочке
      • 0
        Я вас удивлю, очень многие, если не большинство, начиная с третьего — четвертого курса начинают работать.
        При этом кто мешает во время обучения становится «охрененным специалистом с большим багажом опыта»?
        Ну и ко всему прочему — не обязательно учиться на дневном, можно на заочном, при должном желании и усердии эффект будет такой же.

        И собственно, а как вы станете специалистом? Куда возьмут без опыта и без какого либо образования?
        Клепать сайтики на джумле? Охрененный специалист по джумле, ок. )

        Собственно можно, конечно, до всего дойти самому, только зачем, если с вузом проще?
        Просто потому что бунтарь и все такое?
        • +1
          Я не об абстрактных в вакууме, а о реальных ВУЗах данной страны. Чем проще? Что дадут эти три года, чего не дадут три года работы над реальными проектами?
          Мое мнение обосновано неоднократнымиопытом работы со «специалистами», которые по корочкам, но не по призванию, «инженеры». Сейчас любой дебил, способный платить 30-300тысяч за семестр (в зависимости от «илитности» вуза) через пять лет становится «специалистом».

          И это не я бунтарь, а вы застряли в прошлом. Сейчас до любого знания два тыка пальцем, до любой книги три тыка. Но вы считаете при этом, что непременно нужно идти и обучатся в «Высшее учебное заведение», для чего? Что это даст?
          И заочный вариант чем лучше самостоятельного обучения?
          • –2
            >Что дадут эти три года, чего не дадут три года работы над реальными проектами?
            Ну например начнете понимать, то что вам пишут. Где я писал про замену? Я про то что можно и тем и тем заниматься.

            >Мое мнение обосновано неоднократнымиопытом работы со «специалистами», которые по корочкам, но не по призванию, «инженеры».
            А со специалистами, которые реально специалисты вы получается по работе не сталкивались?
            Включим логику, чтобы понять ситуацию. Либо после вузов нормальных специалистов не бывает, либо с вами почему-то такие работать не хотят, что вероятнее и что это показывает? ))

            >И это не я бунтарь, а вы застряли в прошлом. Сейчас до любого знания два тыка пальцем, до любой книги три тыка.
            Когда учился я, с обучением в сфере IT было сильно хуже, чем сейчас.
            >Но вы считаете при этом, что непременно нужно идти и обучатся в «Высшее учебное заведение», для чего? Что это даст?
            Например там есть учителя, котоыре на пальцах за пару минут объяснят то, на что самому придется потратить дни, а то и недели.
            Укажут на ошибки, которые не видишь сам, расскажут всякие бестпрактис, которые позволят не проходить этап гавнакодера-велосипедиста.
            А главное это возможность общаться с людьми у которых схожие интересы, находить друзей, для многих это возможность собрать свою команду и, даже организовать свою компанию. Да можно и без вуза, но зачем лишнее усложнение?

            >И заочный вариант чем лучше самостоятельного обучения?
            Если вы пробовали и возникает такой вопрос — то для вас разницы нет, забейте.
            Если не пробовали, то попробуйте, собственно плюсы я расписал и так, у меня нет задачи вас уговаривать, ведь по логие мне выгоднее обратное ;)
            • +2
              А со специалистами, которые реально специалисты вы получается по работе не сталкивались?
              Включим логику, чтобы понять ситуацию. Либо после вузов нормальных специалистов не бывает, либо с вами почему-то такие работать не хотят, что вероятнее и что это показывает? ))

              Сами задали вопрос, сами и ответили, странный вы персонаж. Я не говорил, что не сталкивался с нормальными специалистами, это вы выдумали, я говорю о том, что не вижу взаимосвязи между качеством специалиста и наличием у него диплома.
              Когда учился я

              оно уже прошло
              Например там есть учителя, котоыре на пальцах за пару минут объяснят

              Укажут на ошибки, которые не видишь сам, расскажут всякие бестпрактис

              Замените «учителя» на «коллеги» и внезапно имеем тоже самое, но в лучшем качестве, ибо учителя учат, а коллеги варятся непосредственно в предмете изучения.

              Мы с вами из разных миров, очевидно.
              • –1
                >я говорю о том, что не вижу взаимосвязи между качеством специалиста и наличием у него диплома.
                Снаружи, для стороннего наблюдателя может и не быть, однако вполне себе возможно, что жить тому у которого диплом, например проще.

                >Замените «учителя» на «коллеги» и внезапно имеем тоже самое,
                >но в лучшем качестве, ибо учителя учат, а коллеги варятся непосредственно в предмете изучения.
                Окей. 17 лет стоит выбор на тему вуза. Что-то мне кажется, что при таком раскладе «коллеги» отлично научат кричать «свободная касса». А вот если в вуз пойти, то года через три вполне себе возьмут куда-то джуном, даже может быть за деньги.

                >Мы с вами из разных миров, очевидно.
                Ну это не я сказал, впрочем думаю все проще) Судя по тому, на сколько вас задело мое первое сообщение, что вы начали спорить, вас беспокоит эта тема, а значит вы сомневаетесь/жалеете что не учились.
                Собственно меня эта тема не волнует ни капли, я лишь высказал свое мнение, так что давайте закончим.
            • 0
              А главное это возможность общаться с людьми у которых схожие интересы, находить друзей, для многих это возможность собрать свою команду и, даже организовать свою компанию. Да можно и без вуза, но зачем лишнее усложнение?


              Это вуз для этого лишнее осложнение :)

              А если серьёзно, вы часто проводите собеседования на позиции уровня джун/трейни, чтобы рассуждать о качестве выпускаемых специалистов? Кстати подавляющее большинство из них не имеют диплома инженера, а бакалавры.
              • +2
                >А если серьёзно, вы часто проводите собеседования на позиции уровня джун/трейни, чтобы рассуждать о качестве выпускаемых >специалистов? Кстати подавляющее большинство из них не имеют диплома инженера, а бакалавры.
                Приходилось заниматься и таким, становилось грустно, когда будущий программист не знает даже что такое косинус.
                По моим наблюдениям, с теми у кого есть, хотя бы, незаконченное высшее, проще работать.
                А вы часто берете 17летних, чтобы заменить им вуз?
                • 0
                  Для нас это практически не значимый фактор. Как говорится будет плюсом при прочих равных, но обычно прочих равных не бывает.
  • +1
    Я думаю, что под «full stack» часто подразумевается «разработчик широкой специализации». Это не означает, что он должен уметь делать всё. Это означает, что он должен уметь владеть многими (иногда — всеми) инструментами, в настоящий момент используемыми в проекте. И часто подразумевается, что широта знаний имеет более существенное значение на данной вакансии, чем их глубина.
  • +2
    Помнится в далекие ВУЗовские времена один препод нам рассказывал, что инженер в Российской империи должен был уметь разбираться в любых механизмах.
    И из пушки стрелять и дороги строить.
    Для этого нужна штука, которая называется абстрактное мышление.
    К сожалению, рынок труда таков, что ценится специализация, поэтому многие программеры из страха провала начинают бояться шагнуть не в ту сторону.
    Кто не боится — тот full stack. )
  • 0
    Самая большая польза которую может принести такой «мастер на все руки» это сформировать хорошую команду, потому что сможет быть компетентен хотя бы на базом уровне во многих областях. А в качестве линейного разработчика – сомнительное приобретение, денег стоит много а работает все равно с конечной скоростью. Как в базах данных – не важно как быстро работает та или иная платформа без грамотного масштабирования все упирается в потолок рано или поздно.
  • 0
    Наверное у каждого своё понимание full stack которое более подробно расшифровывается в резюме
    причем если указать например full stack web developer то это сужает и уточняет размеры вашего стека
  • 0
    Есть очень интересное обсуждение на эту тему www.quora.com/Who-is-a-rockstar-programmer
  • 0
    По крайней мере из этого списка по 1-2 пункта я знаю очень хорошо в каждой категории. Am I the full-stack dev?
    • 0
      Нет, вы должны знать все, что может оказаться у работодателя :)
    • +1
      Очень хорошо, это сможете на Си написать драйвер для ядра Linux? Написать свое расширение для PHP на C++?
      Или реализовать парсер HTML5 без использования сторонних библиотек? Как определяется это «Очень хорошо»?
      • 0
        Это я к чему спросил, мне кажется что автор статьи подразумевает именно таких программистов под словом fullstack. Хотя я мгу ошибаться конечно. Но в моей практике «хотелка» у работодателя обычно именно такая. Хотя конечно объективная реальность развеивает любые «хотелки».
      • 0
        могу и писал.
  • +1
    Почему то full stack всегда завязан на web, доходит до абсурда, нам наши web full stack (причем наикрутейшие) выкатывают API в котором есть метод принимающий файл, задаем вопрос как передавать контент файла? Получаем супер ответ постом! Задаем вопрос к черту детали, как засунуть его в пост! Ответ еще гениальнее, ну как обычно в пост файлы отправляют! Хорошо знали, что на сервере PHP предположили что он ждет MPFD, передали получилось, бинго!

    Вот такой он full stack!

    П.С. я очень много лет занимаюсь разработкой на .Net под разные платформы, последние пару лет под телефоны, знаю очень много нюансов платформы, но более чем уверен, что знаю хотя бы половину! Я это к тому, что не я такой тупой, а к тому, что современные платформы настолько сложны, что знать прилично не одну а сразу несколько практически не реально!
  • 0
    Может их так мало на рынке труда потому что они так много знают что уходят из наемных работников?
  • –1
    Я уверен, что fullstack — это тот кто знает весь стек технологий в определённой области и таких много и стеки эти простые.

    Примеры использования слова:
    «Ninja is a full stack web framework for Java.»,
    «MEAN is an opinionated fullstack javascript framework»,
    «Meteor is an open-source, full-stack JavaScript framework» — т.е. человек знающий meteor или mean — fullstack developer.

    Где stack это nodejs mongo html css express ну и т д.

    Автор сочинил какое-то своё определение и теперь ругается что все остальные неправильно слово используют.
  • +1
    ithappens.me/story/13373
    Человек должен уметь менять пеленки, спланировать вторжение, заколоть свинью, вести корабль, построить дом, написать сонет, подвести счета, возвести стену, снять мясо с костей, утешить умирающего, отдать приказ, выполнить приказ, действовать вместе и в одиночку, решать уравнения, анализировать новую проблему, разбросать навоз, запрограммировать компьютер, приготовить вкусное блюдо, биться и победить и умереть, если надо, с достоинством. Узкая специализация — удел насекомых.
    • 0
      Странно видеть цитату из Хайлаqна с ссылкой на ithappens
  • +2
    Я если не с 12, то с 14 лет программирую точно. Где моя толпа хантеров?))
  • –1
    Не имею ничего против перевода, спасибо ishmakov было интересно почитать подобное мнение, но автор оригинального текста — идиот, не понимающий о чём он говорит, уж извините.

    Ну вот что за бред? В таблице куча ошибок и терминов, которые никак друг с другом не клеятся. Как например можно быть гуру в системах серверной виртуализации но ничего не знать про VirtualBox? Да и почему вообще VirtualBox преподносится как нечто характеризующее FullStack? Там же ребёнок разберётся.
    Плюс — какие-то вообще непонятные требования по знанию графических приложений. Нафига фотошоп девелоперу Backend систем?
    Тогда давайте и Word/Excell сюда включим. И умение еду готовить. И все скиллы Беар Гриллса.

    Допустим у меня тоже куча скиллов, но считать меня FullStack нельзя даже с натяжкой судя по этой таблице.
    • 0
      Потому и перевел, что мнение любопытное :)
  • +1
    Автор исходит из ложного предположения, что такой специалист должен «Django, Wordpress», но это не так.

    Фуллстек — это чувак, который может нарисовать няшный дизайн в графическом редакторе, заверстать и засунуть (например) в Джангу или Ноду, и развернуть все это под нагрузкой на десятке серверов. Из этого не следует, что он должен знать PHP или Java.

    Я например могу :)
  • +3
    С точки зрени разработки я бы выделил 6 «миров» инженерии:
    1. веб фронтенд
    2. веб бэкенд
    3. мобайл (андроид/ios)
    4. десктоп
    5. «глубоко системное программирование» (драйверы, ядра, ассемблер, железо и т.д.)
    6. «научное программирование» (матмоделирование, численные методы и т.д.)

    Под full-stack раньше обычно подразумевали 1+2, но теперь это 1+2+3 (и говорить, что ты full-stack, если не имеешь опыта в 3, просто смешно, увы; у меня вот, например, есть некоторый опыт во всех пунктах, кроме как раз пункта 3, и надо срочно наверстывать).

    А еще full-stack — это способность взять и написать код хорошего качества на любом из этих уровней, даже если плохо с тем или иным уровнем знаком. Это не так-то сложно, больше коррелирует со способностью человека быть упорным, входить в поток, не сдаваться и учиться, знанием паттернов и частых случаев, чем со знаниями тех или иных технологий. (Да, и Фотошоп тут ну вообще ни при чем.)

    Так что в статье слегка ерунда написана, хотя здравое зерно имеется.
    • 0
      Я б добавил "корпоративные информационные системы", это тоже свой особый мир

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.

Самое читаемое Разработка