05.07.2023

Эволюция требований к новым специалистам

Моя работа на протяжении долгого времени связана с людьми, точнее сказать с их развитием, как личным, так и карьерным. Сегодня я работаю в компании C3D Labs — разработчик геометрического ядра, на позиции People Partner. В статье мы поговорим о рынке труда математиков-разработчиков в России именно в САПР-индустрии, какие темы интересуют действующих сотрудников и какие требования существуют к потенциальным кандидатам.

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

  • как стать сеньором (англ. senior), тимлидом (англ. teamlead) и экспертом;
  • как вырасти и перейти на новый профессиональный уровень — что для этого нужно;
  • мягкие навыки, или софт скилс (анл. soft skills), как ключевой фактор в достижении новой роли.

Я хочу поделиться своими мыслями и опытом по поводу роли HR в этих процессах, может ли специалист по персоналу быть реальным помощником в развитии карьеры?

Начнем с обсуждения трендов в ИТ-индустрии: что сегодня происходит на рынке разработки?

Немного статистики из открытых источников — в мире насчитывается около 30-ти миллионов человек, которые занимаются разработкой, т.е. каждый 260-ый человек в мире. Российские эксперты считают, что в нашей стране разработкой занимается около 1,5 млн. человек, т.е. каждый 100-ый.

Эволюция требований к новым специалистам, фото 1

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

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

ВЫВОДЫ:

  • количество разработчиков будет только расти и к ним будут предъявляться еще большие требований;
  • сами продукты будут усложняться, в том числе за счет применения новых технологий и в соответствии с требованиями конечного потребителя;
  • сложные процессы гораздо эффективнее строить за счет командной работы, поэтому тренд на развитие soft skills сохраняется и усиливается.

WOW- тренд на рынке

Количество разработчиков растет во всех сферах, и одним из лидирующих направлений является рынок САПР. Российский тренд на импортозамещение диктует требования по реализации сложных инженерных решений на высоком уровне и в кратчайшие сроки, что влияет на развитие САПР-индустрии на локальном уровне. Все больше промышленных и ИТ-компаний стремятся нанимать в штат разработчиков, которые умеют создавать геометрические модели и/или использовать геометрическое ядро внутри своей компании для создания собственных САПР-систем.

Сфера САПР выходит на первый план, т.к. позволяет существенно влиять на бизнес и его конкурентоспособность за счет:

  • широкого спектра применения в различных отраслях (авиастроение, ОПК, автомобилестроение, машиностроение, строительство и т.д.);
  • увеличения производительности и точности проектирования;
  • увеличения эффективности — позволяет работать одновременно над одним проектом нескольким специалистам.

Требования к разработчикам

Разработчиков, которые проходят собеседования в компанию C3D Labs, можно разделить по уровню компетенций на следующие категории:

  • Middle/Middle+ специалисты — те, кто уже имеет опыт работы в разработке (в среднем от 3 до 6 лет), уже имеют опыт работы с CAD системами или пришли его получить;
  • Junior специалисты — те, кто только начинает карьеру после учебы в университете или джоб-свитчер (тренд современного рынка труда — смена профессии в зрелом возрасте);
  • специалисты уровня Senior/Expert/Team lead — те, кто уже имеет опыт разработки CAD системам (более 6 лет).
Эволюция требований к новым специалистам, фото 2

Каждая категория специалистов имеет свою специфику (поговорим об этом отдельно). Есть то, что объединяет эти типы — фундаментальные требования к кандидатам в разработку геометрического ядра любого уровня, например: крепкая математическая база, наличие алгоритмической подготовки, знания языка C++.

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

Middle/Middle+

