Какие разработчики
Перейти к содержимому

Какие разработчики

  • автор:

Кто такой разработчик и чем он занимается

Кто такой разработчик и чем он занимается

Разбираемся, в чем суть профессии разработчика ПО, чем он отличается от программиста и какие специальности сейчас самые востребованные.

Кто такой разработчик программного обеспечения

Разработчик — широкое определение IT-специалистов, которые с нуля создают программное обеспечение и функционал ПО для разных проектов: от компьютерных и мобильных игр до сложных систем для управления заводами.

Освойте профессию «Веб-разработчик»
Веб-разработчик с нуля

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

картинка - 2023-03-14T190017.151

Профессия / 12 месяцев
Веб-разработчик с нуля
Создавайте нужные любому бизнесу сервисы
3 990 ₽/мес 6 650 ₽/мес

vsrat_8 (3)

Разработчики нужны не только в IT-компаниях, но и в медицине, строительстве, e-commerce, банках, на производстве и в рекламе. Девелопер может создать визуальный редактор контента для медиа, систему распознавания заболеваний для больницы, корпоративное приложение для завода или нефтедобывающего предприятия, мессенджер или операционную систему. Масштаб задач зависит от опыта разработчика и его желания расти.

Чем разработчик отличается от программиста

На первый взгляд кажется, что разработчик и программист — это разные названия для одной и той же профессии. Это не совсем так. Разработчик с любой специализацией умеет программировать, но не каждый программист способен полностью разработать программное обеспечение. Программист может решить конкретную задачу, используя уже заданные и известные алгоритмы. Разработчики подходят к проекту комплексно. Они не только пишут код, но взаимодействуют с техническим заданием, тестируют решения и выстроенную программную архитектуру. Их задача — создать эффективное, безопасное и стабильное решение, которое хорошо впишется в инфраструктуру бизнеса. Разберем на примере программы лояльности банковского приложения. Глобальная задача — создать внутри приложения новый функционал, который помогал бы клиентам копить баллы за покупки, а затем тратить их у компаний-партнеров банка. Разработчику нужно придумать, как будет работать новая фича, как будут взаимосвязаны действия клиентов и накопление баллов, подобрать подходящие алгоритмы, реализовать свои идеи в архитектуре приложения. Программисту в этом проекте дадут конкретные задачи: например, написать фронтенд и бэкенд для интерфейса, где клиент будет проверять количество баллов.

Станьте веб-разработчиком и найдите стабильную работу на удаленке

Hard skills разработчика

  • знать как минимум один язык программирования — Python, C++, JavaScript, PHP или другой;
  • уметь работать в разных ОС: Mac, Linux, Windows;
  • писать «чистый» код, понятный команде и коллегам-разработчикам с первого взгляда;
  • знать системы контроля версий (Git);
  • работать с алгоритмами и базами данных;
  • использовать фреймворки и библиотеки.

Soft skills для разработчика

Опытному разработчику недостаточно только технических навыков. Он работает в команде, передает задачи коллегам и отвечает за качество конечного кода. Поэтому важно также обладать базовыми soft skills:

  • общение с клиентами и членами команды на понятном языке: русском или английском;
  • тайм-менеджмент, чтобы не срывать дедлайны и организовать собственную работу;
  • умение анализировать и внимание к деталям;
  • критическое мышление, чтобы оценить задачу с разных сторон;
  • желание развиваться как профессионал (IT-индустрия не стоит на месте);
  • мультизадачность: иногда приходится одновременно созваниваться с командой, фиксить баги и дописывать новый код.
  • оригинальный подход к решению задач.

Плюсы и минусы карьеры разработчика

Разработчик — востребованная профессия, но в ней нужно постоянно учиться и осваивать актуальные навыки. Девелоперам хорошо платят, но они вынуждены весь день проводить за компьютером. Собрали в одну таблицу плюсы и минусы карьеры разработчика.

Плюсы

  • Свобода в выборе графика и режима работы. Закрывать задачки можно даже в ночное время, главное — соблюдать дедлайны и не терять в продуктивности. Многие разработчики предпочитают удаленный формат работы — специфика профессии позволяет избежать географической привязки.
  • Возможность вести несколько проектов сразу. Разнообразие в задачах — то, что избавляет разработчика от рутины.
  • Быстрый карьерный рост. Для целеустремленного разработчика не проблема вырасти из junior-специалиста в лида своей команды.
  • Легкое трудоустройство в зарубежные компании, которые часто помогают с релокацией.
  • Международный нетворкинг и открытое профессиональное сообщество, готовое помогать и направлять.

Минусы

  • Необходимость непрерывно заниматься самообразованием. Повышать свою квалификацию нужно практически постоянно, чтобы оставаться востребованным на рынке специалистом и быть в курсе последних отраслевых тенденций.
  • Постоянная работа с экранами — к своему зрению придется относиться в два раза внимательнее.
  • Высокий уровень конкуренции среди junior-специалистов.
  • Необходимость иметь опыт работы над проектами даже перед первым официальным трудоустройством.

Сколько зарабатывают разработчики

По данным Хабр Карьеры за второе полугодие 2022 года, медианная зарплата разработчиков в России — 161 000 рублей. Медианная зарплата в Москве и Санкт-Петербурге варьируется от 180 000 до 200 000 рублей, в то время как в регионах составляет около 140 000 рублей.

В первой половине 2022 года разработчики-стажеры зарабатывали, в среднем, 35 000 рублей, специалисты junior-уровня — 70 000 рублей, middle-уровня — 150 000 рублей, а senior — 240 000 рублей. Для каждого грейда уровень зарплаты растет от полугодия к полугодию со второй половины 2020 года.

Зарплаты разработчиков по направлениям

Самые популярные специальности разработчиков

Frontend-разработчик

Это специалист, который создает пользовательскую часть сайта, приложения или системы. Фронтенд — это то, что видит и с чем взаимодействует клиент. Frontend-разработчик совмещает навыки инженерные и дизайнерские.

К базовым навыкам специалиста относят знание языка разметки HTML, каскадных таблиц CSS, владение JavaScript и способность работать хотя бы с одним современным фреймворком — React, Angular или Vue.js. В идеале — пользоваться сборщиком проектов, например, gulp.js, быть знакомым с платформой Git и обладать навыком работы с пакетным менеджером NPM для эффективного использования языка JavaScript. Начать путь во frontend-разработке можно с проектов на фрилансе или работы в студии веб-разработки.

Backend-разработчик

Пока frontend-разработчик старается логически расположить элементы на странице, работает над версткой и составляющими ее компонентами, backend-специалист настраивает связи сайта с серверами и базами данных. Backend-разработчик следит, чтобы ресурс не «упал» от перегрузки, организует безопасный процесс передачи данных, настраивает системы резервного копирования и восстановления.

