Бэкенд-разработчик: кто это и сколько зарабатывает (обзор профессии)

Содержание:

КТО ТАКОЙ BACKEND-РАЗРАБОТЧИК?

Бэкэнд — это комбинация технологий и программного кода, которая обеспечивает работу веб-сайта или приложения, оставаясь при этом невидимой для конечного пользователя. Серверная часть состоит из трех основных компонентов: сервера, базы данных и программного приложения. Таким образом, задачей бэкенд-разработчика является создание и поддержка технологической платформы, обеспечивающей работу той части веб-сайта или сервиса, которая видна конечному пользователю, то есть интерфейса.

За что отвечает backend-разработчик:

  • Обеспечение корректной работы всех функций сайта и его вычислительной логики;
  • Организация и работа с базами данных через Database Management System;
  • Разработка базовой логики и прикладных алгоритмов;
  • Application programming interface;
  • Необходимые интеграции с внешними сервисами;
  • Тестирование и отладка приложения и отдельных компонентов.

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

Что нужно знать и уметь

Фронтенд-специалист – это человек, который знает основы работы по нескольким направлениям. Например, знает как минимум на начальном уровне веб-дизайн и обязанности верстальщика.

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

Профессиональные навыки frontend-разработчика:

  • знать и понимать основы верстки и ее методологий;
  • создавать одинаковые страницы во всех браузерах и в разных устройствах;
  • должен уметь работать с HTML и CSS;
  • разбираться во фреймворках – наборе готовых решений, которые помогают создавать интернет-сервисы быстрее;
  • иметь знания и навыки работы в JavaScript;
  • знать английский язык на уровне Intermediate и выше;
  • иметь представление о начальных этапах работы с адаптивным дизайном;
  • знать, что такое язык серверного программирования, и уметь с ним работать;
  • изучить Git – систему для отслеживания и контроля изменений в версиях файлов.

Личностные характеристики:

  • аналитическое мышление;
  • ответственность;
  • коммуникабельность и умение общаться с разноплановыми специалистами;
  • креативный подход к работе;
  • аккуратность;
  • трудолюбие;
  • способность доносить свои идеи и мысли в устной и письменной формах;
  • умение находить решения проблем;
  • внимательность;
  • соблюдение сроков работы;
  • объективная оценка своих возможностей;
  • целеустремленность;
  • постоянное развитие в сфере IT-технологий, быстрое освоение новых инструментов и сервисов.

Основные инструменты для работы

Frontend-разработчик – это не самая легкая должность. И универсальные инструменты будут упрощать работу специалиста и станут для него незаменимым помощником.

Они позволят ему автоматически выполнять сложную и повторяющуюся работу, увеличат производительность труда.

  1. HTML мы уже затрагивали. Простыми словами это машинный язык для общения с поисковыми системами.
  2. CSS – это язык, на котором описывается внешний вид элементов на веб-страницах.
  3. JavaScript – язык программирования, на котором написаны библиотеки готовых приложений (скриптов). Он является самым важным для frontend-разработчиков.
  4. jQuery – библиотека, которая нужна для создания анимационных деталей и форм онлайн-заявок.
  5. Photoshop – используется для разделения макетов, присланных веб-дизайнером, на составные части.
  6. Шаблонизаторы – позволяют использовать данные для создания конечных html-страниц в динамическом режиме.

Что такое frontend?

Фронтендом (англ. front-end) называют клиентскую сторону пользовательского интерфейса по отношению к программно-аппаратной части сервиса.

Говоря простым языком, frontend — это разработка функциональности и пользовательского интерфейса, работающих на клиентской стороне приложения или веб-сайта. Сюда относят всё, что пользователь видит, открывая веб-страницу. Для создания удобного и востребованного продукта фронтенд-разработчики сотрудничают с программистами, дизайнерами, UX-аналитиками.

Откройте страницу любого веб-сайта и вы увидите перед собой его интерфейс. А потом щёлкните правой кнопкой мыши и нажмите «Посмотреть код страницы». Этот код и будет примером фронтенда. Он описывает всё, что вы видите, начиная от вёрстки и всей палитры цветов, заканчивая шрифтами, графическими элементами и т. п.

Вот, взгляните:

К frontend-разработке относят:
• HTML — язык разметки документов, посредством которого формируют структуру веб-страницы: заголовки, списки, абзацы и т. п.;
• CSS — язык для стилизации внешнего вида документа, его описания. Благодаря CSS-коду браузер понимает, как отображать элементы. С помощью CSS задаются цвета и параметры шрифтов, определяется расположение блоков веб-сайта и т. п. Также он даёт возможность выводить один и тот же документ в нескольких стилях, например, для печати и т. д.;
• JavaScript — язык, в буквальном смысле оживляющий веб-страницы. Он обеспечивает реагирование интерфейса на действия пользователя, обрабатывает клики мышкой, нажатия клавиш, перемещения курсора. Также посылает запросы на сервер, загружает данные, позволяет вводить сообщения и много чего ещё.

Node.js/Express

▍Сильные стороны Node.js

  • Появление Node.js сделало возможным фуллстек-разработку веб-проектов на JavaScript. В результате в распоряжении разработчиков серверных частей приложений оказались и сильные возможности JavaScript, и наработки экосистемы JS, библиотеки, которыми стало реально воспользоваться в серверном окружении.
  • JavaScript-код, аналогичный по функционалу, например, коду, написанному на C, оказывается компактнее. Производительность JavaScript-кода при этом достаточно высока для применения его в проектах, в которых важна скорость работы кода.
  • Код клиентских и серверных частей проектов легче поддерживать в согласованном состоянии, так как и там и там используется один и тот же язык.
  • Один и тот же код можно совместно использовать и на клиенте, и на сервере.
  • Благодаря существованию модулей Node.js, которые, в сущности, представляют собой особым образом оформленные фрагменты кода, разработчики могут с удобством использовать в своих проектах чужой код, а так же собственные наработки.
  • Платформа Node.js, и, соответственно, основанные на ней фреймворки, отличаются нетребовательностью к ресурсам и масштабируемостью. Именно поэтому Node.js — это платформа, к которой часто прибегают те, кто пользуется микросервисными архитектурами.
  • Эта платформа хорошо подходит для разработки микросервисов ещё и из-за существования системы модулей Node.js, которые можно представить себе в виде строительных блоков серверных приложений.
  • В Node.js JavaScript код компилируется в машинный код, что позволяет получить гораздо более высокую производительность, чем при интерпретации кода. Сообщество JavaScript-разработчиков видит постоянное улучшение производительности Node.js за счёт того, что Google постоянно работает над совершенствованием V8.
  • Благодаря тому, что в Node.js имеется система ввода-вывода, не блокирующая главный поток, эта платформа демонстрирует высокую производительность. Достойная скорость обработки запросов достигается благодаря использованию JavaScript-механизмов конкурентного однопоточного выполнения кода.
  • Node.js — это опенсорсный проект, вокруг которого собралось огромное сообщество разработчиков. Это значит, что тот, кто столкнётся с какой-то проблемой, сможет достаточно быстро найти её решение.
  • Node.js, в ближайшем будущем, может стать платформой, которую будут использовать для проведения «тяжёлых» вычислений, наподобие тех, которые применяются для решения задач машинного обучения.

Время простоя (downtime)

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

Вы должны различать какие запросы в вашем приложении являются критичными, когда нужно показать полноэкранную ошибку с сообщением «Попробуйте позже», а когда ошибку можно обработать с помощью постепенной деградации (например серая кнопка для какой либо функции, с сообщением при наведении о том, что функция на текущий момент недоступна)

Если ваш бэкэнд разделен на несколько микросервисов, вероятность сбоя подмножества эндпойнтов выше. В другом случае, eсли ваш бэкэнд представляет собой только один сервер, один сбой может разрушить все эндпойнты.

В любом случае, хороший фронтэнд должен всегда отлавливать ошибки в запросах с помощью try catch и иметь заготовленные ошибки для пользователя. В javascript нет встроенной функции(recovery panic), которая позволяет продолжить выполнение кода после ошибки, поэтому при её возникновении ваше приложение упадет.

Как выбрать сферу и начать в ней развиваться

Принято считать, что во фронтенд чаще идут люди, склонные к визуальной репрезентации своих усилий. Ведь фронтенд — это во многом продолжение дизайна, попытки упростить взаимодействие пользователя с продуктами через графические интерфейсы. 

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

