Фуллстак что это
Перейти к содержимому

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

  • автор:

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

 IT RECRUITER BLOG

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

Company

Разница между 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 разработчиком

Как стать 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 во время собеседования:

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

JavaScript

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 .
  • Основные команды.

Заключение

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *