Эксперты GeekBrains на понятных примерах объясняют, что такое фронтенд- и бэкенд-разработка и как сделать выбор между ними в 2020 году. Из статьи узнаете, без каких знаний не обойтись фронтендерам и бэкендерам, на какую зарплату реально могут претендовать разработчики и какие книги читать, чтобы стать повелителем фреймворков.
Веб-пространство – наиболее популярная часть IT-мира, поэтому нет ничего удивительного в том, что стать его частью хочет огромное количество людей. Если быть блогером или каким другим «гуманитарием» вам не по душе, а оставить свой след в вебе очень хочется — придётся разобраться в различиях фронтенда и бэкенда. Наш краткий обзор вам поможет.
Начнём с азов, то есть определений.
- Front-end (frontend, фронтенд, фронт-энд) — клиентская часть веба, интерфейс между машиной и пользователем.
- Back-end (backend, бэкенд, бэк-энд) — программно–аппаратная часть Всемирной паутины.
Чтобы вам было проще понять, проведём простую аналогию. Веб-страница – это симпатичная девушка (или парень, кому что ближе). Представьте ваше знакомство или свидание.
Чем на самом деле занимаются фронтенд и бэкенд разработчики.
Первое, на что обращаете внимание — внешность. Это фронтенд. Ваш фокус постепенно переходит с крупных и ярких деталей к мелочам – чтобы волосы были причёсаны, кожа ухожена, ну и в целом видно, что человек к свиданию готовился. Так и с сайтами, только в этом случае вы рассматриваете таблицы, кнопки, блоки, картинки и прочее.
Как и с человеком, в первую очередь здесь важны аккуратность и общий приятный вид, а уже потом яркие акценты. Эти задачи решаются frontend-разработчиками, «стилистами» веб-пространства.
Рано или поздно на свидании ваш собеседник открывает рот, то есть показывает первые признаки бэкенда — свой интеллект. Умение привлечь внимание не внешностью, а поведением — небольшое дело, но чтобы удержать фокус, действительно надо постараться. С сайтами точно так же. Необычная функциональность — хорошо, но по-настоящему круто, когда он построен на безупречном фундаменте, интуитивно понятен и работает как надо. С этой задачей приходится справляться бэкенд-разработчикам.
Что предстоит учить
Окей, в общих чертах мы уяснили, чем отличается фронтенд от бэкенда. Если вы всё ещё сомневаетесь с выбором, попробуем углубиться в используемые инструменты и понять, что вам грозит.
Обязательный минимум фронтенд-разработчика
HTML — язык гипертекстовой разметки. Иначе говоря – главный инструмент для создания внешнего облика веб-страницы: текст, картинки, таблицы, блоки и прочие базовые элементы дизайна. Сайты на чистом HTML уже не встречаются, но без знания этого языка во фронтенде делать нечего.
CSS — по сути, набор шаблонов для форматирования страницы. Позволяет реализовать на веб-странице какой-то общий сценарий оформления, придать ей красивый и законченный вид без лишнего дублирования кода.
JavaScript — в отличие от предыдущих представителей, это полноценный язык программирования, формально относящийся к фронт-енду. Фактически возможности JS куда шире организации «внешности», на нём можно создавать многие «серверные» фичи. Лишь бы у разработчика была фантазия, а в браузере стоял интерпретатор.
Frontend разработчик или Backend разработчик, какой язык программирования выбрать?
На выбор для будущего бэкенд-разработчика
PHP — наиболее распространённый в России и в мире в целом язык серверной части. Отправить письмо, обработать запросы, да и вообще организовать любую активность в вебе — это к PHP в большинстве случаев.
Python — один из самых простых языков для изучения. Прекрасно справляется с обязанностями «двигателя» веба благодаря удобству и фреймворку, речь о котором пойдет чуть позднее.
Ruby — ещё один язык серверной части, в своё время набравший сумасшедшую популярность благодаря веб-фреймворку.
SQL — язык для обработки баз данных, без которого бэкенда, можно сказать, не существует. Любую социальную сеть, интернет-магазин или просто страницу, изобилующую информацией, трудно представить без привязки к внешним базам.
Go — язык, в своё время специально разработанный корпорацией Google для высоконагруженных сервисов. Так как такую характеристику имеет большинство сервисов Google, и справляются они со своими задачами на отлично язык быстро ушел в народ.
Java — универсальный и мощный язык программирования, предназначенный для разработки веб и корпоративных приложений, банковского программного обеспечения, высоконагруженных сервисов, мобильных приложений, ПО для встраиваемых систем, отлично подходит для автоматизации тестирования. В меньшей степени подходит для разработки игр и desktop приложений. Совсем не подходит для frontend-разработки, есть конечно инструменты позволяющие разрабатывать frontend, но на самом деле Java код транслируется потом в JavaScript.
По правде говоря, в веб-разработке есть ещё большое число менее популярных языков, но для базового ознакомления хватит. Надеюсь, теперь вы лучше понимаете, что такое фронтэнд и бэкэнд разработка. Чтобы прояснилось ещё лучше, перейдём к библиотекам и фреймворкам.
Фреймворки front-end
Описать преимущества и недостатки любого из перечисленных здесь фреймворков в паре предложений почти невозможно, поэтому оставим это вам для самостоятельного изучения.
React.js — данный фреймворк, как и многие другие фреймворки frontend, ориентирован на применение JavaScript. Чтобы в первом приближении оценить его, скажем одну вещь — он разрабатывается и активно применяется компанией Facebook Inc. Их социальная сеть и сервис Instagram — лучшая реклама React.js.
Angular — продукт другой корпорации, Google. Получил большую популярность благодаря удобству и инструментам по созданию material design – тренду, не теряющему популярность уже более 5 лет.
Vue.js — некое промежуточное звено между Angular и React как по популярности, так и по функциональности. Крупного покровителя не имеет, но обеспечивает такой уровень удобства, что на задачах начальной сложности вы будете считать его своей волшебной палочкой.
jQuery — один из старейших фреймворков для JavaScript, наиболее распространён в современном вебе. 74% из 10 миллионов самых популярных сайтов было создано с использованием jQuery. Простота библиотеки позволяет легко внедрить простые DOM и анимацию за минимальное время с минимальной угрозой негативных последствий.
Фреймворки back-end
Фреймворк — программное обеспечение значительно упрощающее создание приложений и иных цифровых продуктов. В бэкенде большинство фреймворков заточено под свой конкретный язык, по-настоящему мультиязычные — редки и малоэффективны.
Yii2 (PHP) — в бэкенде на каждый популярный язык есть свой фреймворк. Вот, к примеру, Yii2 помогает работать с PHP. Так что вы если в будущем хотите делать аппаратную часть на этом языке (а вопреки ожиданиям он всё ещё популярен), тогда познакомиться с Yii2 придётся.
Django (Python) – тот самый фреймворк, который позволяет использовать Python в мире веба на полную катушку. Популярность объясняется очень просто: возможности огромного числа разработчиков веба не дотягивают до PHP, C, Java и прочих языков, а желания творить — хоть отбавляй много. И вот как раз с Python и Django у них всё удачно складывается.
Ruby on Rails (Ruby) – чтобы понять прелесть RoR, надо понимать Ruby и его сообщество. Язык относительно сложный, а вот разработчики на нём добродушные (и любят делиться исходным кодом). Вот и получается, что, используя Ruby on Rails, возможно, будете долго запрягать, зато быстро поедете.
Spring (Java) – фреймворк для разработки веб-приложений на языке Java, включающий в себя большое количество модулей (MVC, Boot, AOP, Security, Data, REST и др.). Каждый из модулей позволяет легко и быстро решать задачи, возникающие при разработке веб-приложений: Spring MVC/Boot — основной модуль, Spring Data — работа с БД, Spring Security — настройка безопасности, Spring REST — построение REST-сервисов. В настоящее время Spring является одним из основных инструментов Java-разработчика.
Прочее
Разница в остальных инструментах лежит в области понимания профессии. Фронтенд-разработчики в основном нуждаются в инструментах визуализации (то есть графических редакторах) и в шаблонах. Актуальность знаний здесь играет чуть большую роль.
Бэкендеры основываются на средах разработки, упрощающих многие действия, и на системы моделирования. Они дают понять, как сайт будет работать на клиентской стороне — а это важнейший аспект разработки.
Что читать для знакомства с фронтендом и бэкендом
Мы подобрали ряд книг, ознакомившись с которыми, вы сможете понять, что сложнее — frontend или backend — в вашем случае.
Front-end

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

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

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

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

