Рейтинг@Mail.ru
Backend-разработчик

Backend-разработчик: пламенный мотор

Автомобиль или самолет может быть очень красивым, — но если у него нет двигателя, это просто муляж. И о продуктах в сфере IT можно сказать то же самое. «Моторами» в этой области занимаются бэкенд-разработчики: люди, которые создают живое сердце любого сайта.

Реальные герои

Павел Щербинин
руководитель разработки «Новости Mail.Ru» и «Hi-Tech.Mail.Ru»
Константин Соловьев
программист проекта Skyforge

О профессии

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

Разработчиков условно можно разделить на две группы — backend и frontend. Первые занимаются разработкой «внутренностей» системы: её архитектуры, базы данных и программной логики. Вторые — интерфейсами, с которыми непосредственно взаимодействуют пользователи.

Вы смотрите на машину снаружи: она блестящая, привлекательная, но без двигателя она не работает. Мотор спрятан где-то под капотом, однако именно он заставляет автомобиль двигаться — и обладает весьма сложным устройством. Красивая машина, которая плохо ездит, никому не нужна. Backend-разработчики работают для того, чтобы их «машины» — сайты, игры или приложения — становились быстрее, лучше и дольше не ломались.

В backend-разработке часто возникают проблемы, которые нужно решать срочно. Это как ехать на большой скорости по трассе и потерять колесо, — а остановиться при этом нельзя. Хороший программист скажет: все садитесь на правую сторону, потому что у нас нет левого колеса, а ты, Паша, бери «запаску» и прикручивай!

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

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

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

В коде часто можно встретить странные вещи, которые разработчики называют «костылями». Иногда в коде бывает написано: «x = 45», — и комментарий предыдущего разработчика: «Не знаю, почему, но без этого не работает».

Brainfuck — один из самых известных эзотерических языков программирования, придуман Урбаном Мюллером в 1993 году для забавы.

Язык имеет всего восемь команд, каждая из которых записывается одним символом. Исходный код программы на Brainfuck представляет собой последовательность этих символов без какого-либо дополнительного синтаксиса.

Программа на языке Brainfuck, печатающая «Hello World!»:

                                                                ++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++
                                                                .>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.
                                                                ------.--------.>+.>.
                

Знания и навыки

Что должен знать и уметь каждый программист:
  • 1 Знать один или несколько языков программирования
  • 2 Любить математику и логику
  • 3 Разбираться в современных парадигмах
  • 4 Быть здоровым перфекционистом и любить работу
  • 5 Иметь огромное терпение и упорство

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

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

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

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

Образование

Backend-разработчику нужно иметь хорошее фундаментальное техническое образование. Качественное образование дают МФТИ, МГТУ, МГУ, ИТМО или МИФИ. Но многое зависит от человека, от его желания и интереса. При наличии желания хорошее образование можно получить и в менее престижных вузах.

  • МГУ
    факультет Вычислительной математики и кибернетики
  • МГТУ им. Н.Э. Баумана
    факультет «Информатика и системы управления»
  • МФТИ
    факультет радиотехники и кибернетики
  • МИФИ
    факультет кибернетики и информационной безопасности

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

Mail.Ru Group запустила программу бесплатного дополнительного образования «Технопарк» для студентов МГТУ им. Баумана, в рамках которой можно получить все необходимые для backend-разработчика теоретические знания и практические навыки.

Совершенный код. Мастер-класс

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

Приемы объектно-ориентированного проектирования. Паттерны проектирования

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

Алгоритмы на Java

Книга Седжвика и Уэйна «Алгоритмы на Java» является классическим справочным руководством, в котором содержится необходимый объем актуальных знаний для программиста в области алгоритмов, накопленных за последние несколько десятилетий.

Жаргон

Упало в кору
сервер завершил свою работу неправильно и вывел то, что было у него в памяти
Боевой сервак
сервер, который отвечает на запросы пользователя. Сердце всех проектов, самое важное, что есть у backend-разработчика.
Выкатка
процесс размещения новой версии на боевом серваке. Существуют производные фразы: например, “Кати-кати, не бойся”
Костыль
наскоро созданное решение, которое ухудшает читаемость кода и его последующую поддержку, но позволяет решить проблему
Несущий костыль
костыль, который со временем врос в систему и стал настолько важным, что без него ничего не работает.
Велосипед
созданный с нуля код, который уже был придуман кем-то другим до этого.

Какой ты герой?

Узнай, какая интернет-специальность подойдёт тебе больше
Пройти тест