От backend-разработчиков требуют владения как минимум одним востребованным языком программирования: Java, C#, Python или Go. Также пригодятся навыки работы с Linux, базами данных и понимание SQL.

Сейчас backend-разработчики особенно востребованы в проектах, связанных с работой нейросетей и искусственного интеллекта. Работа с серверной структурой и вычислительной логикой сайта, приложения или программного обеспечения требуется во всех сферах: от туризма до медицины.

Алексей Каньков
Senior Backend Developer

Я делаю то, что никто не видит глазами, а именно — бэкенд, внутреннюю часть сервиса. API, над которым я сейчас работаю «под капотом», очень асинхронен. REST API-обработчик, принимающий запросы от браузера, шлет задачи в очередь RabbitMQ (брокер сообщений). Обработчики задач достают их из очереди по мере поступления и выполняют. Плюс к этому часть процессов запускается по расписанию. Сейчас пытаюсь отловить баг — статусы объектов неправильно сохраняются в базе данных MySQL. Доступ к одним и тем же объектам в базе данных получают одновременно несколько процессов сразу. И результирующий статус зависит от того, в какой последовательности эти процессы отработали. Это как тот кот, который и жив, и мертв. Непонятно, какое стечение обстоятельств приводит к проблеме, потому что влияет много асинхронных процессов.

Читайте также Как проходит день Senior Backend-разработчика на удаленке

Fullstack веб-разработчик

В его зоне ответственности — целый сайт или приложение, включая и внешний вид, и серверную часть. Fullstack веб-разработчик совмещает функции frontend- и backend-специалистов. Ему нужно одинаково хорошо владеть навыками и того, и другого.

Веб-разработчику нужно знать два языка программирования: для frontend-разработки — например, JavaScript; и для backend-разработки — Python или другой подходящий. Кроме этого пригодятся навыки работы с SQL и CSS, системным администрированием и контейнеризацией — в Docker или Git. Fullstack-разработчики часто взаимодействуют с технической документацией, поэтому важно знать английский и проявлять внимание к мелочам.

Проектировать архитектуру сайтов и приложений и заниматься системным администрированием можно в разных отраслях, тем более что fullstack — самая востребованная специальность среди разработчиков. Обычно сначала разработчик фокусируется либо на frontend-, либо на backend-направлении, а после расширяет пул навыков.

Разработчик видеоигр

Это человек, создающий из разрозненных элементов — 3D-моделей, саундтрека, графической анимации, игровых сценариев — полноценный финальный продукт. В крупных компаниях разработчики видеоигр могут отвечать за отдельный сегмент, например, программировать боевую механику или функции главного меню. В небольших студиях бывает так, что разработчик «собирает» игру от начала и до финальной сцены.