Одна из базовых книг по PHP. Скляра читал, наверное, каждый бэкенд-разработчик. Прекрасно подойдёт тем, кто начинает изучение с нуля. Всё чётко и подробно, а главное – с примерами.

Несмотря на заявленную в заголовке основную тему, читателю предлагается пройти весь путь веб-разработчика, начиная с основ HTML и СSS, и заканчивая довольно сложными сайтами и приложениями с использованием Ruby. Но важно отметить: языкам эта книга не учит, а вот тому, как создавать правильные приложения на «рельсах» – пожалуйста.

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

Если вы хотите создавать веб на Java, эта книга будет очень полезна для вас. Языку здесь не обучают, но процесс создания бэкенда с использованием Spring здесь описан простым информативным языком. Следуя по главам шаг за шагом вы на себе ощутите как превращаетесь из зелёного новичка в знающего профессионала.

Всем, кто планирует связать свою жизнь с вебом – рекомендуем достать эту книгу в любом варианте. Очень легко читается, требует минимум базовых знаний, но при этом содержит уйму информации о том, как создаётся и работает современный веб.
Уровень зарплат
Фронтенд или бэкенд лучше с точки зрения зарплаты? Как и в любой IT-профессии, оценить объективно среднюю зарплату по России или даже Москве для фронтенд или бэкенд-разработчика очень сложно. Начать можно с общих цифр, фигурирующих в недавнем исследовании Хабр Карьеры за второе полугодие 2019 года.
Согласно приведённому графику, разброс зарплат в обоих направлениях веба отличается незначительно, и что важнее — он точно не меньше зарплат фулстек-разработчиков. Если оперировать фактическими цифрами – вход на профессиональный уровень (уверенный junior или начинающий middle) лежит в районе 60-70 тысяч, и далее уходит к средней в 110-120 тысяч рублей. Что ещё важнее, согласно данным Хабр Карьеры, зарплата в разработке выросла в среднем на 6% по сравнению со вторым полугодием.
Для сравнения возьмём ещё статистику с портала trud.com. Вот данные на конец 2019 года по фронтенду:
Для сравнения — заработок среднего PHP-разработчика за тот же период:
Как видно из графиков, суммы соизмеримы, с небольшим перевесом у тех, кто работает с «лицом». В действительности уровень заработка напрямую зависит от набора скиллов и опыта. К примеру, в начале карьеры найти хороший контракт человеку в бэкенде чуть проще – просто оттого, что фронтенд-разработчик без реального опыта должен иметь хорошее портфолио, а для дополнительной проверки ещё сделать минимум пару тестовых заданий. С бэкендом достаточно прямо на собеседовании задать несколько вопросов по языкам и функциям.
Но если говорить об опытном специалисте — во всяком случае в крупных городах — найти жирный контракт во frontend проще — из-за ряда стереотипов экспертное мнение в этой области ценится выше, чем в backend. При этом одновременно разработчик уровня senior во фронт-енде может вести куда больше проектов, чем в бэк-енде.
Мы постарались собрать в этой статье всё, чтобы вы смогли сделать выбор в мире веб-разработки. Теперь дело за вами — решиться и попробовать. Удачи!

А еще у нас есть бесплатный конструктор резюме
с красивыми шаблонами, полезными советами
и импортом из hh
Источник: icanchoose.ru
Русские Блоги
1. Заработная плата фронтенда ниже, чем у бэкенда?
Я могу сказать вам ответственно: насколько мне известно, по крайней мере в Hangzhou NetEase и Ali цены на интерфейсные и внутренние компоненты являются оптовыми.
Что касается вышесказанного, я говорю о бизнес-уровне. Если вы должны сказать, что интерфейс для разработки веб-3D-движка дороже, чем обычная Java, или что разработка данных для воспроизведения hadoop выше, чем в обычном интерфейсе, это преимущество.
То, что мы подразумеваем под передней и задней частью, должно быть передней и задней частью веб-разработки, которые относятся к разработке веб-бизнеса. В противном случае написание бэкенда промежуточного программного обеспечения и больших данных, написание внешнего интерфейса веб-3D-движка и дизайн внешнего интерфейса — все это относится к категории отхода от традиционной веб-разработки.

Я имею в виду ситуацию одного и того же уровня, потому что индивидуальные различия очень велики, но обычно передняя часть P6 / 7 и внутренняя часть P6 / p7 имеют одинаковую цену.
1. В определенной степени правильнее иметь более высокую внутреннюю зарплату.
Почему? Если вы посчитаете среднюю зарплату переднего плана Али и среднюю зарплату бэкенда, она должна быть выше в бэк-энде.
Поскольку статус внешнего интерфейса улучшился, прошло всего несколько лет. Теперь вы переходите к интерфейсу Ali p7 и back-end (Back-end Alibaba — это java) по той же цене, но back-end должен быть высоким раньше, плюс back-end был создан в начале Ali, многие back-end люди вошли в управление рано Вверх. Но они по-прежнему являются серверной частью с названием p9 / p 10. Передняя часть использовалась только 10 лет назад, а передняя часть над p10 фактически всего одна или две.
Строго говоря, на уровне p10 нет таких понятий, как внешняя и внутренняя части; это всего лишь внешний или внутренний источник. Если вы пройдете весь технический маршрут, передняя и задняя части будут всем. Если менеджмент не технический, это чистый менеджмент.

Так что вам совсем не нужно беспокоиться об этих проблемах. Теперь оптовая цена такая же, потому что независимо от среднего, это все в ваших руках.
2. Люди очень разные, даже если взят один и тот же уровень, их больше или меньше.
На самом деле я принадлежу к самому высокооплачиваемому уровню среди инженеров того же уровня.Хотя обсуждение зарплаты — это высоковольтная линия, каждый сотрудник более или менее знает свою ситуацию.
Когда я пошел на Али, цена открытия была очень высокой, одной из причин было то, что я не хотел уходить из NetEase. Я не пойду, если цена будет меньше определенной. Другая причина в том, что я хочу узнать, насколько я ценен. Это включает стратегию выживания программиста: каждый год вы должны проводить два месяца на собеседовании, независимо от того, хотите вы уйти или нет. Вам необходимо постоянно оценивать свою цену и Wowремя устранять недостатки.

Многие программисты не знают, сколько они стоят, либо не смеют просить зарплату, либо громко говорят. Если вы хотите узнать, сколько вы стоите, это хороший способ пойти на рынок, чтобы проверить воду. Следует помнить одну вещь: ваша цена определяется рынком, а не вашими возможностями. Ваша способность может быть прямо пропорциональна цене в стабильных рыночных условиях.
Но рынок никогда не бывает стабильным. Взгляните на множество сцен с Android / ios в те годы, и посмотрите, сейчас люди по-прежнему остаются той же группой, но рынок становится холоднее.
3. Внешний или внутренний интерфейс — это всего лишь ступенька.
Многие молодые (на самом деле я довольно молодой) друзья одержимы какими-то навязчивыми идеями. Например, они планируют писать на Java всю жизнь и стать большим Java-человеком на пике жизни. На самом деле идея хороша, но нежелательна.
С технической точки зрения, поскольку написание Java на всю жизнь не может быть мастером Java, вам все равно нужно изучить Scala и Kotlin из отдела JVM, низкоуровневый c / c ++ и такие языки, как Go и Erlang, философия которых отличается от Java. Наконец, я обнаружил, что ваша Java — это всего лишь ваша ступенька. Что действительно делает вас отличным игроком на Java, так это то, что вы понимаете философию разных языков, понимаете преимущества Java в различных сценариях, избегаете недостатков Java и знаете преимущества и недостатки Java. Вместо того, чтобы считать Java лучшим языком, писать на Java всю жизнь.
С точки зрения карьеры обратите внимание на словарь, который я использовал для описания инженеров с высоким уровнем P в предыдущей статье, «рожденные в xx». Для высоких P отсутствуют передняя и задняя части. Передняя и задняя части — это всего лишь ступенька, потому что развитие веб-бизнес-уровня, которое мы сегодня обсуждаем, честно говоря, лежит в основе компьютерных трудностей. Что касается цепочки презрения, о которой говорили некоторые респонденты, на самом деле китайская команда презирала тайскую команду и клевала друг друга.
Если вы хотите достичь высокого уровня P в Интернете, вы в основном следуете по пути бизнес-архитектуры. Это позволит проверить общую ситуацию. У вас есть только интерфейс, иначе Java недостаточно.
Чисто технически P10 в принципе сложно сказать — чтобы быть ясным, для традиционных инженеров веб-разработки (интерфейсных и внутренних) без управления, P в основном должен идти только в направлении архитектуры. В настоящее время это зависит от вас. Ваша оригинальная интерфейсная технология и внутренняя технология — это всего лишь ступенька.
Для тех, кто все еще может играть в чистую технологию с p10 или выше, я указываю несколько направлений, таких как позиции, связанные с алгоритмами (глубокое обучение, компьютерное зрение и т. Д.), Позиции, связанные с данными, позиции, связанные с графикой (например, разработчик игрового движка NetEase и т. Д.), Крупномасштабная система Связано с низом (Alibaba Cloud), связано с безопасностью.

Обычная веб-разработка, даже если интерфейс написан цветами, а серверная часть написана в небо, она не может достичь высокого уровня P с помощью чистых технологий. Пожалуйста, всегда помните, что у вас самый низкий уровень компьютерной сложности, потому что интерфейсные и внутренние технологии сами по себе в основном являются результатом практики в отрасли. Вы видели, как многие компании наняли экспертов по глубокому обучению и специалистов по данным из xx лабораторий и xx университетов. Вы когда-нибудь нанимали определенного профессора для веб-разработки?
Сводка:
1. Передняя и задняя части в настоящее время имеют как минимум оптовую цену на крупных фабриках.
2. Сколько вы можете получить как физическое лицо, зависит от рынка, а также от ваших личных способностей и способностей к ведению переговоров и не имеет ничего общего со средней зарплатой.
3. Будь то интерфейс или серверная часть, это всего лишь ступенька для вашего будущего развития. Традиционная веб-разработка совсем несложна. Это самое основное требование, если вы хотите подняться выше и понять интерфейс и внутреннюю часть.
4. Как спланировать свою карьеру?
Наконец, испытуемый спросил, как спланировать свою карьеру. Сказанное выше ясно: передняя часть — это всего лишь ваша ступенька. Затем поговорите о некоторых общих направлениях после того, как постучите в входную дверь:
1. Веб-разработка: Front-end и back-end — это две стороны веб-разработки. На самом деле, в одном и том же городе веб-разработка во многих иностранных компаниях не существует таких понятий, как front-end и back-end. Их называют «программистами» или веб-разработчиками. Фактически, нам нужно изменить наше мышление: передняя и задняя стороны — это не противоположности, а чистая семья.
Он просто принудительно разделен на внешние и внутренние на некоторых рынках внутри страны и за рубежом. В конечном итоге вам необходимо понять внешний и внутренний интерфейсы. Поэтому, хотя вы поддерживаете высокий уровень внешнего интерфейса, необходимо усовершенстWowать некоторые внутренние технологии, но вы должны различать первичный и вторичный. В основном.
2. Направление данных: в будущем данные станут нефтью эпохи Интернета, и это направление тоже хорошо. На стороне интерфейса есть технологии, связанные с визуализацией. Со стороны Али есть много практик визуализации данных, потому что Али утверждает, что является компанией, работающей с данными (PetroChina?). Если вы хотите последовать этому совету, поищите, с чего начать.
Если говорить заранее, то визуализация не называется визуализацией диаграммы с электронными диаграммами, это очень глубокая линия. В колледжах и университетах есть много исследователей в этом направлении, поэтому, по мнению Чена из Университета Чжэцзян, сетка наверняка будет выше, чем веб-разработка. В будущем она все еще неотделима от вещей, связанных с большими данными, таких как улей и хадуп. Визуализация — это самый внешний уровень всей линии передачи данных. В конце концов, необходимо понимать весь уровень связи, чтобы увеличить P.
Кроме того, веб-разработка подразделяется на веб-интерфейс и веб-сервер, которые рассматриваются с точки зрения веб-сервисов. Разработка данных основана на веб-разработке с прикрепленными данными. Те, кто понимает визуализацию, должны иметь возможности внешнего интерфейса и понимать хадуп. Определенная оговорка java, относится к направлению расширения веб-разработки.
3. Большое фронтенд-направление: ios / Android в мобильной сфере давно пришли в упадок, но это не значит, что они мертвы. Просто все компании понимают, что нативная разработка не нужна.
Я знаю, сколько денег тратится впустую, чтобы собрать три команды Android / ios / web, просто количество пользователей и сложность, просто все в небольшой программе в период предпринимательской деятельности; когда она больше, вы можете перейти на Android / ios, и вам не нужно использовать их все. 30% нативных + 70% гибридных пользователей вообще не видят разницы, а стоимость и эффективность не знают, насколько она сильна.
Некоторые крупные производители, такие как Ali, в большом количестве практикуют rn и weex; из-за внутреннего упадка Android / ios компании в определенной степени интерфейсная часть интегрировала ios и Android, которые в совокупности называются большим интерфейсом (и узлом). Наиболее известными из них являются Ele.me и Meituan, и это в определенной степени также является политической необходимостью. Такие компании, как Meituan, должны быть внутренними. По словам Лю Пинчуаня, после добавления группы узлов после компиляции Android / ios количество людей на клиентской стороне такое же, как и на задней. Вполне возможно, что лидер большой фронт-энда имеет право высказаться: не помешает немного изучить ios / Android.
4. Графическое направление: Властелином графики, несомненно, является игровая индустрия. Конечно, у Али есть и собственный игровой бизнес. Фронтенд, естественно, неразрывно связан с графикой. В дополнение к визуализации, упомянутой выше, существуют связанные 3D движки. Опытно-конструкторские работы.
Например, команда Юбо инкубирует antG внутри (не с открытым исходным кодом), у Taobao уже есть проект с открытым исходным кодом с интерфейсным 3D-движком, а внутренний Ant Forest в Alipay — это интерфейсная разработка. Это технология, связанная с canvas / webgl.
Требования для выполнения этой линии также очень высоки.Алгоритмы, связанные с графикой, и разработка 3D-движка требуют знаний, связанных с графикой. Строго говоря, его сложно рассматривать как интерфейс в традиционном понимании. Это больше похоже на приложение графики на стороне браузера. В дальнейшем при разработке обязательно нужно будет учиться у традиционных графических решений, поэтому c / c ++ незаменим. В то же время 3d / 2d Сторона браузера ест производительность и нуждается в поддержке веб-сборки, а родной язык не меньше.
Добро пожаловать в Java-инженеры, проработавшие от одного до пяти лет + qun: 736-351-661
Qun предоставляет бесплатные учебные материалы по архитектуре Java (с высокой доступностью, высоким уровнем параллелизма, высокой производительностью и распространением, настройкой производительности Jvm, исходным кодом Spring, MyBatis, Netty, Redis, Kafka, Mysql, Zookeeper, Tomcat, Docker, Dubbo, Данные архитектуры нескольких точек знаний, таких как Nginx)
Источник: russianblogs.com
Что такое frontend- и backend-разработка и как стать специалистом в этой области

Программирование
Профессия «веб-разработчик» становится популярнее. Ведь бизнес все больше уходит в онлайн, а это стимулирует развитие облачных сервисов, появление новых функциональных сайтов. И заодно приводит к появлению отдельных специализаций внутри единой системы программирования. Так, веб-разработчики стали делиться по языкам, с которыми они работают. Плюс появились «ветки» — Frontend Developer и Backend Developer, о которых мы поговорим дальше.

Что такое Frontend-разработка?
Первая категория специалистов полностью отвечает за разработку пользовательского интерфейса сайта или приложения. В сферу ответственности Frontend’а входит адаптивная, отзывчивая верстка и шрифты, читаемые на любом разрешении. Также поддержка всех современных версий браузеров, мобильных устройств, функций оптимизации SEO. Кодеры этого уровня преимущественно обычно ограничиваются языком разметки HTML, каскадными таблицами CSS и скриптами на JavaScript.

Примерный алгоритм работы (обобщенно):
- Разметкой задается структура страницы, расположение графических элементов, сочетание других блоков, для текстового контента, рекламы, меню и т.д.
- Стили придают страницам привлекательный внешний вид, позволяют оформить их с учетом фирменного брендбука.
- Скрипты отвечают за оживление статичных страниц, подключение плагинов, выполнение несложных операций вроде «формы захвата контактов.
Язык JavaScript способен и на большее. Например, динамически генерировать страницы. Но объем кода будет значительным, тем более, «чистые» скрипты исполняются браузером и сильно зависят от производительности компьютера пользователя. Частично такая проблема решается переходом на фреймворк Node.js, который предназначен для исполнения приложений на стороне сервера. Базой же остается язык программирования JavaScript.
Frontend-разработчики непосредственно взаимодействуют с дизайнерами, UX-аналитиками, чтобы продукт получался красивым, удобным и соответстWowал маркетинговым задачам. Это относится и к сайтам, и к онлайн-играм, и к мобильным приложениям. Веб-технологии остаются актуальными за счет совместимости практически с любой настольной платформой (Windows, MacOS, Android, iOS или Windows Mobile), удобства обновления и обслуживания.
Что такое Backend-разработка?
В отличие от фронтэнда разработчики в направлении бэкэнда имеют дело с серверной частью сайта или облачного продукта. И первое, чем они занимаются – это организация работы с базой данных, в которых хранится весь контент, от шаблона до картинок и текстов на всех внутренних страницах и подключенных плагинов, интегрированных через API внешних сервисов. То же относится к форме регистрации, покупкам товара из «корзины», приему платежей.

Направления, по которым часто работают Backend-разработчики:
- Механизмы регистрации, аутентификации.
- Функционал личных кабинетов клиентов в B2B и B2C.
- Распределение ролей, выдача разрешений, контроль доступа.
- Совместной работы над проектами (чтение, редактирование, удаление).
- Прием запросов от пользователей, их обработка (скачивание файлов и т.п.).
- Интерактивные формы для заказа товаров, услуг, расчета параметров (калькуляторы).
- Интеграция с внешними приложениями, другими сайтами, оборудованием.
В сферу ответственности специалиста по Backend’у также входит организация отправки различных уведомлений. Например, с подтверждением действий в виде всплывающих сообщений в браузере, электронных писем на Email, СМС на мобильный телефон. То же относится к подписке на новости, управлению тарифными планами, приему платежей, загрузке пользовательских файлов. Все будет работать только за счет специальных программ, размещенных на сервере.
Сходства и отличия
Напрямую сравнивать Frontend и Backend практически бессмысленно. Да, это совершенно разные направления программирования, но работать друг без друга отдельные модули не смогут. Толку от вычисляющего кода калькулятора, если нет соответствующих кнопок в интерфейсе? И наоборот, их нажатие ни к чему не приведет, если на сервере отсутствует или «сломалась» соответствующая программа. Поэтому команда разработчиков включает специалистов обеих категорий.