Если говорить о программировании, то требования к уровню Middle/Middle+ следующие:

  • доскональное знание основ C++ (для большинства позиций это C++ от 14-го стандарта и новее). Изучение языков непрерывный процесс и знать буквально все скорее невозможно, поэтому в первую очередь мы обращаем внимание на доскональное знание основ (термины, понятия, инструменты). Для проверки этого навыка на собеседовании мы практикуем чтение кода кандидатом и умение понять и объяснить, что описывает код, почему код написан именно так;
  • уверенное знание библиотеки STL;
  • уверенное владение инструментами — Visual Studio, Visual Studio Code, CMake;
  • интерес и практика изучения других языков, например мы также используем — Python, C#, Go, JavaScript (или его диалекты типа typescript);
  • для веб-разработки ключевыми является знания в области typescript, опыт работы с npm, webpack, опыт разработки многопоточных приложений;
  • опыт CodeReview.

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

Умение отличать хороший код от плохого, иметь навык писать качественный и поддерживаемый код, понимать процессы тестирования (его основные функции и ценности) и восприятие написания тестов как неотъемлемой части работы программиста — это то, что усиливает позиции кандидатов уровня Middle и приближает их дальнейшему профессиональному росту.

Эволюция требований к новым специалистам, фото 3

Junior

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

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

Существует огромное количество хакатонов и стажировок, которые в том числе проводит и наша компания. В таких мероприятиях нужно участвовать даже не с целью выиграть (хотя такая цель всегда должна быть), а с целью получения опыта. В любой стажировке участвует Senior или уверенный Middle, который курирует мероприятие, и он может дать реальную обратную связь. Нужно принимать участие в студенческих активностях, чтобы видеть реальные проекты, которые созданы для реальных целей развития САПР продуктов. Для нашей деятельности знать теоретическую часть мало, очень важно иметь практический опыт работы с кодом и ядром.

Эволюция требований к новым специалистам, фото 4

Посмотрим на обратную сторону этой начинающей позиции программиста. Цель работы с джунами — обеспечить быстрый и качественный профессиональный рост специалиста. В компании C3D Labs мы наращиваем опыт в этой сфере путем составления программ адаптации и развития навыков молодых специалистов, внедрили систему наставничества и пересмотра (декомпозиции) первичных задач.

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

Благодаря нашему опыту с молодыми специалистами, мы поняли, что джуны очень помогают компании, когда

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

Senior

Со временем, каждый Middle специалист задается вопросом — какие навыки и знания необходимо наработать для уровня Senior? По опыту работы в нашей компании, чтобы претендовать на эту роль необходимо отвечать требованиям:

  • обладать навыками Middle/Middle+ — быть трендмейкером;
  • знать язык C++ 20 и выше, шаблоны, многопоточность — изучать новые версии языка;
  • иметь навык развития проектов, внедрения новых технологий и архитектур систем.

Как распознать и проверить у себя наличие навыков Senior специалиста? У специалиста этого уровня, есть отличительные качества в поведении внутри команды. Что делает Senior:

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

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

Эволюция требований к новым специалистам, фото 5

Я хочу дать несколько «вредных» советов будущим Senior специалистам и экспертам в области программирования CAD-систем:

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

Очень многие коллеги приходят ко мне с запросом роста через 5-7 лет работы в компании. Если вы хотите развивать карьеру в сфере программирования, я советую:

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

Soft skills

Тема расширения и прокачки навыков является ключевой в профессиональном росте. Мы часто слышим такие понятия как hard skills и soft skills давайте разберемся детальнее.

Hard skills — это четкие и конкретные знания, которые мы приобретаем в учебных заведениях по определенной специальности (в разделе Middle приведены подробное примеры).

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

  • коммуникация — как легко вы общаетесь с другими людьми, насколько вам легко продвигать свои идеи;
  • сотрудничество — насколько вам комфортно работать в команде и насколько удобно работать с вами;
  • лидерство — умение самостоятельно принимать решения, возглавлять команду и взять лидерство в отдельном проекте.

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

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

Роль HR в развитии карьеры

Помочь составить план по развитию навыков и карьерного роста в компании может ваш тимлид или HR (англ. human resources). Совместно с сотрудником мы составляем план наращивания навыков, участие в проектах и как результат карьерного роста.

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

Ксения Константинова, People Partner C3D Labs
Автор:
Ксения Константинова
People Partner C3D Labs
Поделиться материалом
Вверх