Фронтенд-разработчику стоит начать с изучения HTML, CSS, JavaScript. Бэкенд-разработчику нужно изучить хотя бы один из скриптовых языков (например, Python или Ruby), разобраться с основами работы сетей и интернета. Также нужно будет освоить взаимодействие с реляционными и нереляционными базами данных на выбранном языке. 

Если человек начинает с нуля, то стоит прочесть книгу Чарльза Петцольда «Код. Тайный язык информатики» — в ней простым языком рассказывается о том, как работает компьютер. Она пригодится как начинающим бэкендерам, так и фронтендерам. Для старта в обеих областях достаточно знания школьной математики и английского.

Результат

Мы пошли эволюционным путём развития продукта и команды. Достигли успеха или затея обернулась провалом, наверное, судить рано, но можно подвести промежуточные итоги. Что имеем сейчас:

  1. За отображение отвечает фронтенд, а за данные — бэкенд.
  2. На фронтенде сохранилась гибкость в плане запросов и получения данных. Интерфейс знает, что можно попросить у сервера и какие ответы должны быть.
  3. На бэкенде появилась возможность менять код с уверенностью, что интерфейс у пользователя продолжит работать. Стал возможным переход на микросервисную архитектуру без необходимости переделывать весь фронтенд.
  4. Появилась возможность использования mock-данных для фронтенда, когда ещё не готов бэкенд.
  5. Создание схем совместной работы исключило проблемы взаимодействия, когда команды понимали одну и ту же задачу по-разному. Сократилось количество итераций по переделке форматов данных: действуем по принципу «семь раз отмерь, один раз отрежь».
  6. Появилась возможность планировать работы на спринт параллельно.
  7. Для реализации отдельных микросервисов теперь можно набирать разработчиков, не знакомых с C++.

Из всего этого главным достижением я бы назвал возможность осознанно развивать команду и проект

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

Стать профессионалом во всём невозможно, но для нас это теперь и не нужно.

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

Впечатления от бэкенда после фронтенда

Нет работы с UI. Вообще. Раньше приходилось убивать время на исправление багов в UI, сейчас – нет. Минусы такого положения – конечный пользователь не видит результатов конкретно моей работы, как это было с фронтом. Я пытался определить, что же сложнее – бэк или фронт, и понял, что (лично для меня) тяжелее всегда было работать с многопоточностью и сетевым стеком

И тут уже не так важно – за фронт ты или за бэк. На фронте я просто столкнулся с такими задачами впервые, без подготовки, а на бэкенде уже с каким-никаким опытом

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

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

Суть деятельности backend-разработчика

Как известно, любые интернет-сервисы, сайты и мобильные приложения включают в себя две составляющие: backend и frontend:

  • Первая часть – выполняемый на серверной стороне код, откуда загружается сайт или веб-сервис. Допустим, вы написали в поисковой строке запрос. Он попадает на сервер. Который ищет информацию в БД и отдает ответ на запрос. Как раз-таки процесс поиска и создания ответа из БД – это и есть backend-часть ПС.
  • Вторая часть – исполняемый в браузере код. Иными словами, фронтенд-разработчик отвечает за отображение сайта на разных устройствах (ПК, ноутбук, планшет, смартфон и т.п.), работоспособность форм и кнопок.

Уровень зарплат

Фронтенд или бэкенд лучше с точки зрения зарплаты? Как и в любой IT-профессии, оценить объективно среднюю зарплату по России или даже Москве для фронтенд или бэкенд-разработчика очень сложно. Начать можно с общих цифр, фигурирующих в недавнем исследовании
Хабр Карьеры за второе полугодие 2019 года.

Согласно приведённому графику, разброс зарплат в обоих направлениях веба отличается незначительно, и что важнее — он точно не меньше зарплат фулстек-разработчиков. Если оперировать фактическими цифрами – вход на профессиональный уровень (уверенный junior или начинающий middle) лежит в районе 60-70 тысяч, и далее уходит к средней в 110-120 тысяч рублей. Что ещё важнее, согласно данным Хабр Карьеры, зарплата в разработке выросла в среднем на 6% по сравнению со вторым полугодием.

Для сравнения возьмём ещё статистику с портала
trud.com. Вот данные на конец 2019 года по фронтенду:

Для сравнения — заработок среднего PHP-разработчика за тот же период:

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

