Фуллстак что это

РУБРИКИ БЛОГА


Разница между Front end, Back end, Full stack разработчиками
Опытного IT рекрутера точно нельзя испугать модными словечками или техническими выражениями, а вот начинающему стоит разобраться во всех тонкостях IT сферы. Узнайте, чем занимаются «front end», «back end», «full stack» разработчики, чтобы быть уверенными в том, что вы с твердыми знаниями подходите к выполняемой роли специалиста. Какие-то различия — существенные, какие-то несут в себе большое количество тонкостей, но все они позволят вам понять текущие потребности IT-индустрии.
На сегодняшний день создается все больше и больше различных веб-инструментов, программ и сервисов. Спрос на разработчиков растет с каждым днем с такой же прогрессией. В связи с этим выросла потребность в IT рекрутерах.
Сегодня мы поможем вам понять, кто такие «front end», «back end», «full stack» разработчики.
Front End разработчик
Когда вы видите наполненный жизнью сайт с привлекательным интерфейсом, вам становится интересно, кто же этот волшебник, который так профессионально с ним поработал. Именно в эту минуту вы думаете о front end разработчике, даже об этом не зная. Любое визуальное отображение, с которым вы работаете, производится потом, кровью и слезами front end разработчика. GUI или «Графический пользовательский интерфейс» — это визуальный фронт, на котором отображается экран, позволяющий клиентам взаимодействовать с программным обеспечением. Любое из сегодняшних устройств с прилагательным «умный», будет иметь интерфейс, который запускает приложения, предоставляет доступ к веб-сайтам, и все это создается разработчиком front end.
UI дизайнер или дизайнер «Пользовательского интерфейса» создает пространство, в котором происходит взаимодействие между человеком и машиной. С точки зрения мастерства, данный процесс требует от программиста сочетания навыков программирования и дизайна, и часто этот человек вовсе не должен быть программистом.
Дизайнер UX ссылается на конструктор «User Experience», в котором описывается путь, который пользователь использует, и его общая эффективность. Front end разработчики также должны думать над общим удобством использования, полезностью и опытом, которые пользователь имеет при взаимодействии с программным обеспечением и этот конкретный сегмент требует, безусловно, самых «гибких навыков» программиста. Тем не менее, эта работа может выполняться также не программистами.
Responsive design — очень трудная работа. Она относится к процессу адаптации дизайна интерфейса к любому экрану, от широкоэкранных настольных компьютеров и ноутбуков до мобильных устройств, таких как планшеты и смартфоны.
Традиционно разработчиком front end является человек, которому удобно работать как с дизайном, так и с кодированием. Другими словами, тот, кому комфортно работать с использованием простых инструментов проектирования и умеет писать структуру веб-сайта в HTML и стилизовать его с помощью CSS-кода. На данный момент самой большой проблей для front end разработчиков является то, что веб-сайт, построенный только с использованием HTML и CSS, будет полностью статическим. Если вы думаете о stickman на пустой странице в качестве веб-сайта. HTML будет достаточно, чтобы нарисовать его форму и CSS будет использоваться для его стилизации (сгустить, покрасить его, добавить одежду и т.д.). Но чтобы заставить stickman двигаться и реагировать, front end разработчику как следствие потребуется что-то еще.
По мере усложнения и совершенствования веб-приложений спрос на полный язык программирования Turing в интерфейсе растет с большой скоростью, поэтому для анимации программистов — stickman используют Java Script, который является языком программирования на стороне браузера.
Back End разработчик
В прошлом back end состоял из физического компьютера и программного обеспечения, предназначенного для запуска запросов через него. Сегодня этот процесс стал куда более сложным: облачные серверы являются более распространенными, трудоемкие базы данных и приложения микросервиса, но в принципе back end по-прежнему остается процессом объединения сервера, приложения и базы данных для решения проблемы.
Весь процесс прочно закреплен в логике, сети процессов и запросов, разрешаемых за считанные секунды, чтобы дать вам, как пользователю, определенный желаемый результат. Выберите рейс из Нью-Йорка в Гонконг и вы находитесь в зоне front end, нажмите клавишу поиска и вы перемещается в back end, чтобы правильно вернуть вам лучший, самый короткий, самый дешевый рейс в мгновение ока. Как только результаты будут отображаться для вас, вы снова будете во front end. Если поисковый запрос выдал вам своевременный и полезный результат, и вы не представляете, благодаря чему это произошло, спасибо разработчику за завершение поиска, а также бесчисленное множество других вещей, упрощающих вашу жизнь.
У back end разработчика может быть множество обязанностей. От создания базы данных и интеграции до обеспечения безопасности, а также технологий резервного копирования и восстановления, также back end разработчики создают мозг приложения.
Back end разработчики используют различные технологии для кодирования основной вычислительной логики информационных систем, конкретного программного обеспечения или веб-сайтов. Они могут включать Java, C#, Python и языки баз данных, такие как SQL и многие другие. Back end отличаются от разработчиков front end тем, что работа back end разработчика полностью лишена какого-либо визуального дизайна и основывается на логике и архитектуре программного обеспечения, целью которой является предоставление определенного результата. Иногда возникают проблемы с объединением back end и front end, что приводит нас к человеку, который может обработать обе части.
Разработчик Full Stack.
Разработчик full stack — это тот, кто хорошо работает как с бэкэнд, так и с фронтэнд. «Чтобы быть более конкретным, это означает, что разработчик может работать с базами данных, PHP, HTML, CSS, JavaScript и всем, что находится между ними, также принимая во внимание преобразование проектов Photoshop в интерфейсный код», — говорит Sitepoint.
Для разработчиков full stack необходимо общее знание технологий из каждой части процесса разработки. Это, конечно, означает, что они не будут экспертом в какой-либо конкретной области, но скорее могут предложить лучший обзор возможностей применения и возможности преодоления разрыва между тем, как функционирует система и как она выглядит и ощущается для пользователя. Возможно, это не требование дляработы, но разработчик full stack обычно также понимает бизнес-логику, пределы дизайна и пользовательский интерфейс. На ранних этапах развития бизнеса может возникнуть большая потребность в разработчиках full stack, поскольку их универсальность может быть полезна при разработке продукта, но по мере созревания компании разработчикам требуется все больше и больше конкретных навыков.
Full stack разработчик также может быть отличным техническим специалистом. Он имеет широкое понимание технологий и может предвидеть, какие будущие усилия по набору персонала должны быть или какие технологии должны быть реализованы в дальнейшем.
Fullstack – почему это клево, или как получать от работы удовольствие
Я попробую высказать свою точку зрения о том, что фуллстек – это на самом деле клево, и почему по этому пути идти хорошо.
Возможно, кому-то текст ниже поможет встать на этот путь, а возможно и наоборот, убережет неокрепшие умы от него. В общем, добро пожаловать под кат.
**АХТУНГ! Все нижесказанное не является абсолютной истиной в последней инстанции и является моим субъективным видением (этого мира).
Для начала давайте определимся с терминами, о которых пойдет речь ниже, чтобы быть в одном информационном поле, т.к. понятие fullstack у всех разное (ровно как и разделение на Junior/Middle/Senior и прочие табели о рангах).
Наиболее часто встречается мнение, что fullstack – это разработчик, который в одно лицо может работать над проектом полностью своими силами, от бэка до фронта.
Некоторые из вас могут сказать «ну такое у меня в команде мидлы могут», что (мягко говоря) в большинстве случаев неверно. Если разработчик фронта может что-то исправить/добавить в коде бэка, поковыряться в запросах БД, это еще совсем не фуллстек.
Ведь разработка проекта – это не только код бэка и фронта, это еще и постройка/настройка/поддержка инфраструктуры для получившегося продукта. Мало написать код, его еще нужно заставить работать на объекте. А объектом может быть и 5-долларовая VPS с LAMP в дефолте, и облачные сети типа AWS/Azure, или вообще собственная инфраструктура, где живет вполне себе реальное железо, от серверов/рабочих станций до маршрутизаторов.
Поэтому речь пойдет не совсем о «fullstack-dev», а скорее о «fullstack-вообще». Который может тянуть в одно лицо проект от стадии переговоров, до стадии подписания акта о выполненных работах.
Я не буду загибать пальцы, перечисляя, что должен, а чего не должен знать fullstack-специалист, т.к. это крайне расплывчатый список. В конце концов, кто-то умудряется сдавать и продвигать «проекты одного инструмента», скажем на Java с NoSQL, но сегодня мы про такое не будем.
Итак, как стать fullstack разработчиком нужно ли становиться fullstack или лучше двигаться в направлении чего-то одного?
Кратко пробежимся по плюсминусам, лежащим на поверхности.
Минусы
Вероятно, самый очевидный минус — примите как факт то, что вы всегда (всегда) будете уступать узкоспециализированным разработчикам во всем – от владения самыми современными тулами и технологиями, до качества кода. Если вы амбициозны, хотите всегда быть на острие прогресса, хотите гнуть пальцы и смотреть на остальных, как на говно – fullstack не ваш путь.
Найти работу для fullstack гораздо проще, чем для разработчика одной технологии. Но найти высокооплачиваемую работу все же сложнее. Парадокс, да? Тем не менее, в подавляющем большинстве случаев, так оно и есть (если конечно мы хотим использовать фуллстек, как фуллстек, а не как «программиста Java»). Там, где много платят с первых дней/месяцев работы, обычно не требуется «и швец и жнец, и на дуде игрец» — там требуется еще одна хорошо смазанная шестеренка в общий механизм, которая будет делать ровно одну задачу, и делать ее хорошо, так, как сказал тимлид. Исключения, разумеется, есть, но их не так много, как хотелось бы.
Работа в одну каску подразумевает конечность ресурсов. Т.е. вы не сможете реализовать по-настоящему крупный программный продукт. Даже если хватит знаний, не хватит времени. Вы не сможете выпустить убойную игру (мелкие инди-разработки бывают хороши, но речь не о них), операционную систему или «Mega-Office-XXL». Часто люди перегорают, если взвалили на себя слишком крупный проект, не рассчитав сил. Если вам нравится делать игры, или участвовать в крупных проектах (как правило международных), ну или на крайняк получать хорошую зарплату сразу после ВУЗа (2-3 лет активной работы) в какой-то одной области – вам тоже не сюда.
Вам все время придется учиться. Постоянно. Много. Разному. Если вы с содроганием вспоминаете годы учебы, конференции и вебинары вызывают у вас неприязнь, если вы не готовы тратить часы на чтение мегатонн информационного мусора, выискивая в нем крупицы полезного, если вас раздражают технологии, в которые придется суметь, вне зависимости от желаний и предпочтений – путь fullstack вам не нужен. Нужно понять (и принять), что здесь необходим некий дзен. Вы просто должны тащиться от происходящего, что бывает далеко не с каждым.
Никогда не забывайте, что человек, по сути, однозадачная скотинка, но вам придется постоянно эмулировать режимы многозадачности (разные языки, разные среды разработки, разные подходы, да сами концепции «написать код» и «развернуть инфраструктуру» — разные). Поверьте, поначалу это весьма сложно и приводит к низкой скорости и большому количеству ошибок.
И наконец, всегда есть риск остаться заложником ситуации и перестать развиваться, если место работы не предполагает каких-то карьерных лестниц. И многие тысячи потенциально отличных работников уныло сидят в небольших конторках, занимаясь совсем не тем, чем хотели 10 лет тому назад. Да, они умеют в Windows Server, в *nix, могут и в Java и Python, поддерживают какую-нибудь поделку на C#, давным-давно написан «корпоративный портал» на PHP+JS, но больше задач нет, у конторы все отлажено, все работает.
И стоит перешагнуть за рубеж в 35-40 лет, как включается встроенный в человеков консерватизм, помноженный на вот это уютное болотце, что в итоге и приводит к эдакому «чемодану без ручки». И разорвать этот порочный круг с каждым годом становится сложнее. Опасайтесь такого состояния, ибо борода и свитер отрастают еще быстрее, чем у узких специалистов, 10 лет пишущих на одном и том же.
Пожалуй, хватит на сегодня ужастиков, давайте о плюсах
Вы можете все. Ну или почти. От корпоративного сайта, до мобильного приложения. Ведь вы не ограничены 1-2 технологиями. Можете даже построить свою микро-империю в отдельно взятом интранете.
Если вы достаточно долго (и главное – успешно) работаете fullstack’ом, вы вполне себе можете возглавить команду разработчиков. Стать Архитектором. Тем, кто стоит у истоков любого крупного проекта.
Если вы угрюмый интроверт, любите машины и не любите людей – зарабатывайте деньги на удаленке. Неторопливо ведя несколько проектов, можно зарабатывать неплохие деньги, не тратя нервы на общение с командой.
Если вам нравится общаться с людьми, вы имеете подвешенный (или натренированный) язык (или вы просто хитрый интроверт с силой воли) – денег вы сможете заработать еще больше, проникая в душу заказчика.
Следует понимать, что совсем без работы вы не останетесь никогда. Если вы правильный fullstack, то уж на middle в любой технологии должны тянуть. А то и на «синьора средней руки» (это когда в Гугл тимлидом не возьмут с улицы, но в более-менее серьезный проект – легко).
И напоследок несколько простых и очевидных (увы, не всем и не всегда) советов. Я сознательно сделаю акцент на кодовую базу, а не на инфраструктуру, чтобы не утомлять читателей.
Совет первый. Не позволяйте своей гордыне превалировать над вами. Это очень важно. Примите как данность, что есть люди, которые делают что-то лучше вас. Учитесь у них, если это возможно. Подход «вы все говно, а я целый fullstack, я все могу» неверен в корне, и часто бьет не только по самолюбию, но и по кошельку. Если вы любите себя и деньги – следуйте этому совету.
Совет второй. Раз-другой в несколько лет было бы неплохо поработать в команде узких спецов. Это сильно поднимает скилл, ведь технологии на месте совсем не стоят, а несутся со скоростью локомотива, а узкие спецы стараются быть в тренде. Если есть такая возможность – не упускайте ее, многому научитесь, найдете уйму узких мест в своих старых проектах и не допустите их в новых.
Совет третий. Не стремитесь изучить ВСЕ ЯП. Во-первых, это просто невозможно, во-вторых, не нужно. Используйте в своих проектах хорошо изученные технологии, те, в которых вы действительно «синьор». Новые ЯП изучать нужно (хотя бы для общего развития), но применять их в реальных проектах следует только после того, как они станут вам действительно понятны. Как непосредственно языки и как то, с каким качеством их можно использовать, какую пользу можно извлечь от перехода скажем, с Java на Kotlin или Scala. Если вы не понимаете пользы, значит либо язык еще не созрел, либо (скорее всего) вы сами. Подход «дайте две недели на чтение спек и я буду писать на этом говне» — плохой подход.
Совет четвертый. Если вы смотрите на код своих разработок 1-3 летней давности и вам не хочется его исправить, скорее всего у вас кризис, как у разработчика (либо идеальный во всех отношениях код, чего не бывает). Попробуйте воспользоваться советом №2.
Совет пятый. С самого начала пути нарабатывайте клиентскую базу. Нарабатывайте свой авторитет. Вас и ваши разработки должны знать. При этом неважно, работаете ли вы на предприятии или фрилансите на удаленке. Если у вас нет сложностей с общением с людьми, обязательно потратьте время на общение с заказчиком. И вдвойне обязательно – на общение непосредственно с теми, кому предстоит работать с вашим продуктом. Так вы гораздо лучше сможете продумать архитектуру будущего проекта.
Совет седьмой. Соизмеряйте инструменты и задачи. Не стоит палить из пушки по воробьям. Не нужно разворачивать локальную инфраструктуру с блэкджеком и девицами с низкой социальной ответственностью для одностраничного «корпоративного сайта», просто потому. что вы можете это настроить. И тащить на этот сайт 5Мб JS-фреймворков тоже не нужно (только потому, что вы в них можете).
Не нужно тащить из бэка на фронт то, чему место именно на бэке. Наоборот тоже не делайте. Помните, если у вас вдруг стало слишком много костылей на проекте, ТЗ которого не изменяли 100500 раз при разработке — значит, вы плохо спроектировали архитектуру. Если есть возможность — исправляйте, если нет — обязательно учитывайте это в следующих задачах.
Совет восьмой. Правильно расставляйте приоритеты. Помните, что ваша задача – сделать продукт, в первую очередь удобный и как можно более безотказный. Даже если у вас гипертрофированное чувство прекрасного, красоту нужно наводить в последнюю очередь.
Уф. Пожалуй для начала этого хватит.
Всем спасибо за внимание.
Ах да, чуть не забыл… Да начнется срач!
- fullstack
- кем быть?
- программирование
Full Stack Developer — кто это?
Стали часто попадатся обьявления с такой вакансией. А вот требования/описание к этой позиции какие-то мутные. Создается впечатление о «дилетанте широкого профиля» умеющие не очень хорошо делать все подрят. У кого-то есть описание такой позиции? что наши уважаемые рекрутеры под ней понимают?
Подобається Сподобалось 0
До обраного В обраному 0
Схожі топіки
- Що таке Full Stack в сучасному світі?
- Розвиток у мобайл інженера vs фулстек(веб)
Найкращі коментарі пропустити
Меня немного удивляет позиция большинства местных разработчиков о Full Stack Developer (вероятно это связано с работой над Enterprise проектами), но когда технологические риски проектов не велики — это самый востребованный и оптимальный вид программистов в web-разработке, в США их масса. В стартапах на ранних стадиях их особенно любят, очень удобны для создания и поддержки MVP.
Эта должность предполагает более высокую квалификацию, чем обычный разработчик, но менее глубокую, чем инженер, который занимается разработкой инфраструктурных решений для high load, HA проектов, сложных баз данных и их ORM уровня.
Обычно получается 2 способами: backend разработчик решает изучить front-end, при этом продолжает заниматься backend частью; front-end разработчик решает изучить Node.js. К примеру, Meteor.js предполагает априори, что разработку будет вести Full Stack Developer, предоставляя инструменты для создания и поддержки единой базы кода.
Я так понял, что это web developer владеющий фронт и бэк эндом.
Full-stack developer — это еще одна попытка «работодателей» получить задешево, то, что никогда дешевым быть не могло. Это такой же психологический прием как и «вы же профессионал! Вы же профессионал?» ©Хабр
Full Stack Developer — кто это?
Вы в универе сайтики под заказ делали? Если да, то это оно и есть, только -красивое название- в окультуренной форме.
Создается впечатление о «дилетанте широкого профиля» умеющие не очень хорошо делать все подрят.
Хорошо, не хорошо — это отдельная история. Более корректно, наверное, будет так:
Умеет делать все (настройка окружения, БД, написание бэк-энда и фронт-энда, а еще немного бизнес-анализа) на __достаточном__ уровне.
-это девелопер, вызвавший переполнение стека
-или завсегдатай StackOverflow.com

Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
242 коментарі

Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Andrey Yakovlev PHP-developer 27.09.2018 11:56
это из словарика «крутых названий для простых профессий»
среди них:
«секюрити» — сторож/вышибала
«менеджер по продажам» — продавец.
«менеджер по связям с клиентами» — оператор колцентра (телефонист)
«менеджер снабжения» — завхоз.
«фулстек программист» — IT-разнорабочий.
знаешь 1 бек-енд фреймворк, знаешь 1 фронт-енд фреймворк, ну все фул-стек девелопер. сегодня это не так сложно вроде
Виталий Осколков Java Developer в DataArt 29.03.2017 11:54
Столько ерунды понаписали, что глаза вылазят.
Full Stack Developer это веб разработчик имеющий знания и опыт в разработке как frontend так и backend составляющих. Обычно требуется в компании где нет деления на frontend/backend разработчиков, когда компания маленькая или фронтенд составляющая на проекте не требует большого количества разработчиков. Стеком технологий Full Stack разработчика обычно являются знания (JS, html/css, >=1 js framework, какой либо бекенд язык + фреймворки)
В более широком смысле фул стек разработчик — это специалист, который обладает знаниями для разработки веб проекта от А до Я, пусть и не очень глубокими.
Microsoft Full Stack developer test влючає: C# + SQL + Patterns + JS + HTML/CSS + AngularJS (необовязково)
Fool stack.
Выговаривается важным тоном, с надуванием губ, обычно туповатыми манагерами, которые сами не Асилили программирование, да и недосуг разбираться в куче технологий, ибо митингов слишком много.
Прогресс -это узкая специализация и разделение функций, имхо.
Но чтоб наладить осмысленный процесс с разделением функций и полномочий, этж надо вникать, не для мозговых борделей сие.
Кстати, об отсорсинговых 0внопроектах, бессмысленных и беспощадных.
Вероятно, приличные клиенты не пользуются мозговыми борделями как приличные мужики -борделями.
Upd: А не хотите ли прозу на тему 0внопроекта, по типу «Галер»?
Я скажу честно, что быть «туповатым манагером» — это еще то счастье. Выслушавать: бесконечные бредни, визги, жалобы, недовольства, «гениальные» идеи клиента. А с другой стороны «гениальный» программист, у которого: геморрой, умерла собачка, ему жарко,»хер его знает» когда и просто, нет вдохновения.
Maks Grishchuk QA Engineer в HUBBER 26.05.2017 15:40
Вам сюда: https://******.it
Если кратко, full stack developer — это новое название вебмастера. Тобишь человек, который умеет делать сайтики. То есть человек, который обладает околонулевыми знаниями в разработке ПО.
full-stack разработчик, это человек, который умеет создать крутой уникальный не имеющий аналогов ой простите что то я загнался сайт на wordprass. А если без шуток, то печально это все. То что творится в веб программировании в среде LAMP — просто ужасно. Разнорабочий. Потому я ушел в android, хоть понимаешь что учить, и знаешь что это и будут требовать при собеседовании, а не выучишь фреймворк yii2 а там попросят создавать джумла сайты. Я конечно неопытный и все такое, но это то как я вижу. Теряется понятие программист в вебе. Какой то вебмастер который умеет дописать модуль. А уж об использовании стандартов разработки и вообще нет смысла говорить. Каждый пишет как хочет. Книгу «Совершенный код» можно выбрасывать.
Sergey CHenakal Web Developer 03.12.2014 09:36
В контексте JavaScript — вы правы, MEAN стек и тому подобные.
Full Stack Developer — это насколько я понимаю прграммер, который разрабатывает и фронтэнд, и бэкэнд (в случае с веб-разработкой). Для этого такие программеры скорее всего юзают те инструменты, которые позволяют и бэкэнд и фронтэнд писать на одном языке, например: Node.js + Express.js + backbone.js + еще-что-то-джаваскриптовое, или какой-нить Haskel + Yesod + PureScript ( github.com/. ript/purescript ). Или еще пример: Clojure + Compojure (типа фреймворк для кложуры) + ClojureScript + Datomic (база данных, написанная на кложуре).
По крайней мере я так это понимаю.
не хрина сбе ТЫЖ ПРОГРАММЕР
а еще они на js готовят себе покушать
точнее пишут скрипт заказа пиццы одним кликом мышки, чтобы не надо было каждый раз париться с готовкой обеда)
этим занимаются PHP программисты
ну, на самом деле — они его совместно пишут методом вставки php и js кода внутрь одной html-страницы, ибо зачем ради одной кнопочки городить много файлов, если весь функционал в принципе можно в один файлик index.php запихнуть))))
Victor Mikhaylov junior manual tester 27.11.2014 16:51
-это девелопер, вызвавший переполнение стека
-или завсегдатай StackOverflow.com
-это девелопер, вызвавший переполнение стека
Точно! Когда я вижу в жабаскрипте функции десятикратной вложенности то у меня наступает переполнение стека.
Когда я вижу в жабаскрипте функции десятикратной вложенности то у меня наступает переполнение стека
Не пробовали api.jquery.com/?s=deferred ?
Michael P Software Developer в Xenoss 30.11.2014 22:15
а что, все вложенности бывают из-за колбеков?
Michael P Software Developer в Xenoss 30.11.2014 22:16
может там кложур такой суровый 😉
Ходив недавно на співбесіду у Львові. Запрошували як php програміста. Потім (на співбесіді з тімлідом) виявилося, що вони пишуть на дотнеті, але деколи буває php, тому треба буде дотнет вчити. На мою фразу «я працюю на лінуксі, навряд я подружуся з дотнетом», мені видали геніальну фразу: «Ну, тоді можна на джаву перейти, у нас є пара проектів». Майже дослівно.
Багато українських «компаній» — це не компанія, яка працює і розвивається. Це тупо менеджери, які сосуть грошовиту цицьку з Америки/Канада/Європи і роблять все те, що їм дають. Звісно, що проекти вони +/- не вибирають і бувають випадки, коли треба щось нестандартне в рамках компанії. Важко запросити людину на бо нема гарантій, щоб для щось буде потім.
P.S. В компанії зі співбесіди Full Stack Developer гордо називали «універсал».
Andrew Starodubtsev DevOps engineer в Individual contributor 26.11.2014 19:59
это человек-агентство ( менеджер-дизайнер-разработчик )
full stack dev — это плагиат, дешевый плагиат с любой русской сказки про:царя,его дочь-красавицу принцесу и три задания для доброго молодца.Понятно,что в духе ООП оверайднули красавицу,свадьбу и счастливый конец на свою реализацию бесплатных курсов,сертификатов и афтер оффис.
В связи с активным развитием Full-stack фремверков возможно как раз имеются ввиду девелоперы владеющие этими технологиями. Почитайте про про Meteor.JS про Derby.js, даж банальные связки node.js + rest api+ angularJS, это уже фуллстек. И с этим сомжет справиться один js девелопер.
В контексте JavaScript — вы правы, MEAN стек и тому подобные.
Больше спрашивается классический back-end разработчик(Java, .NET, PHP. ) + Front-End
Php + angular сейчас используеться в каждом втором проекте, думаю на других платформа ситуация примерно такая же. Хорошего js девелопера днем с огнем не сыщешь (вокруг одни jquery программисты =D). А верстальщикам там нечего ловить. Вот и пытаются искать бекендов которые имеют опыт в подобных проектах (которые умеют проектировать приложения больше чем на одной платформе). Конечно тут нужно уметь чуть больше чем выбрать данные из базы, и вывести их на страницу в таблице 🙂
Я в свое время так и работал. .Net + Front-End JS. Помимо этого еще при наличии свободного времени переверстывал верстку, ибо на кнопочки, заверстанные через таблицу уж больно тошно было смотреть. Так чтовполне себе жизнеспособный вариант.
Ivan M Software Engineer в Лідер ринку 27.11.2014 00:13
И с этим сомжет справиться один js девелопер
Для backend и frontend нужны разные скиллсеты, и язык — это очень малая часть необходимого.
И почему это называется не Java Script developer (80 левел), а «Full Stack»?
На .Net то же можно разработать самые разные приложения и сайты, не только «сервер-сайд». А на Java или C можно писать под все на свете.
Потому что как писал Иван Мазепов выше, язык это далеко не самое главное.
Oleg Kariakin Senior Java Developer 26.11.2014 14:01
Переключение контекста и вида деятельности значительно снижает производительность, поэтому на средне-сложном проекте 1 x backend + 1 x front-end сделают больше и качественнее и быстрее чем 5 х fullstack. При этом итоговая стоимость содержания таких вот разных команд может быть примерн одинаковой, потому что узкоспециализированный специалист как правило всегд зарабатывает больше за счет компетентности и экспертизы.
экспертизы.
Откуда пошла мода на это слово ? Ведь логичней было бы заменить на экспириенс или скилз
Oleg Kariakin Senior Java Developer 26.11.2014 14:45
Экспертиза вдобавок к экспиенс, скиллз включает в себя немного ЧСВ
Айк Арутюнян Senior Director of Demand Generation в Trinetix 26.11.2014 17:58
Отличные исконно русские buzz-word’ы.
По сабжу — экспертиза — это несуществующий плохой вариант несуществующего плохого слова экспертность.
на средне-сложном проекте 1 x backend + 1 x front-end сделают больше и качественнее и быстрее чем 5 х fullstack.
Всетаки очень депендс на сам проект и на самих программистов.
Смотря что надо, есть качество и количество за Х времени, всё зависит от сложности задачи, я считаю, что сложную задачу качественно и много за Х времени сделать нельзя одному человеку, а простую задачу — легко. Но с другой стороны легко или сложно определяется опытом человека.
Vyacheslav Voronchuk CEO в Starbuildr LLC 25.11.2014 15:11
Меня немного удивляет позиция большинства местных разработчиков о Full Stack Developer (вероятно это связано с работой над Enterprise проектами), но когда технологические риски проектов не велики — это самый востребованный и оптимальный вид программистов в web-разработке, в США их масса. В стартапах на ранних стадиях их особенно любят, очень удобны для создания и поддержки MVP.
Эта должность предполагает более высокую квалификацию, чем обычный разработчик, но менее глубокую, чем инженер, который занимается разработкой инфраструктурных решений для high load, HA проектов, сложных баз данных и их ORM уровня.
Обычно получается 2 способами: backend разработчик решает изучить front-end, при этом продолжает заниматься backend частью; front-end разработчик решает изучить Node.js. К примеру, Meteor.js предполагает априори, что разработку будет вести Full Stack Developer, предоставляя инструменты для создания и поддержки единой базы кода.
Значит народ правильно понял что Full Stack Developer это такой «халтурщик», который знает всего понемногу достаточно что-бы склепать сайтик или апликашечку для «киоска с шаурмой».
В стартапах на ранних стадиях их особенно любят, очень удобны для создания и поддержки MVP.
Не сталкивался раньше с аббревиатурой MVP (вернее думал что это Most Valuable Professional). Полез на Вики: en.wikipedia.org/. _viable_product :
A minimum viable product has just those core features that allow the product to be deployed, and no more.
После этого я преисполнился гордости за украинское ИТ ! Ни одного подобного проекта в нашем бодишопе нет. Более того: человека, который бы на собеседовании рассказал что его практический опыт — это разработка MVP просто не взяли бы ни на один проект даже джуном! Его поверхностных знаний не хватило бы даже для багфикса.
Лично я всегда думал что подобную «халтуру» лепят или индусы, или студенты «за зачет». Удивлен что в США очень востребованы подобные «формошлепы». При этом они аутсорсят нам вполне серьезные проекты, даже если небольшие.
The canonical MVP strategy for a web application is to create a mock website for the product and purchase online advertising to direct traffic to the site.
У меня такие «стартапы» вызывают ассоциацию с нашими «чудо-приборами»: коробочка с лампочками, которая «экономит электричество», «прогоняет тараканов», «заряжает воду», «лечит все болезни», «защищает от радиации», «сжигает жир» и т.д.
lurkmore.to/Лохотрон
Неужели в США нет законов, которые запрещают рекламировать и продавать то, чего еще не существует?
Oleg Kariakin Senior Java Developer 25.11.2014 16:45
Неужели в США нет законов, которые запрещают рекламировать и продавать то, чего еще не существует?
Мошенничество во-первых крайне сложно доказать, потому что человек отдал деньги сам. А где-то мелким шрифтом было написано что эта хрень с лампочками — просто хрень, а не чудо-прибор. Во-вторых запретить — это советский подход, в США так не принято, государство получает налоги, чуваки получают иллюзию, никто не пострадал. Пока будут доверчивые люди, мумиё будет продаваться, даже подпольно.
Мошенничество во-первых крайне сложно доказать, потому что человек отдал деньги сам.
Если человек отдал деньги не сам добровольно, то это уже немножко другая статья.
Oleg Kariakin Senior Java Developer 25.11.2014 18:26
Я в курсе, Первое правило лохотрона: любой лохотрон всегда построен таким образом, чтобы выполнять заповедь «Не кради». Лох всегда приносит и отдает деньги сам. (лурк)
Євген Козлов Front-end developer в SoftServe 25.11.2014 17:06
A minimum viable product has just those core features that allow the product to be deployed, and no more.
Не, ну, зачем эти претензии к концепции «разработаем основу, а там посмотрим»?
вот, thunderbird был по модели «MVP» — запилили базовую версию почтового клиента и развивали с оглядкой на хотелки толпы и веяние рынка.
а Outlook с самого начала был таким комбайном почта+календарь+кофемолка, что мажорные версии только с Офисом поставлялись. и надо было отдельно запилить outlook express, чтоб хоть как-то позволить работать с почтой без установленного офиса.
какой подход лучше? думаю, тут зависит от кучи факторов.
и да, то, что MVP применяется к стартапам, большинство из которых изначально не жизнеспособны, еще не значит, что подход — лохотрон или халтура.
такие громкие лозунги))) хотелось бы понять насколько вы компетентны что бы так говорить — может покажите какой нибудь ваш личный продукт в эпл сторе или в сети или похвастаетесь выигрышем какого нибудь конкурса программирования ? или покажите хоть один сильный продукт который делает ваша контора ?
Наша контора («лидер рынка» — название разглашать не буду) делает «сильные» продукты для топ-компаний из США и Европы. В разных областях, включая медицинские устройства (полный FDA аудит). Многие системы работают уже 10+ лет с нагрузкой в десятки тысяч пользователей.
Проектировать и разрабатывать сложные системы (Enterprise уровня) — это то, ради чего я пришел и остаюсь в ИТ. «Апликушечки» для эпл-стора или сайтики — стартапчики меня как-то мало привлекают. Последний раз подобные шабашки я делал студентом на Делфи.
Так же особо не стремился проходить сертификации или участвовать в конкурсах — выходит похвастаться особо нечем.
И никаких «громких лозунгов»: просто наши ИТ компании делают проекты действительно высокого уровня «под ключ», а не MVP — шабашки. У нас студенты приходят и уже через полгода пишут код для медицинских устройств — а не «тяп-ляп и в продакшин».
бла-бла-бла. оказалось что в личных достижениях по теме программирования нету ничего не только выдающегося но и вообще ничего. Ну и как то бросается в глаза что медицинские системы и интерпрайз системы — это кажись немного разные вещи, так как медицинские это больше эмбеддед, а интерпрайз — это автоматизация.
en.wikipedia.org/. rprise_software
Энтрепрайз — это значит для организаций, а не отдельных юзеров. Госпитали, медицинские компании — то же организации. Девайсы с эмбеддед то же есть — но это только «листья» системы. А дальше информацию нужно пересылать, хранить, обрабатывать, показывать врачам и собирать их заключения и т.д.
в личных достижениях по теме программирования нету ничего не только выдающегося но и вообще ничего.
В «личных» достижениях и правда нет ничего. В одиночку сложную систему не разработать. Именно поэтому не спешу уходить из бодишопа во фриланс.
какие листья ? вы или разрабатываете девайсы для медицины либо системы документооборота. Вы не сможете разрабатывать и то и другое так как там требуются разные скиллы. Вы чтоли документоооборот для больничек делаете ?
«Документооборот для больничек»? Ну можно назвать и так. Хотя это скорее ближе к «облакам» для медицины. Подробнее можно почитать здесь: en.wikipedia.org/wiki/DICOM
ну да документооборот, понятно. Ну может ты там солюшин архитект ? или продакт овнер на каком то куске ? или СМЕ в какой то технологии ? или просто имплементиш юэмэли в сишарпе ? честно сказать я удивлен что ты вообще в такой отрасли работаешь так как это чисто индусятский бизнес, разные тата и айбиэм консалтинги — они просто мастера в сборе требований и выкатывании автоматизаций документооборота , все это пилится в индии и имеете ужастный интерфейс.
И это при том что можно провести генерацию кода из UML и тогда любой джун сможет докодить всю бизнес-логику.
лидер рынка — название разглашать не буду
Глобаллоджик
Не прав товарищ, для многих вещей лучше состряпать прототип, а потом делать хороший продукт, чем серйозно просрать время и деньги на узкоспецов во время отточки концепции, каждому своя ниша
Eugene But Software Engineer 25.11.2014 19:51
Вы не совсем правильно поняли про MVP. MVP не для монетизации или продажи. Это продукт, который можно показать инвесторам или пользователям, чтобы получить быстрый feedback.
фидбек или бабло ?
Eugene But Software Engineer 25.11.2014 19:57
От пользователя фидбек. От инвестора и то и другое. З.Ы. В стартапе никогда не работал.
Тем более странно: нанимаем девелопера, который «на коленке» по-быстрому сваяет «нечто», потом покажем пользователям и инвесторам, они скажут ОК, а потом что — все переписывать, или дальше халтуру лепить?
Я всегда думал что для инвесторов делают POC en.wikipedia.org/. roof_of_concept т.е. это полноценный прототип на тех технологиях, которые будут потом использоваться, а не «картонный макет».
Добро пожаловать в en.wikipedia.org/. way_prototyping
По опыту, наиболее эффективный метод прототипирования.
Arsen Gutsal CTO/CEO в SOFTSKY 19.05.2015 04:59
Maksym Yemets web developer в WebDevs 26.11.2014 14:30
Ну, в общем, «картонный макет» с некоторыми «усилителями жесткости» до упора, а дальше, если «дорожная карта» выполняется, и стартап успешно выходит на «новый уровень инвестиций» (очередной раунд), могут быть наняты программисты для дописывания/переписывания «чтобы все работало».
Штат может переформатироваться с тех пор (даже несколько раз), после чего, внезапно, основатели (в т.ч. и программиста — «наколенщика») продают свои доли, стартап продается какому-нибудь «гиганту», нанятые «позже» продолжают работать как работали (в т.ч. поддерживая или переписывая старый код), а получившие деньги уходят в длительные отпуска и начинают задумывать очередную шнягу.
Но это — если все «раунды» успешны, а стартап либо безубыточен, либо, даже при убыточности привлекателен чем-то другим (может стать базовой рекламной площадкой, типа Ютьюба).
Я имел счастье некоторое время побыть кем-то вроде упомянутого «фуллстека» в одном стартапе 🙂
Arsen Gutsal CTO/CEO в SOFTSKY 19.05.2015 04:58
Если умно MVP начать, то дальше разделяешь на тайеры и спокойно дописываешь функционал уже в команде, набраной под конкретные цели на бабло, выделенное инвестором
Это разные стадии.
Аутсорсят проекты, где уже все понятно что нужно сделать. Обычно даже уже сделано и нужно лишь поддерживать, оптимизировать, фиксить баги и внедрять новые фичи, эволюционно.
Но чтобы дойти до стадии успешного продукта/бизнеса сначала нужно понять, что делать, зачем и для кого. И в этом случае очень ценно возможность делать быстрые итерации. А самые быстрые — это full-stack dev, который может сделать MVP целиком или новую итерацию быстрее, чем команда аутсорса проведет скрам-митинг и опишет задачи в стори пойнтах.
Это разные стадии.
Тогда понятно! Моя работа обычно начинается на стадии когда уже понятно что надо сделать и нужно придумать как.
Жаль что такую работу не аутсорсят — думаю многие студенты, которые только начинают изучать .Net могли бы наформошлепать первую зарплату. В студии простенький сайт в облаке можно развернуть за полчаса из шаблона. Нужно только выбрать подходящий из нугета. И он будет вполне «фулстек»: с базой, сервером, логином из фейсбука, дизайном из «бутсрапа» и при желании даже SPA.
Только для 1% стартапов сегодня главный риск это технология. Т.е. удастся ли в принципе решить задачу. Условно, AI, полет на Марс, смартфон с батарейкой на неделю. Для остальных 99% основные риски другие. Маркетинг, позиционирование, бизнес-модель, ниша и т.п. Поэтому там и ценится возможность быстро проверить разные «гипотезы» перед тем, как браться за разработку «всерьез».
Alex Fogol Software Developer, C/C++ Expert 27.11.2014 00:32
перед тем, как браться за разработку
Не будет никакого «перед тем как» и «всерьез». Ничего не будет. Есть «агиле». Всё. Действительно всё.
«Браться за разработку всерьез» — этим занимаются только большие или не очень, но действительно промышленного уровня индустриального подхода компании класса мелкософт интел хп и железячники всякие на субподряде и вообще ребята, у которых и сам процесс «проверить разные гипотезы» — точно так же на промышленные объемы и индустриальные рельсы поставлен. Это «тесла» собрана на коленке потому что их сделано всего 20 тысяч штук в год, а компания Дженерал Моторз выпускает 8 миллионов машин. А мелочь всякая у которой айфон вместо бортового компьютера — никогда они «всерьез» ничего делать не будут потому что никогда не делали и делать не могут просто потому что не знают как и именно так и задумано.
Процесс разработки подстраивается под «процессы» заказчика. А не наоборот.
От така . малята. (к) (тм)
Alex Fogol Software Developer, C/C++ Expert 27.11.2014 00:18
Жаль что такую работу не аутсорсят
Аутсорсят. Только не на «лидеров рынка», а на фриланс-биржи.
Vyacheslav Voronchuk CEO в Starbuildr LLC 25.11.2014 20:16
Под MVP я понимаю функциональный продукт, не рассчитаный на быстрое масштабирование. Если на продукт есть спрос, в него вкладывается больше денег и производиться реинжениринг с масштабированием и инфраструктурой.
В Украине достаточно большая проблема с Full Stack разработчиками, которые пишут код хорошего качества, чтобы еще и хорошо верстал — вообще редкость. Я повторю, что Full Stack — это не «формошлеп» — это разработчик, уровень которого позволяет разрабатывать как обычный backend и frontend разработчик, плюс эффект синергии из-за отсутствия лишней коммуникации.
вы плохо знаете Украину)))) украинские цены на такого рода услуги одни из самых низких при очень читаемом коде и использовании распостранненых технологий.
В Украине достаточно большая проблема с Full Stack разработчиками, которые пишут код хорошего качества, чтобы еще и хорошо верстал — вообще редкость.
Что бы писал код хорошего качества одинаково хорошо на Java и Java Script + еще и хорошо верстал? Думаю да — большая проблема найти такого, да еще и что бы ему платить поменьше.
«Нужен мне работник: повар, конюх и плотник! И где найти мне такого — служителя не слишком дорогого?»©
Vyacheslav Voronchuk CEO в Starbuildr LLC 26.11.2014 13:56
Я о деньгах ничего не говорил, как и о Java. Тут более хипстерские технологии востребованы: Node.js, Go, Ruby иногда Python.
Ну если одному человеку, который знает хорошо Python и Java Script (еще и верстает!) платить за двоих: фронтенд + бэкенд девелоперов и он будет все успевать то все ОК. Наверно поэтому такие ребята и водятся не у нас — а в Штатах.
Maksym Yemets web developer в WebDevs 26.11.2014 14:33
Да ладно, php/MySQL/HTML/CSS/JavaScript/jQuery.
Vyacheslav Voronchuk CEO в Starbuildr LLC 26.11.2014 14:34
Maksym Yemets web developer в WebDevs 26.11.2014 14:49
Маловато. Ещё пару фреймворков (хотя бы один типа Зенд или Кохана), и в довесок что-то типа Joomla, или Друпал, или
Gennady Dogaev full-stack web developer (freelance) 26.11.2014 18:37
И что вам всем понадобилось у меня в профиле?
Maksym Yemets web developer в WebDevs 26.11.2014 18:57
Хм, ну я могу заменить Kohana на CodeIgniter (и добавить Yii, и некоторые форумы), Gearman — слышал (но обошлись своим), supervisord — не требовалось, и? (и я молчу про некоторые самописки, вообще, при этом)
При этом недавно 4 месяца кряду занимался «стартапом», написанным на «наколенном» PHP, местами даже без внятного MVC, зато с раундами у инвесторов, и «когда менеджеров и маркетологов ощутимо больше, чем программистов».
Вон, знакомый обладает самописками, педалил на Си (вплоть до драйверов на брэнды типа HP или Motorola), матерится на фреймворки, а нынешним его источником дохода являются его же Андроид приложения, базирующиеся на веб-сервисах, писанных им же на Пыхе. На его фоне — мы вообще пигмеи — ибо он до кучи ещё и андроидщик с продажами, и сишник. Но прикол в том, что он ещё и немножко лентяй 🙂
Gennady Dogaev full-stack web developer (freelance) 26.11.2014 19:50
Меня просто повеселило, что в ветке были перечислены практически все сокращения, что и у меня. Я понимаю, что нас с таким списком много.
Эм, любопытства ради, а в чем соль перечесления в стеке технологий supervisord .
Gennady Dogaev full-stack web developer (freelance) 27.11.2014 21:06
Oleg Kariakin Senior Java Developer 26.11.2014 13:55
Эффекти синергии возникнет, если он будет получать тройную зарплату за два вида деятельности, потому что двойная это просто достойная компенсация.
Vyacheslav Voronchuk CEO в Starbuildr LLC 26.11.2014 14:01
Они не работают больше остальных, те же рабочие часы, просто более разноплановая работа. Компенсания зависит от политики компании, я нашими full stack и их синергией полностью доволен.
Alex Fogol Software Developer, C/C++ Expert 27.11.2014 00:34
это разработчик, уровень которого позволяет
Более того: все современные «модные» фрейвоки в первую очередь (и в последнюю тоже) рассчитаны именно на такой подход — делать «функциональный продукт, не рассчитаный».
это такой «халтурщик», который знает всего понемногу
Есть и другой вариант: человек, обладающий огромным опытом и энциклопедическими знаниями в разных областях IT, способный в одиночку работать над серьезными проектами с предсказуемым результатом.
Ну, во-первых, такой человек не станет работать задешево. Во-вторых, навряд-ли ему будет интересно делать прототип «на коленке», который потом выкинут. В-третьих сложно представить себе серьезный проект, над которым работает всего один девелопер. Даже если он супер-профи разработка затянется настолько, что к релизу результат уже устареет.
Такие профи скорее руководят командой разработчиков на серьезном проекте или вообще выходят на уровень архитектов или СТО и курируют несколько проектов.
Если я понял идею MVP то это как раз дешевая «обертка без содержимого», поэтому нужен именно разработчик подешевле.
Во-вторых, навряд-ли ему будет интересно делать прототип «на коленке», который потом выкинут.
На коленке с нуля какраз очень интересно может быть делать. То что потом скорей всего выкинут — да, неприятно, но сумма нулей на чеке должна это с лихвой перевесить.
В-третьих сложно представить себе серьезный проект, над которым работает всего один девелопер.
Не энтерпрайз и не промышленный, конечно левел. Тем не мение какаянить математика чегото там, далающая ченить полезное, или прибыли — вполне.
Alex Fogol Software Developer, C/C++ Expert 27.11.2014 00:13
Ни одного подобного проекта в нашем бодишопе нет.
Есть. После роста компании (в случае такового) проект «МВП» передается аутсорсеру на «а теперь сделайте так чтобы мы могли поддерживать 100500 коннекшинов в секунду и чтобы стоило это не больше 100.50 долларов.»
Что в переводе с коммерческого языка успешных американских менеджеров продажных офисов соотв. тоже «оттуда» означает примерно следующее в вольной интерпретации все совпадения с реальностью случайны и вымысел:
«Ну тут мы начали писать на паскале потому что у нас был только один программист среди фаундеров и он знал только паскаль и написали МВП под виндоус ну потому что ноутбук был тоже один и с линукс ноутбуки не продают и мы успешно задеплоили это на сервер которые нам продала местная телефонная компания и там таки был виндоус и с этим мы получили вторую часть финансирования и теперь мы на коне правда от неё осталось только 100.50 долларов потому что остальное мы уже потратили на маркетинг и на привлечение 100500 новых клиентов и теперь нам консультанты из технической компании местной нарисовали стоимость масштабирования нашего текущего решения и это полностью съедает не только все деньги но и мамино ранчо и папину пицерию потому что лицензии серверные виндоус стоят как-то очень дорого и мы конечно делая МВП ничего такого не рассчитывали и мы слышали что есть такой линукс и он бесплатный совсем и теперь вот мы хотим вашими программистами перенести всё наше на новую платформу и запилить еще сразу же 100500 фич которые уже проданы нашим новым 100500 клиентам и вотЪ»
(здесь: пунктуация соблюдена авторская)
Далее начинается тоже интересное, потому как со стороны уже компании аутсорсера никто не знает делать как кроме уже налаженного процесса «агиле» который выражается в ежедневном ублажении «продакт овнера» и в скрим-митингах — вуаля! — таких же точно «фулл-стек программистов» потому что никто не знает как его эту систему делать а сесть и составить план и вообще ватерфолл с архитектурами всякими это же ж некошерно потому что клиент в своей жизни видевший только паскаль виндоус и «процесс коленно-гаражный» тут же напугается и убежит.
И кто там после всего этого «фулл-стек программеры»? 😉
Как стать full-stack разработчиком