Варианты взаимодействия интерфейса и сервера:
- Браузер пользователя отправляет HTTP-запрос, после обработки возвращается ответ в виде HTML-страницы.
- Скрипт на JavaScript аналогичным образом отправляет запрос по технологии AJAX, ответ приходит в виде XML или JSON, его обрабатывает тот же или иной скрипт.
- Страницы на фреймворках Angular и Ember обмениваются информацией с серверной частью без обновления неизменяемого содержимого.
- Библиотеки Ember и React разделяют исполнение приложения между сервером и клиентской частью для оптимизации скорости.
Выбор решения зависит от задач. Одно дело разработать одностраничник под рекламные кампании, и совершенно другое, когда программист работает с интернет-магазином, напичканным функциями «под завязку». И даже корпоративный сайт с внутренним порталом будет отличаться от каталога с товарами или от сайта-визитки. Проще всего сотрудничать со специалистами Fullstack, для которых одинаково легко программировать интерфейс и модули, спрятанные «под капотом».
Но тогда придется ждать результата дольше, чем это возможно при параллельной разработке двух «независимых» блоков. Правда, командная работа требует привлечения минимум третьего человека для составления схемы с логикой функционирования сайта, выбора языка программирования. Плюс координации сотрудников, чтобы уложиться в запланированные сроки, своевременно обнаружить ошибки и устранить их еще на этапе тестирования прототипа.
Чем занимаются Frontend- и Backend-разработчики?
Координатору нужно четко понимать, какие задачи кому поручать, иначе проект «зависнет» еще сильнее, чем при сотрудничестве с Fullstack-разработчиком. Поэтому новичкам в веб-индустрии сложно работать PM (Project Manager, менеджером проектов). Прежде чем выйдет зарабатывать в этой сфере придется получить массу теоретических знаний. То же относится к специалистам QA Manual или тестировщикам, им нужно понимать, какие баги к чьей части кода относятся.
Frontend
Но вернемся к разработчикам. Так, фронтэнд относится исключительно к реализации визуальной части приложения или сайта. В его обязанности входит разработка нового функционала, улучшение старого, рефакторинг кода для улучшения производительности, читаемости, расширяемости, чтобы легко добавлять новые «фишки». Плюс за ним остается обзор кода, отправляемого на сервер, баги в «чужом» коде, если разработкой ранее занимался другой специалист.
Основные инструменты фронтэнда:
- HTML – язык разметки для составления структуры страницы, ее разбивки на блоки.
- CSS – стили отображения заголовков, текста, включая цвета, кегли, другие настройки.
- Препроцессоры – инструменты вроде SASS, LESS, расширяющие возможности CSS.
- JavaScript – язык программирования для «оживления» интерфейса, общения с сервером.
- React – популярная JS-библиотека, особо интересна для разработки простых SPA.
- Angular – фреймворк с большой коллекцией готовых к применению модулей.
- Vue – еще один фреймворк, подходит для создания высокопроизводительных приложений.
Последние 3 пункта относятся к трендам последних нескольких лет. Если раньше от разработчика ждали лишь хорошего знания связки HTML+CSS+JS, теперь обойтись таким простейшим набором инструментов не выйдет. Плюс к перечисленному фронтэнду приходится работать с графическими редакторами, сервисами контроля версий (Git, GitHub, CVS и др.). Помогает разобраться в массе нового хорошее знание английского языка, потому что книги в основном иностранные.
Backend
Обязанности бэкэнда при поверхностной оценке «те же». К ним относится разработка, рефакторинг кода, инспектирование «чужих» блоков и написание документации. Последняя понадобится, когда придет время дорабатывать проект, чтобы было проще понять логику приложения (сайта). Сюда же относится исправление багов, модульное и интеграционное тестирование, в том числе в команде с фронтэндом для проверки обмена данными между интерфейсом и исполняемыми блоками.
Основные инструменты бэкэнда:
- Базы данных – в основном используются реляционные MySQL или PostgreSQL.
- Языки программирования – здесь понадобится JavaScript, плюс PHP, Go, Java и Python.
- Git – системы контроля версий, позволяющие быстро вернуться к любой из предыдущих.
- API – интерфейс для интеграции внешних сервисов, программ и даже оборудования.
- Node.js – инструмент для переноса исполняемой части JS-скриптов на сервер.
- Symphony и Laravel – фреймворки, дополняющие и расширяющие функционал PHP.
- Django – аналогично для языка программирования Python.
- Spring – то же, только для платформы Java.
Фреймворки стоит осваивать в зависимости от того, на каком языке разработчик преимущественно работает, а не «все подряд». Технологии постоянно меняются, поэтому по мере востребованности может понадобится развитие в других инструментах. Ведь всего 2-3 года назад базой считался PHP и 99% проектов создавались на нем. Сейчас сохраняется «обратная совместимость» и специалисты с навыками программирования на нем еще актуальный. Но приходится расширять знания.
К тому же переход на фреймворки упрощает разработку, в них имеется масса готовых блоков кода, которые остается лишь включить в собственный. Например, нет смысла писать отдельный модуль для формы подписки на новости, когда проще вставить обращение к «стандартному», проверенному на стабильность, блоку. То же относится к другим типовым функциям сайтов – приему платежей, корзине в интернет-магазине, фильтрам, сортировке и т.д.
Карьерный путь и зарплата разработчиков
Разница в квалификационных требованиях влияет и на карьерный путь, зарплату специалистов. При оценке уровня знаний и практических навыков существует формальное деление на Junior, Middle и Senior, но в зависимости от работодателя цифры меняются в широких пределах. Отчасти на оценку влияет размер проекта, количество сотрудников в отделе разработки. Одно дело заниматься всем в одиночку и совсем другое, когда на специалиста взваливается лишь небольшая часть задач.
Frontend
По данным сайта hh.ru зарплаты в секторе Frontend колеблются от 20 тыс. до 70 тыс. рублей для тех, кто достиг уровня Junior. При росте квалификации можно рассчитывать на увеличение среднего заработка. Так, для Middle диапазон растет до 50-300 тыс. рублей, а для Senior – уже до 100-550 тыс. рублей. Очевидно, что есть куда расти, если однажды получить хотя бы базовые знания в HTML и CSS, плюс немного JavaScript. Главное, получить возможность практиковаться.