Но если говорить об опытном специалисте — во всяком случае в крупных городах — найти жирный контракт во frontend проще — из-за ряда стереотипов экспертное мнение в этой области ценится выше, чем в backend. При этом одновременно разработчик уровня senior во фронт-енде может вести куда больше проектов, чем в бэк-енде.

Мы постарались собрать в этой статье всё, чтобы вы смогли сделать выбор в мире веб-разработки. Теперь дело за вами — решиться и
попробовать. Удачи!

Кто такой backend-разработчик

Подавляющее большинство специалистов – люди с техническим образованием. На их плечах лежит забота о внутренней и вычислительной логике веб-сервиса.

Еще они отвечают за:

  • корректное функционирование сайта;
  • организацию и работу с базами данных;
  • обработку пользовательской информации;
  • безопасное хранение личных данных;
  • разработку алгоритмов работы веб-ресурса;
  • взаимодействие с внешними сервисами;
  • оптимизацию кода.

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

Более 100 крутых уроков, тестов и тренажеров для развития мозга

Начать развиваться

Если вы видите на экране подобное сообщение или какой-то бессмысленный набор букв и цифр, то произошел сбой и за это отвечает backend-developer.

Чем отличается от frontend-разработчика

Бэкенд и фронтенд-разработчики должны работать вместе, чтобы в результате получился “вкусный” продукт.

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

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

Может, труд бэкенд-разработчика и незаметен, но без него будет бесполезна и работа фронтенд-специалиста – ничего попросту не будет функционировать.

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

Кто это?

  • обеспечение корректной работы всех функций сайта и его вычислительной логики;
  • организация и работа с базами данных посредством СУБД;
  • разработка базовой логики и алгоритмов работы приложения;
  • API;
  • необходимые интеграции с внешними сервисами;
  • тестирование и отладка приложения и отдельных компонентов.

Фронтэнд-разработчики красят лампу в жёлтый цвет и втирают бэкенду, что лампочка работает, но только в дневное время.Бэкенд-разработчики удивляются, откуда у всех взялись проблемы с этими лампочками, вспоминает, что забыл задеплоить свет в базу данных, успокаивается и валит вину на фронтэнд.

Machine learning in Frontend. Trial

ML может применяться в задачах разработки веб-интерфейсов. Благодаря библиотеке Tensorflow, которая является одной из популярных библиотек для ML и имеет версию для Node.js и браузера, мы получаем возможность машинного обучения на известном стеке. Здесь JavaScript подтверждает свою универсальность.

Эти возможности позволяют решать задачи такими способами, о которых раньше не задумывались, но для этого необходимо теоретическое знание ML. Пример задач, где применим ML, — повышение скорости работы интерфейса.

Одна из наших команд экспериментировала и сделала сервис, предсказывающий вероятность посещения следующей страницы. Затем интегрировала этот сервис в стратегию предзагрузки одного из проектов — теперь в некоторых случаях пользователь при переходе на следующую страницу увидит ее моментально, без ожидания загрузки. Мы разработали свое решение на базе Tensorflow.js. Конкретно для этой задачи существует open-source-решение от Google — Guess.js, которое на основе данных из Google Analytics делает похожее. Советуем попробовать.

Еще из примеров использования ML в задачах фронтенда можно выделить анализ кода для выявления дубликатов, анализ верстки на соответствие гайдлайнам и даже возможность поправлять ее, распознавать документы в браузере, не передавая их по сети, генерировать пользователям индивидуально подстроенный интерфейс, повышать accessibility — допустим, голосовым управлением.

Статистика зарплат для ‘Backend разработчик’ по городам

Лидеры по количеству вакансий для ‘Backend разработчик’: Москва, Санкт-Петербург, Новосибирск, Екатеринбург, Казань.

Лидеры по уровню средней зарплаты для ‘Backend разработчик’: Москва, Владивосток, Санкт-Петербург, Новосибирск, Калуга.

Обзор зарплат для ‘Backend разработчик’ по городам
Населённый пункт Средняя зарплата, руб. Медианная зарплата, руб. Вакансий с зарплатой Всего вакансий
Москва 241120.0 235000.0 317 695
Санкт-Петербург 210262.0 199000.0 141 317
Новосибирск 197333.0 195000.0 48 81
Екатеринбург 182314.0 171000.0 35 58
Казань 177222.0 161000.0 18 52
Нижний Новгород 161824.0 139000.0 17 45
Ростов-на-Дону 162111.0 131000.0 18 39
Пермь 160500.0 151000.0 16 38
Краснодар 187000.0 185000.0 16 31
Самара 151444.0 151000.0 9 30
Томск 173800.0 153000.0 20 29
Тюмень 125667.0 101000.0 12 22
Калининград 159600.0 130000.0 5 17
Воронеж 167571.0 151000.0 7 16
Челябинск 118667.0 99000.0 12 15
Омск 95667.0 53000.0 6 15
Саратов 123800.0 91000.0 5 15
Ижевск 157000.0 121000.0 8 15
Красноярск 100600.0 81000.0 10 14
Тольятти 163200.0 164000.0 5 14
Рязань 119000.0 119000.0 11 13
Уфа 175667.0 93000.0 6 12
Ульяновск 147000.0 133000.0 10 12
Ярославль 133500.0 121000.0 8 12
Волгоград 191800.0 199000.0 5 11
Тверь 188143.0 179000.0 7 10
Владивосток 212600.0 195000.0 5 9
Пенза 155000.0 151000.0 7 9
Киров (Кировская область) 75000.0 53000.0 6 9
Калуга 192333.0 177000.0 6 9
Тула 111667.0 109000.0 6 8
Барнаул 104143.0 99000.0 7 7
Кемерово 144600.0 151000.0 5 7
Тамбов 106333.0 81000.0 6 6
Йошкар-Ола 155000.0 133000.0 6 6
Брянск 159800.0 159000.0 5 5

Backend

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

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

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

Что такое backend?

Бэкенд (англ. back-end) — это программно-аппаратная часть сервиса. Это набор средств, с помощью которых происходит реализация логики веб-сайта. Это то, что скрыто от наших глаз, т. е. происходит вне компьютера и браузера.

Как только вы введёте запрос на странице поисковика и нажмёте клавишу «Ввод», frontend закончится и начнётся backend. Ваш запрос отправится на сервер Яндекса или Google, т. е. по месту расположения алгоритмов поиска. Именно там и происходит вся «магия». Но вот, на мониторе появляются данные, которые вы запрашивали, — это происходит возвращение во frontend.

Также можно сказать, что backend — это процесс объединения пользователя с сервером.

Что касается backend-разработчика, то он использует любые инструменты, которые доступны на его сервере. На практике программисты применяют любой из универсальных языков: PHP, Ruby, Python, Java. Кроме того, при backend-разработке задействуются СУБД (MySQL, PostgreSQL, SQLite, MongoDB и пр.).

В зависимости от особенностей продукта меняются и обязанности backend-разработчика.

Как стать frontend-разработчиком? Что нужно знать и уметь?

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

  1. Освоить HTML и CSS. HTML – это язык разметки веб-документов. CSS – каскадные таблицы стилей. Они управляют оформлением различных элементов на страницах (например, размером шрифтов).
  2. Изучить JavaScript – основной язык, который нужно знать frontend-программисту. Существуют различные библиотеки готовых скриптов, написанных на JavaScript. Их тоже лучше изучить, чтобы пользоваться ими и ускорять свою работу. Пример такой библиотеки – jQuery.
  3. Изучить методологию верстки, например, БЭМ от Яндекса. Методология помогает создавать веб-приложения по определенным принципам, которые помогают разбираться в чужом коде и в своем тоже по прошествии какого-то времени.
  4. Изучить фреймворки, в частности, Bootstrap. Фреймворк – это набор неких готовых решений, на базе которых можно создавать веб-сайты быстрее, чем при написании кода с нуля.
  5. Освоить кроссбраузерную верстку и научиться создавать страницы, которые одинаково выглядят в разных браузерах.
  6. Изучить адаптивный дизайн, т.е. дизайн, который подстраивается под размеры экрана пользователя. Таким образом сайт приемлемо выглядит на разных устройствах (компьютер, планшет, смартфон).
  7. Не лишним будет освоить языки серверного программирования на базовом уровне. Например, язык PHP – один из самых популярных в среде веб.
  8. Изучить Git и научиться работать с системами контроля версий.

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

Что же мы сделали?

  1. Во-первых, мы разработали и опубликовали три модуля, при этом нам даже не пришлось думать о компиляторе TS, WebPack, NPM или любых других инструментах, за исключением Bit. Именно поэтому я выбрал Bit и поэтому считаю его таким полезным инструментом. Он абстрагировал все шаги, необходимые для создания трёх компонентов, даже когда они работают в трёх разных средах.
  2. Мы работали с локальной зависимостью, которая должна быть внешней зависимостью, и даже не заметили разницы. Каждое обновление, вносимое в локальную версию компонента с типами BFF, подхватывалось другими двумя компонентами, и нам не приходилось заново выполнять весь процесс экспорта.

одним

Что нужно уметь

Если вы откроете вакансию любого бэкенд-разработчика, то там будут примерно следующие требования:

  • знание Python, PHP, Ruby или Java (если всё сразу — это огромный плюс);
  • часто хотят, чтобы вы знали JavaScript и Node.js, чтобы реализовывать часть логики на клиенте;
  • AJAX — помогает обновлять данные на странице без её перезагрузки;
  • базы данных — MySQL, PostgreSQL или MongoDB;
  • Django и другие фреймворки для быстрой разработки;
  • умение работать с API;
  • владение Git или любым инструментом контроля версий.

Отдельно ценится умение работать в UNIX-системах, разбираться в том, как устроены сетевые технологии и владение сетевыми протоколами. Но на самом старте можно и без этого.

Ключевые навыки backend-разработчика

Хотя backend – это работа с серверной частью, специалисту в своей работе нужно изучить основы HTML и CSS и уже после этого изучать серверные языки программирования и налаживать работу с БД.

Итак, в своей работе этот специалист должен знать и уметь:

  1. Такие языки программирования как PHP (наиболее популярный из всех), Ruby, Python, Java, JavaScript / Node.js.
  2. AJAX-технологию для обновления данных в браузере без перезагрузки страницы.
  3. Такие БД как  MySQL, PostgreSQL, MongoDB и т.п.
  4. Принципы работы UNIX-подобных систем.
  5. Основы объектно-ориентированное программирования.
  6. Работа с наборами скриптов, ускоряющих разработку веб-сайтов.
  7. Работа с Git.

Trunk based development (TBD). Assess

TBD — это модель ветвления, которая диктует частые интеграции и отсутствие долгоживущих веток. Для реализации этих требований должны быть развиты процессы и инфраструктура разработки.

В TBD ветки с новым кодом вливаются в основную ветку не реже чем раз в 24 часа. С помощью этого команда получает ускоренный цикл обратной связи по задаче. В более распространенных моделях ветвления изменения дольше копятся, часто в момент попадания изменений в основную ветку объявляются неожиданные проблемы, исправление которых несет дополнительную сложность из-за позднего времени их обнаружения. В TBD все изменения делаются максимально атомарными, интегрируются с самой новой версией основной ветки как можно чаще, что создает определенные требования к архитектуре приложения, такие как поддержка Feature Flags, чтобы иметь возможность отключать из исполнения еще не завершенные задачи.

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

Совместно с TBD ценность парного программирования возрастает за счет важности код-ревью прямо в моменте создания кода и стремления выявить ошибки в коде на ранних этапах. При использовании TBD участники команды лучше видят, кто над чем работает, а не ждут крупного логического этапа для ревью

Модель TBD является более командной за счет атомарных изменений короткими циклами, что позволяет выявлять проблемы на самом раннем этапе работы, что в сумме повышает эффективность команды. TBD хорошо приживется в командах со зрелой инженерной культурой.

С чего начать и что читать? Чек-лист обучения

1. Как работает Веб

  • How the Web Works: A Primer for Newcomers to Web Development or anyone really (FreeCodeCamp);
  • Как работает Веб — Mozilla (MDN);
  • Всё, что нужно знать про HTTP.

2. Среда разработки

  • VSCode — бесплатный быстрый редактор с большим количеством дополнений для разработки;
  • JetBrains WebStorm — полноценная IDE, есть пробный период и возможность получить доступ по студенческой лицензии;
  • Если у вас возникает потребность отправить другому человеку фрагмент кода, быстро проверить или сохранить код в сети, можно воспользоваться онлайн-редактором, например, Codepen.

3. Основы HTML

  • Руководство по HTML — Mozilla (MDN);
  • Справочник по HTML, уроки по HTML и CSS — Webref;
  • FreeCodeCamp — Learn to code at home — очень полезный источник для практического изучения HTML, CSS, JS и др. (пошаговые задачи в интерактивном режиме обучения);
  • Введение в Chrome DevTools. Панель Elements для просмотра HTML-элементов сайта;
  • Семантика (HTML5 Semantic Tags: What Are They and How To Use Them!, рус. перевод);
  • Доступность (Writing HTML with accessibility in mind, рус. перевод).