Разработчику видеоигр нужно уметь работать на одном из движков — Unity (язык C#) или Unreal Engine (язык C++). Чтобы настроить обмен данных игры с серверами, потребуется знание SQL и MySQL. Для создания игр пригодятся базовые знания о том, как устроен и из каких компонентов состоит компьютер, как работают сети. В интернете есть базы с готовыми ассетами — элементами кода игр, но хороший разработчик должен уметь писать такой код самостоятельно.

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

Мобильный разработчик

Это разработчик, который фокусируется на работе с ПО для мобильных устройств: помимо смартфонов это фитнес-трекеры, умные часы, планшеты, электронные книги и другие устройства. В профессии два основных направления: Android и iOS. Специалисты работают как с интерфейсом, так и с внутренней логикой системы приложений.

Чтобы работать с iOS, мобильному разработчику нужно знать языки Swift и Objective-C; с Android — Kotlin и Java. В зависимости от операционной системы меняется и среда разработки: XCode или Android Studio. Уметь работать с приложениями для создания прототипов графического интерфейса типа Figma — плюс в копилку прикладных навыков мобильного разработчика.

Мобильные приложения существуют практически во всех сегментах: в финтехе, ритейле, e-commerce, образовании, индустрии развлечений. Они обеспечивают близость и лояльность потребителя к бренду или компании, а значит, их разработка остается актуальной для обеих операционных систем.

Дата-инженер

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

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

Большинство алгоритмов для обработки данных пишут на Python. В идеале также нужно знать Java и Scala. Пригодится умение взаимодействовать с экосистемами работы с Big Data, например, Hadoop или Kafka. Классические базы данных не получится категоризировать без знания SQL.

12 типов разработчиков, которые должен знать каждый рекрутер

Растущий спрос на подбор программистов означает, что рекрутеры должны постоянно улучшить свои знания

У разработчиков то же самое, что и у других сотрудников: у всех разные навыки и способности. Например, ит специалист, который специализируется на создании визуального интерфейса, работает совершенно иначе, чем разработчик, который фокусируется на логике, лежащей в основе программного обеспечения. Используемые инструменты также играют важную роль.
Однако, поскольку вы не являетесь разработчиком (в большинстве случаев), вам может быть трудно отличить их друг от друга и найти того, который лучше всего соответствует вашим потребностям.
В этом году Stack Overflow проводил исследование где было опрошено более 90 000 человек с прицелом на технологическую отрасль и, в частности на фокус развития. Они использовали эти данные для создания списка 12 самых распространенных типов программистов. Это поможет ответить на самые важные вопросы в будущем: в какой области активно работает разработчик, как он работает и что именно он делает?

Back-end developers
Back-end разработчики, также известные как серверные разработчики, фокусируются на логике программных систем — то есть, что заставляет систему работать и повышать ее производительность. Они, как правило, касаются того, как машины функционируют сами по себе (то есть «компьютерная теория»), и разработки систем, которые обрабатывают и хранят данные, часто выполняя сложные алгоритмические вычисления. Они являются наиболее распространенным типом разработчиков, за которыми следуют девелоперы с полным стеком.

Базовые ит специалисты, как правило, знакомы с общими, широко используемыми языками программирования, такими как Java, C ++ и, в частности, Python — один из наиболее широко используемых, а также самых популярных языков программирования. Если специалист знаком с более поздними языками, то это может повлиять на средний уровень заработной платы: свободное владение инновационным языком программирования, таким как Go или Rust, ведет к повышению заработной платы. Бэкенд разработчики на самом деле зарабатывают в среднем больше, чем, например, фронтенд программисты — даже с таким же уровнем опыта.

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

Разработчики веб-интерфейса знакомы с мобильными языками программирования, такими как JavaScript и CSS. Они также хорошо разбираются в таких интерфейсных средах, как React, Angular или jQuery — последние, безусловно, самые популярные.
Фронтенд разработчики являются третьим наиболее распространенным типом разработчиков: в опросе они составили 32,5% респондентов из Германии. Они также среди наименее опытных, с глобальным средним фоном работы менее восьми лет .

Full-stack developers
Разработчики полного стека объединяют в себе навыки и подходы разработчиков бэкэнда и фронтэнда. Поэтому они работают как с базовой логикой программы, так и с пользовательским интерфейсом. По этой причине они способны лучше синхронизировать конструкции внутренних и внешних систем и снизить риск трения или противоречий между ними. Однако, поскольку их область фокусировки больше, они иногда более универсальны. Тем не менее, фуллстек программисты, как правило, получают более высокую заработную плату каждый год, чем фронты или беки. Кроме того, некоторые из них осваивают и используют Clojure, который на сегодняшний день является самым прибыльным языком программирования .
Full-stack разработчики являются наиболее распространенным типом: в опросе обучение они составили около 50% опрошенных.

Desktop developers
Desktop разработчики работают над программным обеспечением, предназначенным для работы на отдельных ноутбуках или настольных компьютерах. Это программное обеспечение предназначено для работы в операционной системе, такой как Windows, Apple OSX или Linux. Некоторые разработчики десктопов работают только с одной операционной системой, другие — с несколькими операционными системами. Они обладают некоторыми из тех же навыков, что и бэкенд-разработчики, но обычно знакомы с использованием SDK и графических библиотек, таких как XAML, Cocoa или .NET. Около десяти-пятнадцати лет назад разработчики десктопов были более распространены, чем сегодня. В опросе они заняли четвертое место. Они как правило, очень опытны и имеют в среднем почти десять лет опыта работы

Закрываем IT вакансии под ключ за 2 недели!
5500+ закрытых вакансий | 150+ положительных отзывов от клиентов
Помогаем новому сотруднику с адаптацией после выхода в компанию

Mobile developer (Мобильные разработчики)
В то время как разработчики десктопов пишут код, который используется для ноутбуков и настольных компьютеров, разработчики мобильных приложений пишут код для операционных систем мобильных устройств, таких как iPhone и Android. Некоторые мобильные разработчики в основном являются специализированными фронтендами, которые используют мобильные технологии, платформы и языки программного обеспечения вместо языков веб-программирования. Однако другие разработчики мобильных приложений используют автономные приложения и системы, такие как разработчики настольных компьютеров. Они в основном работают на языках, специфичных для устройств iOS (Objective C и Swift) и устройств Android (Java / Kotlin), но могут также работать на C, C ++ и связанных с ними технологиях, а также на других широко используемых языках программирования.

В опросе было обнаружено, что мобильные разработчики, в среднем зарабатывают 55 000 евро в год и относятся к числу наименее оплачиваемых (как во всем мире, так и в Германии). В то же время они являются наименее опытными, что является еще одним фактором снижения заработной платы. В целом, можно сказать, что заработная плата мобильных разработчиков, как правило, ниже, чем у других программистов с таким же средним уровнем опыта.

Графические программисты
Графические программисты в основном работают в области производства видеоигр и спецэффектов. Они создают свои собственные проекты или реализуют другие, работая над рендерингом, затенением и другими визуальными эффектами, создавая сложные изображения в играх, фильмах, телешоу и других визуальных медиа. Их навыки, как правило, чрезвычайно специфичны, и они часто обладают обширными базовыми знаниями в области математики и алгоритмов, а также художественными навыками и талантами. Графические программисты обычно свободно владеют такими языками программирования, как Java, JavaScript и C ++. Те, кто знает специализированные языки, такие как Swift и Objective-C (которые используются для разработки игр для iOS), как правило, пользуются большим спросом. В целом, графические программисты, как правило, находятся в нижней части диапазона зарплаты. Обычно они зарабатывают немного больше, чем мобильные разработчики € 55 000 евро в год, но, как правило, них немного больше опыта.

Инженер баз данных
Инженеры баз данных (и администраторы) создают и управляют системами баз данных, а также системами и приложениями, используемыми для извлечения данных из хранилища баз. В некоторых позициях инженеры баз данных также управляют конвейерами данных (т. е. они преобразуют производственные данные в полезные данные анализа), а также фокусируются на оптимизации производительности. Их навыки, как правило, включают реализации на основе SQL (такие как MySQL и PostgreSQL) и могут также включать более специфичные и современные базы данных NoSQL (такие как MongoDB и Cassandra). Инженеры по базам данных также свободно владеют языками программирования, особенно Python.

В среднем по стране 9,5 лет инженеры баз данных являются одними из самых опытных разработчиков . Опрос показывает, что их зарплаты, как правило, отстают от других типов разработчиков с меньшим опытом в среднем, таких как фуллстек и Data scientists. Они сравни с десктоп разработчиками, которые в среднем зарабатывают немного больше, но при этом немного опытнее.

Data scientists
Специалисты по данным используют инструменты программирования для преобразования больших объемов данных в полезную информацию, чтобы делать выводы и получать информацию. Как правило, они не относятся к области компьютерных наук, но хорошо разбираются в использовании языков машинного обучения, таких как R, Python, и таких инструментов, как Spark, для проведения статистического анализа и прогнозирования. Как правило, они обладают обширными знаниями в области статистики и способны эффективно общаться с руководством, отделом продаж, маркетинга и другими отделами.

Исследователи данных являются одними из самых высокооплачиваемых разработчиков, если посмотреть на их средний опыт. Они занимают четвертое место среди респондентов и среди самых высокооплачиваемых разработчиков в мире. Согласно опросу, дата сайнтисты со средним опытом 7,8 лет не слишком опытны. Тем не менее, их средняя зарплата выше, чем у более опытных разработчиков, таких как администраторы баз данных и разработчики десктопов.

DevOps и инженеры по надежности сайта (SRE)
Инженеры DevOps и Site Reliability упрощают процесс производства приложений. Они специально нацелены на написание кода, который гарантирует, что приложение безопасно запускается в производство и остается функциональным и доступным как для разработчиков, так и для пользователей. Это включает в себя множество задач и дисциплин, в том числе создание процессов, предоставление ресурсов и обеспечение устойчивости инфраструктуры приложения к возможным вирусам, повреждению базы данных, ошибкам и другим потенциальным проблемам. Как правило, они хорошо знакомы с облачными провайдерами, такими как AWS и Azure, инструментами для непрерывной интеграции, такими как spinnaker, а также с реализациями Git и системами управления журналами, такими как Splunk.

Разработчики DevOps / SRE являются одними из самых высокооплачиваемых разработчиков в отрасли . На самом деле, опрос показал, что при средней глобальной зарплате в 95 000 долларов они занимают первое место в рейтинге самых высокооплачиваемых разработчиков. Они также обычно очень опытные. Другая причина их высокой зарплаты — выбор языков программирования: Ruby и Go — два самых ценных языка с точки зрения зарплаты.

Специалисты по обеспечению / контролю качества (QA)
Специалисты по обеспечению качества (также называемые QA) гарантируют, что приложение работает должным образом. Инженеры QA уделяют особое внимание обеспечению того, чтобы код, написанный другими разработчиками, не повредил рассматриваемое приложение. Традиционно инженеры QA вручную тестировали коды с помощью программного обеспечения, чтобы увидеть, что-то пошло не так. Хотя многие инженеры QA по-прежнему считают это частью процесса, они также могут программировать автоматизированные тесты, которые имитируют использование и проверяют наличие ошибок. Это могут быть юнит-тесты или интеграционные тесты.

Поскольку они работают над кодом, написанным другими разработчиками, инженеры QA говорят на разных языках программирования. К ним относятся наиболее распространенные языки для автоматизации тестирования (Java и Python), а также другие языки, такие как Ruby. В среднем они являются одними из наименее опытных разработчиков. Хотя их зарплата находится на нижнем уровне спектра, их зарплата в среднем выше, чем у других разработчиков с большим опытом. Исследование показывает, что они примерно на одном уровне с фронтенд разработчиками с точки зрения многолетнего опыта и уровня заработной платы.

Разработчики для управления взаимоотношениями с клиентами (CRM)
Разработчики по управлению взаимоотношениями с клиентами находятся на границе между компьютерными технологиями и продажами. Они сосредоточены на создании, настройке и внедрении корпоративного программного обеспечения (программного обеспечения, которое хранит информацию о клиентах и бизнесе). Корпоративное программное обеспечение обычно относится к одной из трех категорий: системы управления взаимоотношениями с клиентами (например, Salesforce), системы планирования корпоративных ресурсов (например, SAP) и системы хранения документов (например, Sharepoint). Разработчики управления взаимоотношениями с клиентами могут сыграть решающую роль в повышении продаж и удовлетворенности клиентов, написав коды для улучшения процессов продаж и продуктов.

Embedded developers (Разработчики встраиваемых систем)
Разработчики встраиваемых систем отличаются от всех других типов программистов, упомянутых в этом списке, тем, что они работают не с программным обеспечением, а с аппаратным обеспечением. Это означает, что вместо написания кодов для систем, программ и приложений, работающих в машине, они работают на самой реальной аппаратной системе. Разработчики встроенных программ программируют поведение микроконтроллеров микросхем, встроенных программ и других устройств, иногда даже «голых» (Системы без операционной системы) между оборудованием и кодом. Как правило, они работают на C / C ++, имеют много инженерных знаний и становятся все более востребованными, поскольку все больше вещей, которые мы используем в повседневной жизни (например, устройства и транспортные средства), требуют микропроцессоров и других микросхем со встроенной логикой.

Вот все 12 типов разработчиков, которые должен знать каждый IT рекрутер в своей работе. Надеемся, что подбор ит персонала станет для вас немного легче. Если хотите пройти обучение ит рекрутингу, тогде велком в наш hr blog!

Необходимо закрыть сложную ит вакансию быстро? Мы с радостью поможем! Закрываем вакансии под ключ за 2 недели. Оплату берем только за результат и бесплатно проводим адаптацию вышедшего сотрудника. Подробности по ссылке тут

9 видов разработчиков для ИТ-рекрутера

В мире насчитывается до 10 тысяч языков программирования и продолжают появляться новые. Есть базовые языки, такие как Java и PHP и узко применимые, такие как Ruby и Perl. К тому же некоторые компании экспериментируют и создают собственные языки.

ИТ-рекрутеру, особенно начинающему, разобраться в этих тонкостях сложно, да и не нужно. А вот понимать, какие виды программистов бывают и как их отличать, — навык полезный. Расскажем об этом в статье.

Backend-разработчик

Backend Developer — наиболее популярный тип разработчиков. Они создают серверно-административную часть продукта, то есть кодят для внутренней стороны сайта, которую не видит пользователь. Такой программист разрабатывает фундамент проекта и настраивает его работу.

За что отвечает: база данных, архитектура, логика продукта, системы обработки и хранения данных.

Языки и технологии: Python, С++, Java, PHP, Ruby, Go.

Хороший бэкенд-разработчик также должен разбираться в базе данных MySQl, PostgreSQL или NoSQL.

Основные 9 видов разработчиков для ИТ-рекрутера

Frontend-разработчик

Входят в тройку самых востребованных программистов. Он отвечает за пользовательскую сторону приложения и работают на стороне клиента. Цель frontend-разработчика — сделать удобный и интуитивно понятный интерфейс для пользователя. Например, интерактивные переходы страниц, всплывающее меню, меняющие цвет кнопки — всем этим занимается frontend-developer. Также в его задачи входит правильное отображение сайта или приложения на компьютере и на разных электронных гаджетах. Ну а если в проекте отсутствует верстальщик, берет его задачи на себя — работает с HTML-кодом.

За что отвечает: пользовательский интерфейс, кросс-браузерные ошибки, верстка шаблона сайта, адаптивная и мобильная верстка.

Языки и технологии: JavaScript, CSS, интерфейсные среды (React, jQuery или Angular), HTML, препроцессоры SASS/LESS.

Дополнительные знания: серверные технологии, основы SEO-оптимизации, веб-шрифты, графические редакторы.

Full Stack-разработчик

Это универсальный программист полного цикла, который сочетает в себе знания frontend- и backend-разработчика. Фулстек-разработчик полностью разрабатывает web-проект или сайт: от программно-административной части до клиентского интерфейса. Такие разработчики нужны для создания полного проекта и востребованы на рынке.

За что отвечает: пользовательская и серверная часть сайта, кроссплатформенные приложения, интеграция сервисов на frontend- и backend-e.

Языки и технологии: JavaScript для браузерной части, PHP, Java или Python для серверной части, HTML, CSS, базы данных, фреймворки.

Основные 9 видов разработчиков для ИТ-рекрутера

Мобильный разработчик

К ним относятся программисты, которые делают приложения для мобильных устройств ОС Android и iOS. Помимо телефонов, к таким устройствам относятся: GPS-навигаторы, умные часы, электронные книги.

Как правило, Android-программисты разбираются в обеих частях приложения, отвечая за полный цикл разработки, поэтому строгого деления на frontend- и backend у них нет.

За что отвечает: полный цикл разработки приложений для мобильных устройств.

Языки для Android-разработчика: Java, Kotlin, OpenGL, Android SDK.

Языки для iOS-разработчика: Objective-C, Swift, CoreData, CoreGraphics.

Разработчик видеоигр

Программисты, которые разрабатывают видеоигры, а именно:

  • desktop-приложения (программы, которые работают под управлением ОС и не зависят от других приложений);
  • мобильные игры;
  • ролевые онлайн-игры MMORG.

Они работают над ПО, которое предназначено для ОС Windows, Apple OSX или Linux. Некоторые Game-разработчики создают бизнес-приложения для конкретной компании.

За что отвечает: игровая разработка, веб-дизайн, обновления.

Языки и технологии: C/С++, С#, Java, Open GL/DirectX, игровые движки (Unity, Unreal Engine, Torque), графические библиотеки.

Программист 1C

Работает с программным продуктом 1С: создает конфигурации, дорабатывает программу, настраивает программное решение под компанию.

За что отвечает: автоматизация документооборота.

Языки и технологии: типовые и нестандартные конфигурации 1С, конфигурации программы в компании («Предприятие», «Управление торговлей», «Бухгалтерия», «Зарплаты и кадры» и другие.), SQL, язык запросов 1С.

Инженер-программист

Разрабатывает программы для разных устройств на предприятиях и заводах: станки ЧПУ, конвейеры, хлебопечки и другие. Основное отличие от остальных разработчиков — техническая экспертность с опытом более 10 лет. Инженер-программист обладает глубокими знаниями дискретной математики и физики, понимает промышленные и технологические процессы.

За что отвечает: автоматизация производства и программирование внутренних устройств.

Языки и технологии: C, C++, C#, Delphi, Assembler, технические знания.

1 1024x662, Heaad

DevOps-инженер

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

За что отвечает: кодирование, тестирование, запуск приложения, автоматизация, внедрение программных инструментов.

Языки и технологии: PHP, Perl, Ruby, Python, С++, Cloud Automation (Azure, GCP, Alibaba), Jira, системы мониторинга сетевых устройств, ОС Windows/Linux, ПО для автоматизации (Docker, Jenkins, Puppet).

Embedded-разработчик

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

За что отвечает: разработка ПО, тестирование и отладка, оптимизация оборудования, разработка решений для диагностики сбоев устройств.

Языки и технологии: C/C ++, Assembler, компьютерные алгоритмы, инженерные и математические знания.

Мы рассказали об основных видах разработчиков, которые встречаются в ИТ-вакансиях. Наши рекрутеры знают, как подбирать таких разработчиков и помогут найти классного специалиста. Оставляйте заявку на нашем сайте.

Четыре типажа программистов

Я впервые пишу в поток об управлении и найме персонала. Речь пойдет об одном из способов классифицировать ваших будущих или действующих программистов. Мой основной тезис: все разработчики, грубо говоря, делятся на 4 больших типажа и каждому из этих типажей есть своя область применения. Попытка направить неправильный типаж на решение неподходящих для него задач ведет к провалу (неэффективная работа, или сотрудник покидает команду). Хотите знать почему так — добро пожаловать под кат. Приготовьтесь, текста много.

Некогда, забавы для и пользы ради, я подрабатывал в одном неплохом кадровом агентстве — собеседовал приходящих программистов на предмет знания C#/.NET. В мои обязанности не входило полное техническое интервью — скорее, начальный скрининг кандидатов чтобы понять who is who, отфильтровать совсем уж ужас и в случае чего дать советы что почитать и как усовершенствовать навыки. И был у того кадрового агентства один интересный клиент. Он у всех на слуху, но тогда мне про него мало что сказали — я только понял, что вроде как ищет он rock stars — высококвалифицированных разработчиков, при том независимо от используемых технологий. После того, как я порекомендовал для них несколько человек — со мной связалась заместитель ген. директора и пригласила на встречу, ибо мои рекомендации не совсем устраивали заказчика. Так я познакомился с учредителем. Там мне была рассказана очень интересная история о том, зачем им нужны rock stars и как это всё вместе работает. Оказалось что вовсе не rock stars нужны. Нужны, как дал мне понять руководитель — люди с крепкими фундаментальными знаниями (алгоритмы, проектирование, операционные системы, сетевые технологии), которые будут готовы к росту и развитию. И вот они их берут и развивают, а затем отправляют реализовывать довольно сложные аутсорс-проекты. Заодно мне рассказали какие проблемы в этом плане испытывает компания. Я ушел в раздумьях и довольно долго катал в голове эту бизнес-модель, равно как и мысли о российской IT-индустрии в целом и политике работы с кадровым составом в частности.

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

Важно понимать что нет «плохих» типажей. Если какой-то из типажей вам кажется плохим, то вы просто не умеете его готовить. Помним: каждой задаче — подходящий инструмент. Я расскажу про все 4 типажа в виде карточек, давая краткую характеристику, указывая бэкграунд, цели и мотивацию, а так же рассказывая про сильные и слабые стороны. Особенно стоит уделить внимание бэкграунду, так как в конкретный типаж люди вырастают из своего бэкграунда. Начнем мы с чего по-проще.

Линейный программист

Соль индустрии IT-шной. На таких людях, говорят, мир держится. Он же «хомячок». Он же «гребец на галере», но я предпочитаю избегать таких ярлыков, поэтому просто — «линейный программист». Он не хватает звезд с неба, не пишет своих компиляторов и СУБД. Ну максимум — сделает пару инструментов, чтобы облегчить себе жизнь, в остальном — просто решает рабочие задачи. Редко меняет место работы. Усидчив. К работе относится как к работе, без особого энтузиазма. В меру ленив. Дисциплинирован (но бывают исключения), однако без надлежащего управления быстро «расхлябывается» и теряет фокус. Управлять такими людьми можно по стандартным методикам — описанным например в книге Дж. Рейнвотера — Как пасти котов. Квалификация может варьироваться и определяется исключительно опытом и количеством проектов, в которых линейный программист принял участие. Иногда квалифицированные линейные программисты попадают на минимальные управленческие должности — их нарекают team lead и тут-то вышеуказанная книга им и пригождается. Но самая главная особенность линейного программиста — весьма частое отсутствие желания развиваться и экспериментировать. Он прекрасно решит даже очень нудную задачу, которую вы ему предложите, если та не будет слишком сложной. Он выберет как можно более быстрый и прямолинейный инструмент из тех, что знает. Развитие для этих людей носит спорадический характер и в основном идет «вширь»: изучить новый фреймворк или новый инструмент, который поможет лучше решать повседневные рабочие задачи. Или «пришел заказчик, который использует вот такую штуку — ну что уж, будем разбираться». Примечательно, что знания полученные в результате спорадического развития отдельных линейных программистов как раз и составляют опыт аутсорс-компании. Однако, двигать горы и исследовать окружающий мир «вглубь» самостоятельно линейного программиста чаще всего просто не тянет. Например изучать новый, хайповый язык программирования ему просто не интересно. Только если новый язык помогает в решении повседневных задач. И уж тем более разрабатывать свой язык — увольте. И это — нормально. Хуже всего то, что линейные программисты «каменеют» когда долго сидят на одном месте. То есть если у вас есть человек, который стабильно занимается концептуально одними и теми же проектами на протяжении 3-5 лет — то очень маловероятно, что он сменит типаж и будет развиваться «вглубь». Но вот раньше этого эмпирического срока — все возможно и зависит от бэкграунда.

Бэкграунд: разный. В «линейных программистах» могут оказаться и люди, прошедшие онлайн-курсы, и выпускники ВУЗов, некоторые олимпиадники, бывшие ученые технических направлений и даже люди из концептуально другой профессии (известны случаи когда дальнобойщики становились разработчиками на PHP). Важно понимать, что линейный программист — само по себе является бэкграундом и почвой для прыжка в другой типаж. Но! Прыгнет человек или нет — зависит прежде всего от его личных желаний, а не от навыков. Наличие того или иного бэкграунда определяет лишь направление потенциального прыжка, а не его вероятность! А вот вероятность прыжка с течением времени резко падает. Однако если вам нужен верный сотрудник на долгосрочный контракт — научитесь выявлять желающих «прыгнуть» заранее. Сбежит с проекта — будет неприятно.

Ценит: стабильность, среднюю, но 2-раза-в-месяц-стабильную зарплату, покой и личные отношения в коллективе, нормированный рабочий день, офисные плюшки вроде бильярдной, фруктов по выходным, оплаты проезда или тренажерного зала, мед. страховку и (возможно нудную, но) ненапряжную работу.

Сильные стороны: усидчивость, ответственность, коммуникабельность (раз на раз), полная контролируемость, спокойное поведение в стрессовых для проекта ситуациях

Слабые стороны: сложные и/или нестандартные задачи, абстракции, поведение в стрессовых для компании ситуациях, говнокод опять же

Собеседование: стоит уделить внимание психологии: усидчивость, дисциплинированность, коммуникативные навыки, стремления, вот это всё. Так же имеет смысл поговорить о предыдущем опыте и посмотреть в резюме. Дать стандартное тестовое задание а-ля «написать чат на web sockets», смотреть на сроки выполнения, «вылизанность» задачи и адекватность подобранных инструментов. Хорошо идут технические вопросы на знание языков, протоколов, паттернов и стандартных бибилотек. Плюсом будет если соискатель уже имеет опыт конкретно с вашим набором фреймворков, но если нет — не беда. Если все остальное в порядке — разберется. Это его работа.

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

Rock star (Software Scientist)

Концентрированный исследователь. Такие больше похоже на классических ученых, но только от IT. Им интересны алгоритмы, теоретические исследования, концептуально новые направления в индустрии, но прежде всего — им интересно экспериментировать. Ради этих экспериментов их и нанимают, собственно. Они готовы часами копаться в сложных штуках и решать задачи, постановка которых другим людям даже не понятна. Они — эксперты в сложных вопросах. Они точно знают в каких случаях q-sort стоит заменить на heap sort и чем они отличаются, или может быть какие алгоритмы кластеризации подойдут для анализа потока биржевых котировок, а иные знают какие оптимизации используются внутри g++ и как они помогают жить. Костяк таких людей, например, способен разработать новый язык программирования и компилятор к нему. Или значительно улучшить какую-бы то ни было существующую систему. Еще они часто предрасположены к функциональному программированию. Ни на что не намекаю — просто статистическая закономерность. Кстати, говнокодить rock stars могут (особливо на стадии прототипирования идей), но в массе своей не допускают плохой код до финальных версий разрабатываемых ими вещей, стараются сделать все красиво, с комментариями и удобными программными интерфейсами.

Как всегда есть «но», которое все портит. Важно понимать что ни при каких условях эти люди не будут решать ваши задачи. То есть да — rock stars будут решать те задачи, которые интересны им. За ваши деньги. И при том — за большие деньги. И при том — не факт что будет какой-то результат. То, что ваши задачи совпали с задачами, которые интересны rock star — очень и очень большая удача и счастливое стечение обстоятельств, не более. Но если завтра rock star-у взбредет в голову контрибьютить в GHC вместо улучшения вашей сборки MySQL — то у вас будет ограниченное количество времени чтобы быстро и решительно его уволить. При попытке заставить оного вернуться к своим задачам — получите, в зависимости от темперамента и ваших soft skills, или конфликты или тихий провал сроков. Ну хорошо хорошо, чтобы людей так капитально разворачивало — это бывает редко и происходит постепенно, да. А вот обратная ситуация — если пересадить rock star с улучшения вашей сборки MySQL на улучшение GHC против его желания — бывает достаточно часто. И, как нетрудно заметить, приводит к аналогичным последствиям. И именно это обстоятельство делает rock star категорически неприемлемым для аутсорса.

Именно поэтому rock stars лучше всего чувствуют себя в продуктовых компаниях (например JetBrains), где им дают полную свободу в рамках одного продукта и полностью исключают внезапную смену скоупа задач (разве что только через увольнение). Люди получают возможность заниматься теми задачами, которые им интересны, самореализовываться, раскрываться и их при этом особо никто не дергает. Получается хорошая штука — окей, идет в релиз. Нет? Ну и черт с ним. В таких условиях rock stars пускают корни, живут весьма долго (до десятка лет) и им хорошо.

Со стороны менеджмента здесь требуется легкий и ненавязчивый контроль — так, чтобы rock star не разбредались и их не «заносило» в бесперспективные эксперименты. Ну и так же мягко доносить, что та или иная интересная ему разработка нерелевантна.

Есть другой замечательный пример работы с rock stars — это Google, в котором rock star-у дают возможность заниматься тем, что он хочет. Google их кормит, поит, одевает и защищает от внешних угроз. Взамен — все, что rock star наизобретает — будет принадлежать и продвигаться Google, превращаясь в его продукты. Fair enough. Эдакие посевные инвестиции в отдельно взятой компании.

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

Ценит: покой (пока решает задачу), свободный ненормированный график с возможностью удаленной работы, адекватность менеджмента, возможность поработать с другими rock stars, сложные, интересные и нестандартные задачи, стабильное финансирование. Офисные плюшки или воспринимает как должное или игнорирует напрочь, но в целом не испытывает к ним особого пиетета.

Сильные стороны: сложные задачи, исследовательская деятельность, нередко проектирование.

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

Собеседование: алгоритмы и структуры данных, оценки сложности, олимпиадные задачи — ваши надежные друзья. Можно заставить разворачивать дерево на доске (но зачем?) — но гораздо лучше дать несложную математическую задачу. Главное не спешите и не торопите: дайте человеку подумать столько, сколько ему нужно. Творческие задачи, задачи на соображалку (ну только не про люки же!) и задачи на проектирование в формате «давайте порассуждаем» и «предложите решение» так же неплохи. В резюме смотрите на образование и публикации. Поспрашивайте про участие в олимпиадах, научно-практических конференциях, поинтересуйтесь темой дипломной работы. Если рассказывает с горящими глазами — вы нашли то, что нужно. Так же стоит удостовериться, что соискатель знает в совершенстве какой-нибудь язык программирования (любой), иначе не очень понятно как он будет реализовывать свои эксперименты.

Чего спрашивать не стоит: не задавайте глупых вопросов. К глупым вопросам относится: детали реализации чего-либо а-ля «а что делает HTTP-заголовок Content-Length?», вопросы про коммуникативные навыки и прочая психология (да, rock stars могут обладать абсолютно мерзким характером — но что поделаешь, такова плата за них), и уж тем более не заикайтесь и даже не думайте проверять стрессоустойчивость. Пунктуальность проверяйте только на уровне «не пропадает на неделю и ладно».

Делец (Software Engineer)

Редкий зверь в наших краях. Его иногда называют «ориентированный на результат», «любой каприз за ваши деньги». Эдакий линейный программист, который неожиданно (а на самом деле — предсказуемо) обзавелся самостоятельностью, самомотивацией и начавший расти туда, куда считает нужным. Это не rock star, потому что его не интересуют глубокие и абстрактные задачи. Его интересуют работающие инструменты, приносящие конкретную, ощутимую пользу, которую можно потрогать руками здесь и сейчас (зачастую — в виде хрустящих купюр в кармане, но об этом позже). Если работающего инструмента нет — делец делает его для себя сам. Очень любит конкретику в постановках задач, в технологиях и — что самое важное — в общении. Про таких еще говорят «строгий, но справедливый». Коммуникативные навыки хорошие. Политкорректен, дружелюбен, не тяжел, хотя бывает грубоват и склонен к занудным формальностям. Делец таков не от хорошей жизни, потому как грубиянов и молчунов суровая реальность дельца быстро ставит на место. Будешь грубить — угрохаешь репутацию. Будешь молчать — не получишь заказы. Не будешь избегать и разрешать конфликты, лезть на рожон — останешься без денег. Материалист. Работает с теми задачами, которые ставит для него объективная реальность. Если чего-то не понимает — спрашивает и добивается конкретного ответа. Его хлеб — тщательно подобранный или разработанный собственноручно инструментарий, опыт, умение разбираться во всякой гадости в приемлемые сроки и работа на скорость и на качество. Инструментарий подбирает сам или посоветовавшись с другими дельцами — и не дай вам б-же дать ему совет в этот момент. Ответственный. Хороший делец не срывает сроки и обеспечивает рабочий и поддерживаемый продукт. К говнокоду относится как к одному из инструментов. Может занять технического долга, если это уместно и полезно в конкретной ситуации, учитывая специфику проекта. Сведущ в менеджменте. Нередко понимает в нем больше, чем непосредственный начальник. На основании этого может рекомендовать ad-hoc управленческие решения. Из профессиональных изъянов стоит отметить невнимательность к мелочам, но и это у хороших дельцов лечится.

Крутое описание — не правда ли? В чем же подвох? Подвоха тут два. Первый заключается в том, что делец не терпит над собой никакого начальства, особенно если оно менее квалифицированно чем сам делец. Во многом это обусловлено той самой осведомленностью о способах менеджмента. Ну еще и тем, что делец сам прекрасно понимает как делаются деньги в IT-индустрии. Как следствие — делец не подчиняется приказам. Делец сотрудничает в рамках контрактов. Любая попытка заставить дельца делать что-либо за пределами контракта (если не формально подписанного — то хотя бы устно оговоренного) — ведет к вежливому отказу в лучшем случае или к расторжению контракта в худшем. Если делец не подписывался отсылать вам ежедневные отчеты — он этого делать не будет. Если не подписывался тратить на вас 8 часов в день (при наличии сроков сдачи задания) — то он этого делать не будет. Если не подписывался на правки по проекту — ну вы поняли. Однако если вы выкупаете оптом какое-то кол-во рабочего времени дельца (без конкретных сроков и конкретных задач), то он с радостью будет выслушивать ваши стенания, невнятные требования, поддакивать и участвовать в любой корпоративной шизе — ну а что? Уплочено же. Любой каприз за ваши деньги.

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

Долгосрочными контрактами на маленькие ежемесячные суммы его не заманишь. Только на большие — выкупайте рабочее время оптом, да. Как следствие — делец часто меняет место работы (в той мере, в которой для него существует это понятие). Засидишься — станешь линейным программистом. Как следствие — квалифицирован решать довольно широкий спектр задач. Помните — хороший делец всегда стоит своих денег. А если вы не дадите ему достаточно денег — делец попытается реквизировать рычаги управления. Разными способами — от наглого увода заказчика и команды (если у него есть такие полномочия), до честного разговора по душам. Если это не удастся — он вас быстро и решительно покинет, потому как а зачем? Хорошие дельцы заканчивают открытием собственных компаний, но, как было сказано выше, дельцов в нашей стране в принципе мало.

Бэкграунд: часто самоучка. Занимается программированием потому что интересно. Высшее образование наличествует, но стоит смотреть на репутацию учебного заведения. Если учебное заведение серьезное — то троечник. Ибо как работает с первого курса. Да и вообще изучению всяких наук предпочитает по-скорее добраться до реальной работы. Очень часто фрилансит. У некоторых дельцов проблемы с фундаментальными знаниями. Однако если это точно делец — то эти проблемы легко решаются.

Ценит: высокую оплату своих услуг (именно в такой формулировке), соблюдение договоренностей, качественные решения проблем. График и плюшки — по договоренности, но обычно предпочитает свободный график, не привязанный к месту работы с фиксированными целями, а плюшки — да выдайте лучше деньгами.

Сильные стороны: широкая и в меру глубокая квалификация, самостоятельность, ответственность, ориентированность на результат, толерантность к нестабильности в компании (пока соблюдаются его контракты), толерантность к недолгосрочным контрактам и внезапным их расторжениям (не нарушениям, а расторжениям я сказал!), слоновья стрессоустойчивость.

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

Собеседование: хорошего дельца найти трудно. Ваш друг — репутация. Посмотрите резюме, не поленитесь связаться с человеком, который сотрудничал с соискателем ранее. Если речь идет об удаленной работе — посмотрите что у соискателя с доступностью. Как быстро он отвечает на почту и сообщения, телефонные звонки. Если лично — насколько пунктуален по назначенным встречам. Дальше расспросите о знаниях требуемой технологии. Но только так — без фанатизма. Конечно неплохо если делец точно знает какой адрес в памяти у функции закрытия подключения в проприетарной библиотеке, которую вы используете — но поверьте, это не то, что следует спрашивать. Неплохо будет попросить примеры проектов, которые делец уже реализовал на вашем стеке/с использованием вашей технологии. У хорошего дельца всегда найдется что показать и рассказать. Задачи на проектирование и «как решить вот эту проблему с заданной технологией» идут на ура, особенно если приправлять проектными деталями (например решить задачу в условиях когда заказчик требует релиза каждую неделю и т.п.).

Чего спрашивать не стоит: алгоритмические вопросы, математика, задачки на внимательность и прочая чепуха, которую спрашивают у rock stars. Разве что только на уровне концепции. Ну то есть делец может в общих чертах знать что такое, скажем, бикубическая интерполяция, но не заставляйте его реализовывать её на бумаге или на компьютере без интернета — будете справедливо (но вежливо) посланы. Отдельным пунктом следует упомянуть тестовое задание. Не давайте стандартных тестовых заданий: хороший делец таких заданий за всю жизнь переделал столько, что вам и не снилось и еще одно ему вот вообще не нужно. Далее. Смиритесь с тем фактом, что тестовое задание — это трата рабочего времени дельца. Приготовьтесь к тому, что оно будет платным. Предложите заключить NDA, временный контракт и сделать, например, коммит с фиксом бага для какого-нибудь вашего продукта или какой-либо системы с условием оплаты по выполнению и оговоренными требованиями к качеству. Это — самый эффективный метод. Не забудьте рассказать как настроить окружение. У хорошего дельца это не займет много времени, но бывают казусы.

Пассажир (business bullshitter)

У этого типажа много «ласковых» названий в народе. Наименее квалифицированные коллеги ему подчиняются, более квалифицированные его не любят. Начальники таких обожают и дальше я объясню почему. Кратко: пассажир харизматичен. Всё. Много и красиво говорит, но катастрофически мало (или некачественно) делает. Повышенная коммуникабельность — его хлеб и зачастую пассажир попадает на менеджерские должности, так как не знает как сделать самому, но обладает достаточным ораторским талантом чтобы заставить работать кого-то вместо себя, и — более того — убедить начальника что именно он и должен руководить проектом. Во всем он демонстрирует серьезность, рвение и уверенность в себе, стремится порешать любую проблему, организовать совещание и обсудить, обязательно учитывая мнение команды. Со стороны может показаться что у него шило в известном месте. Он почти всегда на связи, всем отвечает на письма, показательно вежлив ( так, что врезать порой хочется извините вырвалось) и может найти подход хоть к самому дьяволу. Один только минус — техническая квалификация. По правде говоря, ему не очень нравится программирование (вплоть до отвращения), но очень нравится покомандовать. Поэтому слабую техническую квалификацию (или её полное отсутствие) он часто «замазывает» красивыми словами, показным участием, заинтересованностью, дружелюбием и коммуникабельностью. Одна из самых страшных ошибок — ставить таких людей на средние менеджерские должности в командах. Как только вы это сделали — всё. Вы больше не получите достоверных данных о том, что происходит внутри команды с технической точки зрения. У вас будет красиво представленный бриф по происодящему, но те места, которые пассажир не понимает на техническом уровне будут из него исключены. А это в 90% случаев — скрытые проблемы и разнообразные детонаторы.

Тем не менее, грамотно подобранный пассажир может помочь команде общаться с заказчиком. Например, для пассажира ничего не стоит убедить заказчика перенести дату релиза — и при этом последний еще и будет думать что это наилучшее решение. Использовать пассажиров в роли дипломатов для заказчиков — одно удовольствие. Однако помните: харизматичные пассажиры — это как токсичный анестетик широкого спектра действия. Имеет смысл периодически опрыскивать им заказчиков, однако утечка бочки анестетика внутри команды приводит к весьма плачевным последствиям.

Бэкграунд: «лидер класса», «альфа-самец» в университете (жалко что не проверишь никак). Мистер обаяние. Образование может быть разным. Однако имейте в виду, что оценки могли получаться так же через ораторский навык. Программированием мог начать заниматься потому что интересно, но с таким обаянием у него были вещи в жизни и по-важнее. Нередко имеет свой персональный web-сайт на отдельном домене. Сделал его сам.

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

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

Слабые стороны: техническая квалификация. Многие технические вещи способен понимать лишь тезисно. Активен, но быстро теряет интерес и концентрацию на сложных и средних технических задачах. А в худшем случае — и вообще на любых задачах.

Собеседование: определитесь с тем нужен вам пассажир или нет. Если нет — при повышенной общительности и дружелюбности соискателя — держать ухо востро. Настоящие специалисты ведут себя спокойно. Старайтесь отсеивать красивые слова, общие утверждения, а выделять суть сказанного. Поинтересуйтесь достижениями в техническом плане. Попросите показать свой домашний проект, объяснить как он работает. Хорошо помогают те же вопросы что и для линейных программистов. Следите за тем, чтобы там, где соискатель не знает — честно говорил «не знаю», а не пускался в пространные рассуждения. Ну и тестовое задание как всегда. Если к тестовому заданию будет объемное пояснение, в коде — не продраться от комментариев и соискатель рвется объяснить как он это сделал — перед вами пассажир. Ежели пассажир вам все-таки нужен, то поинтересуйтесь как бы он объяснил заказчику срыв сроков релиза. Так же душевный разговор на предмет знания методик управления — SCRUM, PMBOK и разбор управленческих кейсов — могут возыметь положительный эффект. Но это уже история не про программирование.

Чего спрашивать не стоит: в случае с пассажиром — запретных тем нет (в рамках приличия). Если возникли подозрения на то, что перед вами пассажир — попробуйте вот что: задайте какой-нибудь вопрос, на который технический соискатель бы отказался отвечать по причине нерелевантности. Поговорите… Ну я даже не знаю. Про то, какую музыку любит соискатель, или фильмы, или игры. Или куда он ездил путешествовать. Если перед вами пассажир — то будет длинный рассказ. Если вы ошибаетесь — то вам ответят кратко и тезисно.

Выводы

Отдельной строкой стоит заметить, что четкой границы между этими типажами нет. Человек вполне может находиться где-то между дельцом и rock star, или rock star может дрейфовать в сторону пассажира. А прямо сейчас какой-нибудь линейный программист может перепрыгивать в дельца, увольняясь с уютной галеры и заводя аккаунт на UpWork. Поздравим же его с этим! Однако концептуально я склонен считать, что стабильно и в долгосрочной перспективе любой программист плотно обосновывается в одном из этих четырех типажей.

Возвращаясь к описанной первоначально ситуации. Если вы набираете и растите потенциальных rock stars, то использовать их на аутсорсных проектах — это как забивать микроскопом гвозди. Если же вы выращиваете дельцов — будьте готовы делиться деньгами и полномочиями. А для решения задач аутсорса вполне подходят крепкие линейные программисты. Если это сложный аутсорс — то с добавлением одного rock star или дельца в команду на «птичьих правах». В противном случае, если вы культивируете rock stars в своей компании, но у вас аутсорс — то смиритесь с тем, что единственный возможный способ на этом заработать — забирать себе промежуточные артефакты их работы. После того, как они вырастают — их надо отпускать. При том отпускание должно быть встроенно в саму бизнес-модель и кадровый пайплайн компании. Так вижу.

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

Спасибо за внимание! Хороших вам кадров!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *