«Прозрачный промоушн выгоден и разработчику, и его тимлиду». Нюансы карьеры разработчика на С++

На прошлой неделе мы в «Лаборатории Касперского» провели онлайновый митап «Нюансы карьеры разработчика на С++». Представители разных команд С++ посмотрели на карьерный трек «плюсера» как со стороны менеджеров, так со стороны самих разработчиков.

q_k_5azmy6fkzdnbsb19xqmnqbc.png

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

1. Вопреки всем многочисленным шуткам, С/C++ еще долго будут оставаться актуальными. Они производительные и компилируемые, а также имеют ручное управление ресурсами, то есть в них нет никаких Garbage Collector. И, в частности, именно поэтому целый ряд высокопроизводительных решений и в Kaspersky, и в других компаниях построен именно на «плюсах».

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

3. Ключевые навыки С++ разработчика — работа с кодом (умение писать простой код и упрощать чужой), работа с «многопоточкой» (умение смотреть на задачу в целом, знание сложных примитивов синхронизации и др.), а также знание структур данных, стандартных контейнеров и исключений.

4. Часто разработчики указывают в своих резюме знание линуксового инструментария, но по факту под этим обычно подразумевается минимальный набор уровня «взять дистрибутив, развернуть Ubuntu и погонять пакеты с помощью APT». На самом деле разработчик должен как минимум знать компилятор (например, чтобы включить обработку warning-ов и таким образом уже не допускать ошибки, которые видит компилятор) и отладчик (чтобы посмотреть дампы процессов и «подебажить» процесс в Runtime). Кроме того, часто в индустрии используются статические и динамические анализаторы, а также утилиты поиска проблем производительности.

5. Если процесс промоушна в компании прозрачен, это выгодно всем — и разработчику, и руководителю. Первый четко понимает, какие артефакты он должен подготовить, чтобы претендовать на повышение (например, в «Лаборатории Касперского» их пять: примеры решенных задач, примеры разработанной документации, лучшие исправленные ошибки, лучшие коммиты и проведенные ревью). А тимлид получает для своего сотрудника готовый объективный маршрут роста.

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

7. Строить свою карьеру лучше в крупной компании: здесь у вас априори шире возможности для роста. Также большой масштаб будет выгоден и в том случае, если вы вдруг почувствовали, что выхолостились на текущей позиции и пора что-то менять. Ведь чем крупнее R&D-департамент, тем проще вам будет найти другой проект или другую команду, где требуется именно ваш набор навыков.

Если вам было интересно, то приходите на Kaspersky C++ easy offer, где за один день можно пройти все собеседования с командами и получить оффер. А затем буквально сразу увидеть, как все то, о чем говорили спикеры, реализовано изнутри.

© Habrahabr.ru