4. CSS

  • CSS и CSS3. Свойства для форматирования HTML элементов — Html5Book;
  • Cascading Style Sheets (CSS) — Mozilla (MDN);
  • Справочник по CSS — Webref;
  • Инструменты разработчика Chrome DevTools для просмотра стилей;
  • Вёрстка на Flexbox в CSS. Полный справочник (перевод и оригинал на CSS Tricks);
  • 10 modern layouts in 1 line of CSS от Google;
  • БЭМ Методология;
  • БЭМ для начинающих. Очевидные и неочевидные вопросы верстки.

5. Система контроля версий Git

  • Интерактивный тур по GIT для начинающих — GitHowTo;
  • Github — крупнейший веб-сервис для хостинга IT-проектов и их совместной разработки.

6. Язык программирования JavaScript

  • Современный учебник JavaScript — отличный источник с множеством примеров;
  • Серия книг «Вы не знаете JS» — подробный гид по основным механизмам языка (каждая книга подробно разбирает часть языка);
  • Не забывайте про уже упомянутый FreeCodeCamp с задачками для практики JS;
  • Онлайн-курс по JavaScript для начинающих в виде рассылки писем от Дэна Абрамова (разработчик из Facebook, создатель Redux и Create React App);
  • Chrome Dev Tools. Отладка JavaScript кода.

11. Препроцессоры CSS

  • Sass (SCSS);
  • Stylus;
  • Less.
  • Модульность. Вы сможете создавать CSS-код в разных файлах и импортировать стили при необходимости.
  • Вложенность. Вкладывайте селекторы друг в друга для компактности и логичной структуры кода. Это улучшит читабельность и уменьшит дублирование (будет особенно удобно, если вы станете использовать BEM-методологию для написания CSS).
  • Использование CSS-переменных и функций (миксинов).
  • Вы можете выбрать препроцессор с удобным для вас синтаксисом (например, CSS-код без фигурных скобок и точек с запятой).

PostCSS

стандарт компании Airbnb

  • Prettier;
  • ESLint;
  • EditorConfig;
  • Husky.

14. Изучение фреймворка/UI-библиотеки

официальной документацииModern React and Reduxпроверка типов с помощью PropTypesJSDocцикл статейReduxпереводомGetting Started with Reduxдокументация

16. Углубленное

  • Как браузеры рендерят сайт (Ryan Seddon: So how does the browser actually render a website | JSConf EU 2015);
  • Как работают браузеры — Html5Rocks;
  • Филипп Робертс: Что за чертовщина такая event loop? | JSConf EU 2014;
  • CSS-модули (статья Glen Maddern);
  • Оптимизация производительности фронтенда;
  • Вводный курс по VSCode для JS разработчиков (Владилен Минин);
  • Руководство для начинающих по HTTP и REST;
  • Что такое CORS;
  • Паттерны проектирования (книга Javascript Design Patterns);
  • Progressive Web Applications;
  • Redux-Saga для продвинутого управления состоянием React-приложения.

Full-stack-разработчик

По данным «Мой круг» full-stack и back-end разработчики в 2018 году получают до 140 тысяч рублей. Front-end – до 125 тысяч.

Может ли один и тот же человек заниматься и фронтенд, и бэкенд разработкой? Если он разбирается и в том, и в другом – почему нет: такой разработчик называется Full Stack.

Он умеет решать любые задачи по разработке веб-сервисов и сайтов: знает серверные языки, JavaScript, HTML и CSS, может оптимизировать сайт под поисковики и превратить сделанный в Photoshop макет дизайна в рабочий интерфейсный код (вы же помните, что интерфейс сайта рисует дизайнер, но на самом сайте всё будет описано кодом?).

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

Это, кстати, очень важно: многие front-end и back-end разработчики просто не понимают друг друга и ставят невыполнимые задачи, а full-stack специалист как раз может стать связующим звеном

Учиться сразу на fullstack нет смысла: обычно программист сперва осваивает одну часть работы – frontend или backend – и уже потом добавляет к багажу знаний навыки по смежному направлению.

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

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

Adblock
detector