Представление о современном backend-разработчике

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!

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

Hard-skills

Хардскиллы переоценены. Да, думаю сейчас это действительно так. Почти все разработчики большую часть своего времени создают микросервисы, суть которых в перекладывании json'ов из одного места в другое. Что касается творческих задач, их не так много, как хотелось бы.

Но почему-то на собеседованиях любят спрашивать то, что никогда не пригодится или пригодится один раз в жизни. Типа что выведет "вот этот вот код" или по какому алгоритму работает garbage collector в php. Серьезно? Это как-то говорит о степени твоей профессиональности? А с учетом того, что гуглится такая информация за минуту, то смысл таких вопросов сводится к нулю.

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

А вот зачем разработчику, который дергает api, знать внутреннюю архитектуру archlinux или иметь в резюме опыт разработки сетевых протоколов? Также знание каких-то конкретных технологий (RabbitMQ) имеет мало смысла. Толковый инженер, с широким кругозором и сильным бэкграундом разберется практически с любой технологией за пару дней (или даже часов). Компания ничего от этого не потеряет, а только выиграет. Конечно же есть некоторые вопросы, знать ответы на которых мастхэв: SOILD, знания об основах своего ЯП, его плюсы/минусы, принципы KISS, DRY и умение следовать им.

Related skills

Эти скилы стоят примерно на одном уровне по важности с хардскиллами. В условиях микросервисной архитектуры умение "проводить" сервис является одним из ключевых навыков. Создать микросервис, отредактировать ci/cd, возможно даже подредактировать конфиги kubernetes'a на production. Умение работать с kubectl (зайти в контейнер, получить логи) - наличие всех этих умений делает из вас более полезную боевую единицу для современного IT бизнеса.

Soft-skills

Возможно сейчас это самый важный набор скилов.

  • Ответственность за результат. Важно понимать, что задача ограничивается не только твоим MR, а ты (и твоя команда) ответственны за задачу от постановки до релиза на production. Забота о том, чтобы твои изменения были доставлены к конечному пользователю довольно быстро, без проблем и хорошо проверенными, без критических багов. Отсутствие страха в коммуникациях с людьми из других отделов. Умение уточнить детали задачи если что-то не ясно.

  • Критическое мышление. Тоже является одним из столпов современного разработчика. Хороший работник должен ставить под сомнение вообще все, что видит (в разумных пределах), в том числе и свое решение. Уметь задавать правильные вопросы в ТЗ (если оно есть, ха-ха). Быть готовым конструктивно спорить с менеджерами, архитекторами, тимлидами и конструктивно критиковать их решения.

  • Самостоятельность. Умение разобраться в том или ином вопросе самостоятельно и предложить готовое решение команде, а не просить расписать каждый шаг как тебе нужно работать.

  • Работа на команду. Подправить документацию, подкорректировать описание эндпоинта. Умение вести общий вклад в работу команды, а не только ограничиваться кодингом своей задачи. Хорошо, когда разработчик делает вклад в общее дело!

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

Заключение

Хотелось бы вспомнить цитату одного из своих бывших коллег:

Программист должен решать проблемы, а не создавать их.

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

Источник: https://habr.com/ru/post/593801/


Интересные статьи

Интересные статьи

Предыстория Когда-то у меня возникла необходимость проверять наличие неотправленных сообщений в «1С-Битрикс: Управление сайтом» (далее Битрикс) и получать уведомления об этом. Пробле...
Я знаю как тут, да и не только, не любят современного рекрутёра/HRа. Прежде чем гневно набросать мне «шпал», прошу дочитать это послание до конца. Тут не будет ни лести, ни окраса...
Устраивать конкурсы в инстаграме сейчас модно. И удобно. Инстаграм предоставляет достаточно обширный API, который позволяет делать практически всё, что может сделать обычный пользователь ручками.
Эта статья посвящена одному из способов сделать в 1с-Битрикс форму в всплывающем окне. Достоинства метода: - можно использовать любые формы 1с-Битрикс, которые выводятся компонентом. Например, добавле...
Практически все коммерческие интернет-ресурсы создаются на уникальных платформах соответствующего типа. Среди них наибольшее распространение получил Битрикс24.