C++ разработчик: должностная инструкция, обязанности и вопросы для собеседования
Набор для найма C++ разработчика: должностные обязанности с долями времени, компетенции, вопросы для собеседования с картой оценки, текст вакансии, должностная инструкция в Word и план испытательного срока.
Раздел 1 из 11
Зачем нужна эта должность
C++ разработчик создаёт и развивает программные компоненты, которые решают задачи компании и надёжно работают в составе продукта или внутренних систем. Он отвечает за качество кода, исправление ошибок и техническую документацию по своей части решения.
Когда пора нанимать
Нанимайте разработчика, когда компании нужно создавать или развивать программное обеспечение на C++, а текущей команде не хватает ресурсов или нужной экспертизы. Роль также нужна, если ошибки и задержки в разработке регулярно мешают выпускать изменения.
Раздел 2 из 11
Должностные обязанности C++ разработчика
Из чего состоит рабочая неделя. Доли времени показывают, на что человек будет тратить больше всего сил, а что останется фоном.
Разработка компонентов
35 %Реализует функции и программные модули по согласованным требованиям. Передаёт код, готовый к проверке и интеграции.
Проектирование решений
15 %Уточняет требования, оценивает технические варианты и предлагает структуру компонентов. Согласует решения, влияющие на архитектуру и совместимость.
Тестирование и отладка
20 %Пишет и запускает тесты, воспроизводит ошибки и устраняет их причины. Проверяет, что изменения не нарушают существующую функциональность.
Ревью кода
10 %Проверяет изменения коллег и учитывает замечания к собственному коду. Помогает поддерживать единые требования к качеству и стилю разработки.
Поддержка программ
15 %Разбирает технические проблемы в своей зоне ответственности и вносит исправления. Анализирует причины повторяющихся сбоев и предлагает меры профилактики.
Техническая документация
5 %Фиксирует назначение компонентов, важные решения и инструкции по использованию. Обновляет документацию при изменении программного поведения.
Раздел 3 из 11
Компетенции C++ разработчика и как их проверить
Всего 8, обязательных 4. Уровень: 1 базовый, 2 уверенный, 3 опытный, 4 эксперт.
Язык C++
НавыкОбязательноКак проверить: Попросите разобрать небольшой фрагмент кода и объяснить выбор конструкций и управление ресурсами.
3 из 4 · опытныйСтандартная библиотека
НавыкОбязательноКак проверить: Дайте практическую задачу на контейнеры, алгоритмы и обработку данных стандартными средствами.
2 из 4 · уверенныйОтладка и тестирование
НавыкОбязательноКак проверить: Предложите найти причину ошибки в примере и описать тесты для проверки исправления.
2 из 4 · уверенныйСтруктуры данных
НавыкОбязательноКак проверить: Попросите выбрать структуру данных для заданной задачи и объяснить компромиссы решения.
2 из 4 · уверенныйСистемы контроля версий
НавыкКак проверить: Попросите описать рабочий процесс с ветками, изменениями и разрешением конфликта.
2 из 4 · уверенныйЧтение технической документации
НавыкКак проверить: Дайте описание незнакомого интерфейса и попросите объяснить, как применить его в задаче.
2 из 4 · уверенныйКомандное взаимодействие
КачествоКак проверить: Попросите разобрать пример разногласия при ревью и объяснить, как кандидат будет действовать.
2 из 4 · уверенныйСамостоятельность
КачествоКак проверить: Обсудите пример задачи с неполными требованиями и попросите описать шаги до результата.
2 из 4 · уверенный
Раздел 4 из 11
KPI C++ разработчика: показатели работы
По ним вы поймёте, что человек справляется. Цели подставьте свои: модель предлагает рамку, а не цифры.
Выполнение задач
Выполняет согласованный объём задач в срок, заранее сообщает о рисках
- Период
- Каждый месяц
- Откуда
- План работ и история задач
Дефекты в изменениях
Снижает число подтверждённых дефектов, связанных с его изменениями
- Период
- Каждый квартал
- Откуда
- Отчёты о дефектах и история изменений кода
Срок исправления ошибок
Укладывается в согласованные сроки устранения ошибок своей зоны
- Период
- Каждый месяц
- Откуда
- Система учёта задач и отчёты о дефектах
Покрытие тестами
Добавляет тесты для новой логики и критичных исправлений по правилам команды
- Период
- Каждый квартал
- Откуда
- Результаты тестирования и история изменений кода
Качество ревью
Своевременно проводит назначенные проверки и оставляет конкретные замечания
- Период
- Каждый месяц
- Откуда
- История проверок изменений кода
Раздел 5 из 11
Этапы отбора
Этап 1: Первичный разговор
Уточнить опыт разработки на C++, интерес к задачам и ожидания по роли.
- Кто проводит
- Рекрутер
- Длительность
- 20 мин
Этап 2: Техническое интервью
Проверить знание C++, стандартной библиотеки, структур данных, отладки и тестирования на примерах из опыта и рабочих ситуациях.
- Кто проводит
- Ведущий разработчик
- Длительность
- 1 ч
Этап 3: Практическое задание
Оценить, как кандидат пишет, проверяет и объясняет код на C++ в задаче, близкой к рабочей.
- Кто проводит
- Ведущий разработчик
- Длительность
- 1 ч 30 мин
Этап 4: Встреча с руководителем команды
Обсудить командное взаимодействие, самостоятельность и подход к работе с технической документацией.
- Кто проводит
- Руководитель команды разработки
- Длительность
- 30 мин
4 этапа, около 3 ч 20 мин живого общения с кандидатом.
Раздел 6 из 11
Вопросы для собеседования с C++ разработчиком
Задавайте вопросы по порядку и ставьте оценку сразу. Вес показывает, какие ответы важнее для решения.
- Язык C++вес 5
Вопрос 1: Расскажите о задаче, где вы использовали возможности C++ для решения нетривиальной проблемы. Как выбрали подход и какие компромиссы учли?
Хороший ответ
Кандидат конкретно описывает свою задачу, выбранные возможности языка и причины выбора; объясняет управление ресурсами, время жизни объектов и последствия решений для читаемости и надёжности кода.
Тревожный ответ
Не может отделить свой вклад от работы команды, говорит только общими словами или предлагает решения, не учитывая время жизни объектов и управление ресурсами.
- Стандартная библиотекавес 4
Вопрос 2: Вспомните задачу, в которой вы выбирали контейнеры или алгоритмы стандартной библиотеки. Как принимали решение?
Хороший ответ
Объясняет, какие данные обрабатывал, почему выбрал конкретный контейнер или алгоритм, и учитывает сложность операций, корректность и читаемость кода.
Тревожный ответ
Выбирает контейнеры и алгоритмы наугад, не может объяснить их свойства или без необходимости заменяет готовые средства собственной реализацией.
- Отладка и тестированиевес 5
Вопрос 3: Расскажите о сложном дефекте, который вы нашли и исправили. Как воспроизвели проблему и проверили исправление?
Хороший ответ
Последовательно описывает воспроизведение, сбор диагностических данных, поиск причины и проверку исправления; добавил тест или иной способ предотвратить повторение дефекта.
Тревожный ответ
Описывает исправление методом проб и ошибок, не показывает, как установил причину, или не проверял, что дефект не повторяется.
- Структуры данныхвес 4
Вопрос 4: Опишите задачу, где выбор структуры данных заметно влиял на решение. Какие варианты вы сравнивали и почему остановились на выбранном?
Хороший ответ
Связывает структуру данных с характером операций и объёмом данных, сравнивает подходящие варианты и объясняет влияние на сложность и использование ресурсов.
Тревожный ответ
Не может назвать альтернативы или обосновывает выбор только привычкой, не учитывая требуемые операции и их стоимость.
- Системы контроля версийвес 3
Вопрос 5: Расскажите о случае, когда изменения в общей кодовой базе конфликтовали или затрагивали работу коллег. Как вы действовали?
Хороший ответ
Показывает аккуратную работу с ветками и историей изменений, согласование конфликтующих правок и проверку результата перед включением в общую кодовую базу.
Тревожный ответ
Перезаписывал чужие изменения, не проверял объединённый код или не может объяснить, как разрешал конфликты.
- Чтение технической документациивес 2
Вопрос 6: Вспомните задачу, где для решения пришлось разбираться в незнакомом техническом интерфейсе или документации. Как вы нашли нужную информацию и проверили понимание?
Хороший ответ
Описывает поиск по официальной документации, проверку ограничений и примеров, затем подтверждает понимание небольшим экспериментом или тестом.
Тревожный ответ
Опирался только на случайные примеры или предположения, не сверял поведение с документацией и не проверял результат.
- Командное взаимодействиевес 2
Вопрос 7: Расскажите о разногласии с коллегой по техническому решению. Как вы пришли к рабочему варианту?
Хороший ответ
Излагает позиции сторон без обвинений, обсуждает требования и последствия вариантов, использует аргументы или проверку и фиксирует принятое решение.
Тревожный ответ
Сводит ситуацию к личному конфликту, настаивает на своём без аргументов или избегает обсуждения, оставляя проблему нерешённой.
- Самостоятельностьвес 2
Вопрос 8: Опишите задачу, в которой требования были неполными. Как вы продвинули работу и когда обращались за уточнениями?
Хороший ответ
Выделил неизвестные и риски, проверил доступную информацию, предложил рабочие допущения и своевременно запросил решения по вопросам, влияющим на результат.
Тревожный ответ
Ждал подробных инструкций по каждому шагу либо делал критичные допущения, не согласовав их и не сообщив о рисках.
Поставьте оценки по ходу собеседования, итог посчитаем с учётом веса вопросов.
Раздел 7 из 11
Риски найма
Риск
Кандидат уверенно говорит о C++, но слабо понимает время жизни объектов и управление ресурсами.
Как снизить
Попросить разобрать небольшой фрагмент кода и объяснить, что происходит с объектами и ресурсами на каждом шаге.
Риск
Знание контейнеров и алгоритмов ограничено заученными названиями.
Как снизить
Дать практический сценарий с несколькими вариантами структур данных и попросить обосновать выбор.
Риск
Кандидат устраняет симптомы дефектов без выявления первопричины и проверки исправления.
Как снизить
Подробно разобрать один реальный случай от воспроизведения до теста, предотвращающего повторение.
Риск
Практическое задание не отражает реальную работу и оценивает скорость вместо качества решений.
Как снизить
Использовать короткую типовую задачу и оценивать корректность, объяснение выбора, тестирование и работу с обратной связью.
Раздел 8 из 11
Готовый текст вакансии
C++ разработчик
В [название компании] вы будете разрабатывать и поддерживать программные компоненты, проектировать технические решения и помогать команде выпускать надёжные изменения.
Обязанности
- Разрабатывать и дорабатывать программные компоненты на C++ по согласованным требованиям.
- Проектировать решения с учётом архитектуры продукта, производительности и сопровождаемости кода.
- Писать и запускать тесты, отлаживать код и устранять дефекты.
- Проводить ревью кода и учитывать замечания коллег.
- Поддерживать существующие программы и разбирать причины ошибок.
- Вести техническую документацию и обновлять её при изменениях.
Требования
- Умение разрабатывать на C++ и читать чужой код.
- Понимание принципов проектирования программных компонентов.
- Навык отладки и поиска причин дефектов.
- Опыт написания или сопровождения автоматизированных тестов.
- Умение давать и принимать предметную обратную связь при ревью кода.
- Навык описывать технические решения и изменения в документации.
Условия
- Заработная плата: [вилка зарплаты].
- График работы: [график].
- Задачи и критерии результата согласуются с руководителем разработки.
- Предусмотрено рабочее время для тестирования, ревью и технической документации.
Раздел 9 из 11
Должностная инструкция C++ разработчика
Проект документа. Перед утверждением сверьте с вашими внутренними правилами.
Должностная инструкция
C++ разработчик
1. Общие положения
- 1.1.C++ разработчик относится к категории специалистов.
- 1.2.Назначается на должность и освобождается от неё распорядительным документом работодателя.
- 1.3.Подчиняется руководителю разработки или иному назначенному работодателем руководителю.
- 1.4.Квалификационные требования и необходимый опыт определяются работодателем с учётом сложности продукта и поручаемых задач.
- 1.5.В работе руководствуется настоящей инструкцией, согласованными требованиями к продукту и внутренними правилами разработки.
2. Работник должен знать
- 2.1.Синтаксис и основные возможности используемой в проекте версии C++.
- 2.2.Принципы проектирования, модульности и сопровождения программных компонентов.
- 2.3.Подходы к тестированию, отладке и поиску причин дефектов.
- 2.4.Правила работы с системой контроля версий и процессом ревью, принятыми в компании.
- 2.5.Требования проекта к производительности, надёжности и качеству кода.
- 2.6.Порядок ведения технической документации и фиксации изменений.
3. Должностные обязанности
- 3.1.Осуществляет разработку и изменение программных компонентов на C++ в соответствии с требованиями и согласованными техническими решениями.
- 3.2.Проектирует решения, оценивает их влияние на архитектуру, производительность и сопровождаемость продукта, согласует существенные изменения с руководителем.
- 3.3.Обеспечивает проверку своих изменений, пишет и запускает тесты, анализирует результаты и устраняет выявленные дефекты.
- 3.4.Осуществляет отладку программ и устанавливает причины ошибок, включая ошибки, выявленные после выпуска изменений.
- 3.5.Проводит ревью кода коллег в пределах своей компетенции и учитывает обоснованные замечания к собственным изменениям.
- 3.6.Поддерживает программные компоненты, анализирует поступившие сообщения об ошибках и исправляет дефекты в согласованные сроки.
- 3.7.Ведёт и актуализирует техническую документацию, необходимую для разработки и сопровождения компонентов.
- 3.8.Информирует руководителя о ходе задач, рисках, блокирующих обстоятельствах и ожидаемом влиянии изменений на качество продукта.
4. Права
Работник имеет право:
- 4.1.Запрашивать у руководителя и коллег требования, технические сведения и доступы, необходимые для выполнения задач.
- 4.2.Предлагать изменения архитектуры, процесса разработки и тестирования с обоснованием ожидаемого результата и рисков.
- 4.3.Получать обратную связь по качеству и приоритетам своей работы.
- 4.4.Сообщать о дефектах, технических рисках и нереалистичных сроках до принятия решения о выпуске изменений.
- 4.5.Вправе приостанавливать передачу своего изменения в выпуск, если обнаружены критичные дефекты или проверки не пройдены, и незамедлительно уведомить руководителя.
5. Ответственность
Работник несёт ответственность в пределах, установленных трудовым, гражданским и административным законодательством Российской Федерации:
- 5.1.За качество и проверку выполненных им изменений в пределах порученных задач.
- 5.2.Отвечает за своевременное информирование о препятствиях, рисках и выявленных дефектах.
- 5.3.За точность и актуальность подготовленной им технической документации.
- 5.4.Отвечает за соблюдение согласованных правил работы с кодом и предоставленными рабочими данными.
6. Взаимодействие
- 6.1.С руководителем разработки согласует требования, приоритеты, технические решения, сроки и риски задач.
- 6.2.С другими разработчиками взаимодействует при проектировании компонентов, ревью кода и устранении дефектов.
- 6.3.С тестировщиками уточняет сценарии проверок, анализирует результаты тестирования и передаёт исправления на повторную проверку.
- 6.4.С аналитиками и специалистами, формирующими требования, уточняет ожидаемое поведение программы и критерии готовности изменений.
7. Заключительные положения
- 7.1.Настоящая инструкция вступает в силу со дня её утверждения руководителем организации.
- 7.2.Работник знакомится с инструкцией под подпись при приёме на работу, до начала работы.
- 7.3.Инструкция пересматривается при изменении обязанностей, структуры или условий работы организации.
- 7.4.Инструкция составлена в двух экземплярах: один хранится у работодателя, второй передаётся работнику.
Раздел 10 из 11
План испытательного срока: 30, 60 и 90 дней
Что человек должен уметь к концу каждого месяца и по каким признакам считать срок пройденным.
День 30: Первый месяц
Осваивается
- Изучил структуру проекта, правила разработки, сборки, тестирования и ревью кода.
- Самостоятельно выполняет небольшие изменения и проверяет их принятыми в проекте способами.
- Фиксирует ход работы и своевременно сообщает о блокерах.
День 60: Второй месяц
Работает сам
- Выполняет типовые задачи по разработке и исправлению дефектов с ограниченной поддержкой коллег.
- Добавляет или обновляет тесты для своих изменений и устраняет замечания ревью.
- Оценивает риски задачи и согласует техническое решение до реализации, если затрагивается несколько компонентов.
День 90: Третий месяц
Даёт результат
- Самостоятельно ведёт задачи от уточнения требований до проверки и документирования результата.
- Поддерживает качество изменений: тесты проходят, дефекты выявляются и исправляются без повторяющихся проблем одного типа.
- Проводит содержательное ревью кода и предлагает обоснованные улучшения компонентов.
Испытательный срок пройден, если
- Согласованные задачи выполняются в ожидаемые сроки либо отклонения и причины заранее сообщаются руководителю.
- Изменения проходят предусмотренные проверки, а дефекты в них не повторяются из-за игнорирования известных причин.
- Работник добавляет уместные тесты и поддерживает актуальность документации по своим изменениям.
- Ревью и рабочее взаимодействие помогают устранять проблемы, а не создают повторные блокировки.
Раздел 11 из 11
Частые вопросы о найме
Стоит ли брать C++ разработчика без коммерческого опыта?
Можно, если задачи подходят для начального уровня и в команде есть ресурс на адаптацию и ревью. Оценивайте понимание C++, умение разбирать код, отлаживать простые ошибки и объяснять принятые решения на практическом задании.
Сколько обычно занимает поиск такого специалиста?
Срок зависит от сложности продукта, требуемой глубины знаний C++ и условий работы. Ускорить поиск помогают чёткий профиль задач, короткий отборочный этап и заранее согласованные критерии оценки.
Как оформить работу C++ разработчика?
Оформляйте трудовые отношения с должностью, функциями и условиями работы, соответствующими фактическим обязанностям. В должностной инструкции и плане испытания зафиксируйте зоны ответственности, критерии качества и порядок взаимодействия.
Как построить оплату труда без привязки только к числу задач?
За основу можно взять фиксированную часть и переменную часть по заранее определённым показателям. Учитывайте не только выполнение задач, но и качество изменений, сроки исправления ошибок, тестовое покрытие и полезность ревью. Показатели должны зависеть от работы специалиста и быть ему понятны.
Когда пора нанимать второго C++ разработчика?
Когда очередь задач регулярно превышает возможности одного специалиста, поддержка продукта вытесняет разработку или работа зависит от знаний одного человека. Перед наймом проверьте приоритеты задач и распределение времени, затем определите, нужна ли та же компетенция или дополнение к текущей.
Чем C++ разработчик отличается от тестировщика и системного администратора?
C++ разработчик создаёт и изменяет программный код и отвечает за его проверку в рамках своих задач. Тестировщик в первую очередь планирует и проводит проверки продукта, а системный администратор поддерживает рабочую инфраструктуру и доступность систем.
Документы
Заберите документы
Три файла из этого набора, в один клик. Бесплатно, без регистрации и водяных знаков.
Следующий шаг
Заберите профиль «C++ разработчик» в Altair HR
После регистрации профиль появится в кабинете сам: обязанности, компетенции, этапы отбора и карта оценки уже заполнены. Останется добавить вилку оклада и собрать из профиля вакансию. 14 дней бесплатно, карта не нужна.
- Профиль роли в кабинете уже заполнен
- Вакансия собирается из профиля
- ИИ разбирает отклики по вашим критериям
Отправьте коллегам
Руководителю, который будет собеседовать, или коллеге, который пишет вакансию.
Полезное для кадровика на почту
Новые статьи и инструменты: кадровые сроки, изменения в Трудовом кодексе, готовые шаблоны. Без спама, отписаться можно в один клик.
Нажимая «Подписаться», вы соглашаетесь на обработку персональных данных. Подписка включится после подтверждения в письме.