Перспектива вырасти в:
- tech lead – технический специалист в области Frontend уровня «гуру»;
- team lead – руководитель команды разработки (оперативное управление);
- full-stack developer – универсал, одинаково владеющий фронтэндом и бэкэндом;
- solution architect – разработчик архитектуры внутреннего устройства и интерфейсов;
- tech consultant – консультант по «узким» вопросам, касающимся направления.
Специалисты в фронтэнд’е работают в студиях веб-разработки, IT-департаментах компаний вроде маркетплейсов, ритейлов, социальных сетей, стриминговых платформ. Также услуги востребованы в среде разработчиков корпоративного софта, например, CRM, складских, бухгалтерских программ с веб-интерфейсом. Отдельное направление – государственные услуги, ведь в онлайн переводятся многие сервисы (сайты Госуслуги, Налоги.ру, городские, ведомственные порталы).
Backend
Программисты в направлении Backend’а имеют более высокую зарплату даже на начальном уровне – от 40 тыс. до 100 тыс. рублей. Хотя при росте квалификации речь идет в основном о минимальных доходах: Middle – 60-350 тыс. рублей, Senior – 120-600 тыс. рублей. Здесь также влияет количество сотрудников в отделе разработки и сложности проекта. Отчасти на уровень оплаты влияет тип языка программирования, на котором предстоит писать код.

- Fullstack – освоить HTML c CSS после Python или Ruby просто, главное, понять идеологию построения интерфейсов, разобраться с юзабилити.
- Руководители проектов – навыки программирования помогут делегировать задачи внутри команды, включая отдельных специалистов на аутсорсинге.
- Технические консультанты – например, в организованных курсах обучения веб-разработке, занимаясь практической частью (постановка заданий, проверка, помощь в корректировке).
Направление, куда развиваться, зависит исключительно от желания специалиста. Потому что оба, и Frontend, и Backend, позволяют работать удаленно. Это означает независимость от места жительства и возможность сотрудничать одновременно с несколькими работодателями. Хоть по трудовой, хоть по разовым заказам. Но остаться востребованным получится только при знании нескольких языков программирования, уверенном владении английским,
Как стать специалистом?
Есть еще одно преимущество веб-разработки – можно стать специалистом в этой области без вуза и помощи профи. В сети достаточно профессиональных сообществ, где делятся наработками все «кому не лень». Многие разработчики в процессе обучения обзаводятся собственными подборками готовых модулей, за счет которых заметно ускоряют сборку типовых проектов. Им остается лишь адаптировать «куски кода» к новым переменным и проверить работоспособность.

- Бесплатные курсы – чаще они выглядят как серия вебинаров, где рассказывают основы, как подготовить компьютер к разработке (например, установить спец. софт), объясняют, какая последовательность изучения быстрее даст эффект.
- Платный курсы – в дополнение к возможностям бесплатных позволяют получить «диплом» или сертификат об окончании обучения. В процессе присутствует практическая часть вместе с проверкой заданий, комментариями профи.
Оба способа обучения желательно совмещать с самостоятельной практикой. Будет полезным брать реальные разовые задачи на фрилансе, благо существует масса бирж вроде Upwork или Kwork, где предлагают работу веб-разработчикам. Это поможет познакомиться с разными направлениями – от простейших одностраничников до интернет-магазинов, CRM, других облачных сервисов.
Похожие записи:
- Сложные языки программирования. Топ 5: применения, преимущества, недостатки
- Язык программирования PHP: синтаксис и возможности
- Язык программирования Java в 2022 году: особенности, с чего начать, сколько можно заработать
- DevRel в 2022 году: кто это такой, чем занимается, сколько зарабатывает, как стать
Источник: itstan.ru
Frontend и Backend: что это и в чем отличия. Что выбрать начинающему программисту

Каждый, кто решит «уйти в ИТ» в самом начале своего профессионального пути столкнётся с неким подобием алгоритма, который придется преодолеть дабы определиться в своей будущей профессиональной деятельности. Первое разветвление путей, это выбор конкретной сферы деятельности, например тестирование, архитектура, веб разработка, гемдев, мобильная разработка и пр. Далее предстоит выбрать конкретный язык программирования, который необходимо будет освоить. Однако в случае, если выбор пал на веб разработку, соискателям придется принять дополнительно еще одно решение и определиться хотели бы они пойти во Frontend или Backend.
Что такое Frontend и Backend
Для того, чтобы простыми словами объяснить что такое фронтенд и бэкенд в разработке можно рассмотреть принцип работы любого современного гаджета. Например, планшета. Фронт- это то, что видит человек и то, что он сам может «потрогать»: иконки, клавиатура, перелистывание страниц и пр. Не зря сегодня фронтендов часто называют «разработчиками интерфейсов». А бэкенд- это все, что спрятано внутри и что заставляет планшет выполнять именно те задачи, которые мы от него ожидаем: поиск необходимого файла, серфинг в интернете, просмотр фильмов и пр.
Что делает фронтенд-разработчик
Фронт отвечает за визуализацию проекта, за то, чтобы все нажималось, перелистывалось и корректно отображалось на любых экранах.
Конкретные задачи фронтэнд-разработчика
- Создание и верстка динамических интерфейсов
- Написание скриптов
- Разработка новых и поддержка существующих компонентов
- Разработка npm модулей
- Реализация серверного API на клиенте
- Тестирование функционала
- Оптимизация и расширение функционала
- Рефакторинг кода
- Ускорение работы сайта, приложения
Фронт в своей ежедневной деятельности плотно контактирует с дизайнерами и бэкенд-разработчиками.
Что нужно знать и уметь, чтобы стать Frontend-разработчиком
- Html
- CSS
- CSS-процессоры: SASS, SCSS, LESS
- Технологии адаптивной верстки – CSS FlexBox, CSS Grid
- JavaScript, TypeScript
- Знать один из фреймворков
- Уметь работать с системой версий контроля Git
- Писать чистый код, используя линтеры для анализа качества кода и устранения ошибок
- Умение тестировать приложения
Что делает бэкенд-разработчик
Бэк отвечает за функционал проекта, то есть делает так, чтобы все задачи выполнялись и человек, использующий приложение мог одним нажатием кнопки получить то, что ему необходимо: положить товар в корзину, заказать такси, оформить страховку и пр.
Функции бэкенд-разработчика
- Работа с базами данных
- Написание и оптимизация SQL запросов
- Работа с разными серверами
- Разработка собственного API и внедрение внешнего
- Написание и рефакторинг кода
- Написание тестов
- Разработка технической документации (Swagger)
- Разработка архитектуры приложений
В процессе работы бэкенд взаимодействует с бизнес-аналитиками, девопсами, архитекторами баз данных, фронтенд-разработчиками.
Что нужно знать
- Один или несколько серверных языков (PHP, Java, Python, Go, C# и др)
- Базы данных MySql, NoSql, Postgres
- Принцип работы протоколов передачи данных HTTP и HTTPS
- Понимание работы и настройка веб-серверов Apache или Nginx
- Docker
- Как организовывать сессии, хранить cookie-файлы
- Знать Oauth — открытый протокол авторизации
- Уметь работать с системой версий контроля Git
- Понимать как устроены асинхронные запросы
- Работа c Memcached, Redis — кэширование данных
- Знать один из фреймворков выбранного языка программирования (для PHP- Symfony или Laravel, для Python- Django, для Java- Spring)
Fullstack
Существует и третий путь- это не выбирать между бэкендом и фронтендом, а стать сразу и тем и тем. В разработке это называется фулстек.
Такой вариант стоит рассмотреть, если:
- Вы никак не можете определиться, что вам больше нравится фронт или бэк
- Вы планируете запускать собственный проект или разрабатывать сторонние полностью самостоятельно
- Ваши карьерные ожидания не заканчиваются позицией разработчика, а идут дальше и вы хотели бы стать в будущем техлидом или проджектом.
Кто больше зарабатывает
Доход любого разработчика зависит прежде всего не от выбранного языка, а от:
- Компании, в которой он работает
- Опыта в разработке
- Набора навыков и умений
- Софт скиллов
Если брать средние значения, то Frontend-разработчики практически не уступают в заработках бэкам, а некоторые языки (например PHP) даже превосходят.
Frontend
Junior Frontend-разработчик без опыта может рассчитывать на минимальный доход от 40 000 рублей. Есть вакансии, которые предлагают зарплату вплоть до 200 000 рублей начинающим специалистам.

Специалисты с опытом работы от 1 года зарабатывают минимум 80 000 рублей, среднее же предложение по рынку труда- от 185 000 рублей.
Вакансий, которые предлагают фронтам доход от 400 000 рублей на момент написания статьи- 53.
Для релевантности сравним предыдущие данные с двумя разными позициями бэкэнд-разработки- PHP и Java
PHP
Junior PHP-разработчик без опыта работы по специальности может зарабатывать от 35 000 рублей и максимальный доход может со старта составлять также 200 000 рублей.

Если опыт работы составляет 1 год, то пхпэшник может рассчитывать минимум на 65 000 рублей. В средним же такие специалисты зарабатывают от 125 000 рублей
Более 400 000 рублей опытному PHP -разработчику готовы предложить 32 работодателя.
Java
Junior Java-разработчик сможет выбрать среди вакансий с минимальным предложением оплаты труда 35 000 рублей. Максимально работодатели готовы платить новичку до 150 000 рублей. Не готовы компании брать сейчас джавистов без опыта и много им платить.

С опытом работы от 1 года Java-разработчик может зарабатывать от 65 000 рублей, среднее предложение- от 180 000 рублей
Актуальных вакансий, которые предлагают доход от 400 000 рублей, сайт по трудоустройству отыскал 136 штук. Начинающих джавистов нанимаю неохотно, зато разработчики с опытом могут быть уверены в востребованности и высоком доходе.
Что выбрать: Frontend или Backend
Источник: vasyaznaet.ru
