Обложка: То, что не видят пользователи: работа бэкенд-программиста

То, что не видят пользователи: работа бэкенд-программиста

Алена Староверова
Алена Староверова

копирайтер компании SFERA

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

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

Компетенция бэкенда

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

Обязанности бэкенд-разработчиков меняются в зависимости от создаваемого продукта: сайт банка или, к примеру, база данных хладокомбината. Но основа у всех одна. В целом, бэкенд-разработчики отвечают за:

  • корректную работу сайта или приложения;
  • правильную вычислительную логику и алгоритмы работы;
  • API (Application programming interface — часть сервера, которая отвечает за взаимодействие сайта со сторонними серверами, за получение запросов и отправку ответов на них);
  • тестирование и наладку компонентов сайта.

Сегодня мы наблюдаем стремительное развитие IT-сферы. Соответственно, растет и  спрос на программистов. И сейчас работу найдет и intern, и junior. Как правило, начинающие программисты идут на стажировку в интересный для них проект, где оттачивают свои профессиональные навыки. А они, как уже говорилось, различаются в зависимости от специфики проекта. Так, для создания интернет-магазина нужно знать базы данных, связки PHP — AJAX, HTML. А иногда в вакансиях указывается знание принципов работы определенного оборудования, понимание схемы воронки продаж или идеальное владение определенным языком.

С чего начать

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

  • хорошее знание хотя бы одного языка (C++, Python, Java, PHP и т.д.);
  • знание API;
  • знание принципов работы серверов;
  • навыки тестирования кода;
  • знание основ сетевой безопасности и способов ее обеспечения;
  • знание популярных фреймворков;
  • опыт проектирования базы данных;
  • знание основ фронтенда.

Кроме этого фундамента не будет лишним знание:

  • администрирования UNIX;
  • Linux;
  • принципов кеширования, авторизации, кодов для HTTP;
  • модели OSI;
  • технического английского.

На вопрос о том, с чего начать обучение, ответил проект-менеджер, ведущий iOS-разработчик компании SFERA Дмитрий Нгуен:

Это надо щупать, смотреть, здесь все строго индивидуально. Если изначально с математикой вы дружите, то программирование дастся легко. Начать можно с чего угодно, с того же Pascal, С++. Самое главное — нужно знать основы, а именно блок-схемы, алгоритмическое мышление развивать… Начинающим программистам помогут курсы А. Скутаренко. Также начните тренироваться по алгоритмам на LeetCode… На GitHub найдете много полезной информации.

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

Как найти проект

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

  • СУБД (система управления базами данных);
  • фреймворков (набор средств для выполнения определенной задачи);
  • кеширования;
  • методов авторизации;
  • Docker (крайне полезное ПО для крупных приложений) и др.

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

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

Дмитрий Нгуен, проект-менеджер, iOS-разработчик:

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

HR должен правильно подбирать персонал. Есть ряд вопросов по наличию софт скиллов. Это первый фильтр. Второй фильтр – HR разговаривает с командой и смотрит, сработаются они или нет. Это уменьшит вероятность конфликтов в дальнейшем…

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

Любовь Любимова, руководитель HR-отдела компании SFERA:

На начальном этапе подбора сотрудника я общаюсь с кандидатом, оцениваю его коммуникабельность, способность работать в коллективе. То есть я узнаю человека в первую очередь с его непрофессиональной стороны, а потом уже я у него интересуюсь, готов ли он делать тестовое задание. У нас для каждого разработчика есть свое тестовое задание. Будь это iOS, backend и так далее. Выполненное задание я направляю тимлиду для проверки. К сожалению, при поиске разработчиков я часто сталкиваюсь с «закрытой дверью». Зачастую разработчики указывают не свой номер телефона, либо они указывают номер телефона, который не работает или не доступен, либо они просто не берут трубки абсолютно в любое время…  Видимо, это из-за того, что к ним приходит много запросов. Хотелось бы пожелать программистам, которые находятся в поиске работы, общаться с сотрудниками HR на равных. Часто те, кому я звоню, смеются и ухмыляются в процессе разговора. Либо говорят: «Хорошо, я сейчас прочитаю (письмо) и вам отвечу». И на этом все заканчивается. Хотя за последнее время было, наверное, 4 разработчика, которые с первого слова общались как с другом. Побольше бы таких людей.

Программный процесс

Для слаженной работы необходимо понимать зависимость команд программистов друг от друга. Как организуется рабочий процесс и какое место в нем занимает бэкенд (при взаимодействии с другими специалистами) — рассказал Дмитрий Нгуен.

У нас работают 13 человек: Frontend-, Backend-разработчики и разработчики на ядре приложения. Перед тем, как начать работать над новой частью проекта, я, как проект-менеджер, в течение недели продумываю с тимлидом план работы с командой. Самое важное в составлении плана —  понимание зависимости команд друг от друга (бэкенд, ядро, фронтенд).

Мы строим работу так: бэкенд делает работу на своей стороне. Ядро, зная те данные, которые отдаст сервер, начинает работать над своей частью. Параллельно с этим фронтенд делает верстку и приступает к другим задачам. Когда фронтенд закончил верстку, а ядро выполнило свою работу, начинается внедрение… Конкретно бэкенд отвечает за связь ядра и фронтенда. Такое распределение у нас в команде делается для того, чтобы никто не сидел без дела…

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

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

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

Хинт для программистов: если зарегистрируетесь на соревнования Huawei Cup, то бесплатно получите доступ к онлайн-школе для участников. Можно прокачаться по разным навыкам и выиграть призы в самом соревновании.

Перейти к регистрации