Традиционно разработчики делятся на frontend и backend разработчиков; это обусловлено разделением ответственности между внешним представлением проекта (frontend) и внутренними технологиями (backend). Очень грубо обобщая, можно сказать, что фронтенд разрабатывает интерфейс, который видят пользователи, а бэкенд делает «начинку», т.е. программно-аппаратную часть. Такое деление является логичным и создано для упрощения разработки проекта. Однако все чаще в IT-среде появляются full-stack разработчики. О том, кто они такие и какие технологии актуальны для фулстек-разработчика, я расскажу ниже.
Определение
Full-stack developer (или фулстек-разработчик) – это разработчик, который должен разбираться во всем стеке технологий и используемых в проекте компонентов, как в части фронтенда, так и бэкенда. При этом такому разработчику совсем не обязательно быть senior во всех технологиях, которые используются при разработке приложения.
Как правило, фулстек-разработчик должен полностью закрывать весь стек разработки, в том числе разбираться в серверах, операционных системах и разных базах данных, а также PaaS.
Но есть и упрощенные виды фулстека – например, фулстек-разработчик WordPress. Это разработчик, который может делать и развертывать сайты на WordPress. В общем, определение такого разработчика и требования к нему могут разниться.
Фулстек разработчик имеет свои планы и минусы.
Плюсы :
- Знание многих технологий дает возможность выбрать, куда двигаться дальше; ему проще перепрофилироваться.
- Работа разнообразна, так как есть возможность менять проекты, пробовать разные варианты и технологии.
- Fullstack-разработчики понимают работу многих технологий, и поэтому могут выбрать хорошее решение для проекта, исправить недочеты существующих проектов и так далее.
Минусов , конечно, тоже хватает:
- По сравнению с узкоспециализированным разработчиком, у фулстек-разработчика меньше знаний в каждой из областей (то есть его знания работают вширь, а не вглубь).
- Из предыдущего пункта вытекает то, что ему сложнее развиваться – приходится осваивать все и сразу, а не концентрироваться на развитии в одном направлении.
- У Fullstack-разработчика часто отсутствует фиксированная зона ответственности, и из-за этого его еще сложно заменить другим специалистом.
- Нужно уметь хорошо планировать свою работу для того, чтобы все и везде успевать – иначе появится риск перегрузки задачами.
Если, несмотря на это, вы все равно решили стать фулстек-разработчиком, то ниже я перечислю актуальные (на данный момент) технологии, которые вам обязательно нужно выучить.
Комьюнити теперь в Телеграм
Подпишитесь и будьте в курсе последних IT-новостей
HTML/CSS

