Что вообще такое бэкенд, зачем им заниматься?

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

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

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

И вот бэкендеры спасают нас от этого.

Есть и более «обычные задачи» — все формы регистрации, запись к врачам и даже этот блог работает с помощью бэкендеров. Блог, например, написан на PHP. Этот текст ещё минуту назад лежал в базе данных, а когда вы открыли эту страницу, загрузился оттуда, и теперь вы можете его читать.

Чудеса? Чудеса.

Что выбрать — PHP, Python, Go или Node.js?

Смотря для чего. На PHP работает подавляющая часть сайтов, но другие языки могут быть моднее. Вообще, конечно, любой язык можно приспособить под любую задачу — наверняка есть работа и для бэкенд-разработчиков на Python, если в какой-нибудь компании так принято.

Можно писать сайты на C, делать бэкенд на Visual Basic и игры в Экселе, но зачем?

Node.js — другой хороший и модный вариант бэкенда, а ещё с ним проще стать фулстеком. Потому что можно выучить JavaScript и писать сразу и фронтенд, и бэкенд, и получать больше денег.

Почему все говорят про Python? Он крутой?

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

Комикс xkcd 353
Перевод от xkcd.ru

PHP умирает?

(глубокий выдох)

Нет, не умирает. Он, может быть, менее модный, чем был когда-то, но на нём всё ещё работают 80% сайтов в интернете. Четыре из пяти, представьте себе. Работа для PHP-разработчиков никуда не денется, потому что никуда не денутся 50 с лишним миллионов сайтов, внутри которых бьется пиэйчпишное сердце.

«Умирание PHP» — миф, которых пока ещё очень много.

PHP сложный?

Не сильно сложнее, чем другие популярные языки. А раньше его простота вообще приводила к тому, что на нём было слишком просто написать плохой код (поэтому его так много). С выходом PHP 8 такого стало меньше.

Для сравнения сложности, вот минимальный код, который понадобится, чтобы вывести строчку «Hello, world» на разных языках.

// PHP
<?php echo 'Hello, world'; ?>

// Python
print("Hello, World!")

// Ruby
puts "Hello World"

// Go
package main
import "fmt"
func main() {
    fmt.Println("Hello, World!")
}

Уважаемые разработчики на PHP, Python, Ruby и Go с годом практики и больше. Мне нужна была наглядная иллюстрация, поэтому сделайте, пожалуйста, вид, что не видели этого сравнения.

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

Бэкенд — это про логику и алгоритмы?

В каком-то смысле.

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

У фронтендеров есть React и Vue, а у бэкендеров?

Не переживайте, у бэкендеров тоже есть свои фреймворки. Django, Laravel, Yii 2, Ruby on Rails, Flask, CakePHP, Spring Boot, тысячи их. Все они созданы, чтобы облегчить разработку и сделать её понятнее.

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

Где мне пригодятся эти знания?

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

А знание, как написать «Hello, World» поможет в экспериментах. Можете, например, попробовать тренажёр по PHP — вы там сделаете целую страничку интернет-магазина своими руками. Вообще, хорошо сначала попробовать, прежде чем бросаться с головой в новое дело. Вдруг вам вообще не понравится?

Деньги-то вообще есть? Или работать за 20 тысяч?

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

И это, на секундочку, фронтенд.

А теперь посмотрите статистику от Хабр Карьеры. 140 тыс — средняя зарплата бэкендеров в 2021, это даже больше, чем во фронтенде, хотя казалось бы.

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

Придётся ли устанавливать Linux, чтобы писать бэкенд?

Бэкендерам обычно нужно понимать, как устроены Линукс, терминал, файловая система, права доступа, и как это всё заставить работать, потому что на Линуксе работают сервера (см. вопрос номер 1).

Но правда в том, что к серверам обычно подключаются удалённо, а писать код и гуглить на StackOverflow можно хоть на ноутбуке с Windows — было бы желание, а все инструменты уже есть.

Как взломать базу паролей на бэкенде на PHP

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

Почему о фронтендерах все говорят, а о бэкендерах нет?

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

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

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

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

В следующей серии

Что нужно уметь бэкендеру