Рекламодатель: АО «Топ Системы»

ИНН 7726601967 ОГРН 1087746953557

Рекламодатель:
ООО «С3Д Лабс»

ИНН 7715938849 ОГРН 1127747049209

9 - 2023

Эволюция требований к разработчикам САПР

Ксения Константинова, 
HR People Partner, компания C3D Labs
Ксения Константинова,
HR People Partner, компания C3D Labs

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

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

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

C3D Labs

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

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

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

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

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

Выводы:

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

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

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

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

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

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

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

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

C3D Labs

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

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

Middle/Middle+

C3D Labs

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

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

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

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

Junior

C3D Labs

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

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

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

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

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

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

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

Senior

C3D Labs

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

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

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

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

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

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

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

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

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

Soft skills

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

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

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

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

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

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

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

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

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

Регистрация | Войти

Мы в телеграм:

Рекламодатель:
ООО «Нанософт разработка»

ИНН 7751031421 ОГРН 5167746333838

Рекламодатель: АО «Топ Системы»

ИНН 7726601967 ОГРН 1087746953557