HTML и CSS – основа основ. Любой веб-разработчик должен знать HTML и CSS. HTML позволяет добавлять контент на сайт, а CSS отвечает за стиль этого контента. Темы, которые чаще всего затрагиваются при разговоре о HTML/CSS во время собеседования:
- Семантическая верстка HTML.
- Блочная (боксовая) модель CSS.
- Преимущества предпроцессоров CSS : LESS, Sass, Stylus и другие.
- Медиа-запросы CSS.
- Bootstrap (фреймворк с инструментами, необходимыми для создания веб-сайтов и приложений).
JavaScript

JavaScript (JS) – язык, который с каждым годом становится все популярнее и обрастает все большим количеством библиотек, фреймворков и инструментов.
Интересно, что в опросе Stack Overflow 2016 года JS стал самым популярным языком во всех трех областях: fullstack, frontend и backend. В опросе 2017 года JS просто стал самым популярным языком среди всех языков программирования. Ничего удивительного в этом нет – JS единственный язык программирования, который используется и в браузере, и в качестве серверного языка (благодаря Node.js). В качестве фулстек-разработчика нужно разбираться в следующих темах:
- Работа с DOM . Также желательно знать, что такое и уметь использовать JSON .
- Важные особенности языка: композиция функций , наследование классов , делегирование событий , функции высшего порядка .
- Порядок обработки событий (в том числе асинхронный), промисы и колбэки (функции обратного вызова).
- Правильное структурирование кода и работа с модулями .
- Знание webpack , browserify и gulp .
- Знание хотя бы одного популярного фреймворка ( React , AngularJS …). Вообще, понимание самого JS важнее, чем знание фреймворков, т.к. в любом из них тогда будет несложно разобраться.
- Знание jQuery .
- Автоматическое тестирование.
Язык бэкенда
Теперь надо перейти к бэкенду, который отвечает за работу с базой данных, аутентификацию пользователей и логику работы приложения в целом. Не так важно, какой язык вы выберете, главное – это действительно понимать его и знать все нюансы. Если задать на какой-нибудь популярной площадке вопрос о том, какой язык бэкенда лучше всего выучить, то разброс ответов будет широким: про каждый язык вы услышите и хорошее, и плохое.
Поэтому ниже я перечислю все популярные языки и технологии бэкенда.
Важное уточнение: вне зависимости от того, какой язык вы решите в итоге изучать, главное – продолжайте изучать именно его. Не надо распыляться сразу на несколько вариантов.
- Node.js : хороший вариант, т.к. это просто окружение JS (то есть при знании JS не нужно будет учить новый язык программирования). А самый популярный для изучения и создания приложений фреймворк – это Express .
- Ruby : еще один популярный для бэкенда язык. Самые популярные фреймворки: Ruby on Rails и Sinatra .
- Python : популярные фреймворки – Django и Flask .
- Java : сейчас Java уже редко изучают для применения в бэкенде, однако существуют компании, которые его до сих пор используют, поэтому найти работу можно и с этим языком программирования.
- PHP : сейчас является краеугольным камнем в вебе, но конкретно в бэкенде используется нечасто.
Базы данных и веб-хранилища
Во время изучения веб-разработки вы рано или поздно придете к тому, что данные нужно где-то хранить. А также нужно иметь возможность получить к ним доступ позже.
Поэтому обязательно нужно углубиться в следующие темы, касающиеся БД и хранения данных:
- Преимущества реляционной модели данных , SQL .
- NoSQL базы данных , например MongoDB .
- Умение подключать выбранную базу данных к выбранному языку бэкенда (например, MongoDB и Node.js ).
- Преимущества СУБД в оперативной памяти : Redis , Memcached .
- Веб-хранилище для хранения сессий, куков и кэша в браузере.
- Масштабирование баз данных , ACID , ORM .
HTTP и REST
HTTP – это протокол передачи данных прикладного уровня, он обеспечивает взаимодействие сети и пользователя. Например, если JS-код делает какой-либо AJAX-запрос к бэкенду на сервере, то это происходит посредством HTTP. Важные в этой части темы перечислены ниже:
- Что такое REST .
- Использование REST API .
- Запросы POST и GET .
- Использование Chrome DevTools .
- Работа с SSL-сертификатами.
- HTTP/2 , SPDY , WebSocket .
Архитектура веб-приложения
После того как вы познакомитесь с HTML/CSS, JavaScript, бэкендом, базами данных, а также HTTP/REST, настанет время перейти к архитектуре веб-приложения. Для того чтобы создать сложное приложение, вам нужно знать, как правильно структурировать код, как разделять файлы, где держать большие медиафайлы, как структурировать данные в базе данных и так далее.
Конечно, обо всем этом можно прочитать в сети, однако наилучшим решением будет практика, ведь лучше всего работать не одному, а в команде.
Поэтому не факт, что человек, который занимается разработкой более 7 лет, знает CSS или JS лучше разработчика с двухлетним опытом работы. Однако чем больше опыт у специалиста, тем с большим количеством приложений он работал, а значит, работая с ним в команде, появляется возможность узнать больше об архитектуре и дизайне приложений (помимо других важных вещей). Опыт дает возможность увидеть картинку целиком.
Однако пока вы в начале пути, ознакомьтесь со следующими темами:
- Платформа как услуга , например Heroku, AWS.
- MVC.
А вот вам одно познавательное видео (на английском):
Git
Git – это система контроля версий, которая позволяет разработчикам, работающим над одним проектом, следить за изменениями в коде. Научиться использовать Git несложно, для этого посмотрите:
- Руководство для начинающих.
- Учебник по Git .
- Основные команды.
Заключение
Теперь вы знаете все основные темы, в которых нужно разбираться для того, чтобы носить звание фулстек-разработчика. Конечно же, теория – это хорошо, но в мире программирования наибольшую роль играет практика, так что не забывайте все прочитанное и услышанное обязательно пробовать и использовать в своей работе.