Уже который год во всех слаках, дискордах, телеграмах и форумах главный вопрос о любом языке программирования звучит так — стоит его учить В ЭТОМ ГОДУ, или лучше уже не надо? Взять какой-нибудь PHP — его же вечно хоронят, и всё никак.
Есть и много других вопросов. Например:
— Что выбрать — PHP, Python, Go или Node.js? Или Visual Basic? Или С? Может, Brainfuck?
— Почему все говорят про Python? Он крутой? Круче, чем всё?
— Бэкенд — это про логику и алгоритмы? Матан нужен? А чувство прекрасного?
— У фронтендеров React, Vue и миллионы других фреймворков, о которых все слышали, а что у бэкендеров? Терпение?
— Придётся ли устанавливать Linux, чтобы работать с бэкендом?
— Почему о фронтендерах все говорят, а о бэкендерах нет? Это потому что у них зарплата 20 тысяч?
Как хорошо, что спрашивать не стыдно, а отвечать — бесплатно. Поэтому мы попробуем ответить, а вы присоединяйтесь к обсуждению, потому что в таком деле у всех свои ответы.
Что вообще такое бэкенд, зачем им заниматься?
Если упростить, то любой сайт — это код, файлы, базы данных и картинки. Всё это лежит не на компьютере у разработчика сайта, а на сервере — отдельном компьютере, к которому может подключаться много пользователей.
Бэкенд-разработчик отвечает за то, что лежит на сервере — делает так, чтобы файлы сохранялись и читались, базы данных работали, как следует, байтики передавались, а в браузере у пользователей показывалось то, что они хотят увидеть, а не какие-нибудь сепульки.
Например, бэкенд-разработчик может сделать так, чтобы ваше письмо дошло, куда надо, а приложенный по пути годовой отчёт в эксельке не потерялся. Или чтобы аватарка в соцсети была на месте и все лайки в инстаграме остались там, где вы их поставили, а не переехали на страницу к другому человеку. Потому что представьте, какая это была бы катастрофа.
И вот бэкендеры спасают нас от этого.
Есть и более «обычные задачи» — все формы регистрации, запись к врачам и даже этот блог работает с помощью бэкендеров. Блог, например, написан на PHP. Этот текст ещё минуту назад лежал в базе данных, а когда вы открыли эту страницу, загрузился оттуда, и теперь вы можете его читать.
Чудеса? Чудеса.
Что выбрать — PHP, Python, Go или Node.js?
Смотря для чего. На PHP работает подавляющая часть сайтов, но другие языки могут быть моднее. Вообще, конечно, любой язык можно приспособить под любую задачу — наверняка есть работа и для бэкенд-разработчиков на Python, если в какой-нибудь компании так принято.
Можно писать сайты на C, делать бэкенд на Visual Basic и игры в Экселе, но зачем?
Node.js — другой хороший и модный вариант бэкенда, а ещё с ним проще стать фулстеком. Потому что можно выучить JavaScript и писать сразу и фронтенд, и бэкенд, и получать больше денег.
Почему все говорят про Python? Он крутой?
Python очень приятный, его легко выучить и развлекаться. Но в бэкенд-разработке он используется не слишком часто. Он лучше подходит для других задач — аналитики, работы с нейросетями, вычислениями и статистикой. Там есть всё или почти всё, что для этого нужно.
PHP умирает?
(глубокий выдох)
Нет, не умирает. Он, может быть, менее модный, чем был когда-то, но на нём всё ещё работают 80% сайтов в интернете. Четыре из пяти, представьте себе. Работа для PHP-разработчиков никуда не денется, потому что никуда не денутся 50 с лишним миллионов сайтов, внутри которых бьется пиэйчпишное сердце (ух как завернул).
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, тысячи их. Все они созданы, чтобы облегчить разработку и сделать её понятнее.
Осталось не забывать главное правило — выучите язык перед тем, как учить фреймворк, а не после. Потому что учить сначала фреймворк это как строить дом, начиная с третьего этажа.
4.02. Алекс доказывает, что он не виноват. Просто 12 этажей Сидорова на 4 метра выше и на 5 метров шире, чем 12 этажей Петровича. Выяснилось, что они строили из разных панелей. Но Алекс все равно ламер, поскольку его крыша не подходит по размеру ни одному из вариантов. Его шахта лифта, кстати, тоже.
Помните же классику?
Где мне пригодятся эти знания?
В принципе знание языков программирования и основ работы бэкенда пригодится в большой или маленькой компании, которая делает сайты.
А знание, как написать «Hello, World» поможет в экспериментах. Можете, например, попробовать тренажёр по PHP — вы там сделаете целую страничку интернет-магазина своими руками. Вообще, хорошо сначала попробовать, прежде чем бросаться с головой в новое дело. Вдруг вам вообще не понравится?
Деньги-то вообще есть? Или работать за 20 тысяч?
Как правило, у всех есть знакомый JavaScript-разработчик (а если у вас его нет, то это вы). Обычно знакомый JavaScript-разработчик зарабатывает больше ста тысяч, работает в какой-нибудь компании, у которой есть свои курьеры с доставкой еды, и хвастается, что можно не ездить в офис.
И это, на секундочку, фронтенд.
А теперь посмотрите статистику от Хабр Карьеры. 140 тыс — средняя зарплата бэкендеров в 2021, это даже больше, чем во фронтенде, хотя казалось бы.
Конечно, не у всех есть знакомый бэкендер, но если вы им станете, то все только спасибо скажут. Сможете круглые сутки переустанавливать винду всем родственникам (шутка).
Придётся ли устанавливать Linux, чтобы писать бэкенд?
Бэкендерам обычно нужно понимать, как устроены Линукс, терминал, файловая система, права доступа, и как это всё заставить работать, потому что на Линуксе работают сервера (см. вопрос номер 1).
Но правда в том, что к серверам обычно подключаются удалённо, а писать код и гуглить на StackOverflow можно хоть на ноутбуке с Windows — было бы желание, а все инструменты уже есть.
Как взломать базу паролей на бэкенде на PHP
Не знаю, почему об этом постоянно спрашивают. Взламывать пароли вообще плохо, не занимайтесь таким.
Почему о фронтендерах все говорят, а о бэкендерах нет?
Если вы следите за русскоязычным твиттером или регулярно просмотриваете топ Хабра, то знаете как минимум нескольких фронтендеров, которые постоянно выгорают, но продолжают зарабатывать миллиарды в наносекунду. Они ездят на конференции, пишут статьи, и поэтому их заметно.
Так вот, смысл в том, что бэкенд-разработчиков ровно настолько же много, нужно просто за ними специально послеживать. Не будем советовать конкретных — при должном желании вы найдёте нескольких и самостоятельно.
Смысл в том, что говорят о тех, кого видно. Если вы сделаете себе карьеру и будете выступать на конференциях и писать в Твиттер о том, как устали делать однотипные лендинги и гонять туда-сюда джейсончики, то и о вас заговорят. Ну или можно просто переводить всё подряд на Хабр, и о вас тоже заговорят.
А можно быть просто хорошим разработчиком и делать проекты, которые помогают компании — это тоже путь. И без разницы, фронтенд это, бэкенд или мобилка. Главное — делать хорошо.
А с мифами о PHP разберёмся в прямом эфире 28 февраля в 19:00. Лёша Симоненко из Академии и Алексей Солодкий, руководитель PHP-разработки из BelkaCar, обстоятельно поговорят о современном PHP и ответят на все вопросы из чата.