Многозадачность в IT: все, что вы хотели узнать о бэкенд-разработке
Специально для TechInsider Сергей Федосеенков, руководитель отдела разработки инструментов для партнеров Яндекс Маркета и направления Java в Летней школе бэкенд-разработки Академии Яндекса, объяснил, из чего состоит работа бэкендеров и что нужно знать, чтобы освоить эту профессию.
Более половины россиян покупают товары в интернете, десятки миллионов человек прокладывают маршруты в навигаторах, ищут информацию о погоде и курсе валют, читают новости и смотрят видео. За стабильность и скорость работы этих ресурсов отвечают бэкенд-разработчики. Они следят за тем, чтобы сервера выдерживали нагрузку, а базы данных продолжали работать, даже когда на сайт одновременно заходят десятки тысяч человек.
Чем занимаются бэкенд-разработчики
Бэкендеры отвечают за реализацию невидимой для пользователя серверной части сервисов и приложений. Это отличает бэкенд-разработчиков от специалистов по фронтенду, которые занимаются созданием графического интерфейса.
Эксперты в бэкенде продумывают архитектуру ресурса, обеспечивают безопасное хранение и передачу данных, следят за тем, чтобы сервис работал быстро и устойчиво. По сути, они создают фундамент проекта — без них сайт или веб-приложение, какими бы красивыми и удобными они ни были, останутся бесполезными.
Например, недавно Яндекс Маркет запустил возможность хранить и продавать товары со своего склада на любых площадках. Это потребовало от команды бэкенда изменений в сервисе хранения и обработки заказов, разработки нового API для создания таких заказов и работы с ними. Каждую из этих задач решала независимая команда из бэкендеров и фронтендеров, а технический лидер — по сути, тоже бэкенд-разработчик — координировал весь процесс.
Сейчас бэкендеры все чаще совмещают обе роли — они могут и код написать, и верстку поправить. Таких специалистов называют фулстек-разработчиками. Обычно хорошие бэкендеры — это мастера на все руки и короли многозадачности, ведь они одновременно отвечают за разные направления работы. Расскажу о навыках, которые нужны, чтобы успешно развиваться в бэкенде.
Быть универсальным специалистом
Без знания языков программирования стать хорошим бэкендером не получится. Вообще, нужно готовиться при необходимости писать код на любом языке. При этом знание конкретного языка, на мой взгляд, менее важно, чем понимание общих принципов computer science, алгоритмов и подходов к проектированию систем. Если человек силен в Java, то сможет при необходимости быстро перейти на Python. Конечно, есть узкие области, например, оптимизация производительности Java Virtual Machine, которые за два дня не освоишь.