Рубрика «Кем работать в IT» — интервью с представителями IT-профессий, в которых специалисты рассказывают о тонкостях своей работы: плюсах, минусах, подводных камнях и заработной плате. Мы надеемся, что джунам и стажерам она поможет больше узнать о том, что их ожидает на карьерном пути, а профессионалам — посмотреть на свою специальность через чужой опыт и, может быть, открыть для себя что-то новое.
Для этой статьи о своем опыте работы нам рассказал Алексей Хиндикайнен, руководитель отдела разработки систем управления инженерными данными (Pilot-ICE, Pilot-BIM) в компании АСКОН.
По данным зарплатного калькулятора Хабр Карьеры, средний размер заработной платы ведущего разработчика в первом полугодии 2023 года составлял 361 тыс. руб.. Конечно, это среднее значение. Есть те, кто зарабатывает меньше: 211 тыс. руб., а есть и те, кто получает 500 тысяч.
О специальности
Расскажите простыми словами, чем вы сейчас занимаетесь?
Руковожу отделом разработки: занимаюсь проработкой требований заказчиков, планированием сроков и приоритетов по функциональности, синхронизацией команд разработки, участвую в выборе архитектурных и технических решений, а также помогаю в решении сложных вопросов технической поддержки. В последнее время все меньше, но еще стараюсь писать код для продукта.
Какое у вас образование?
Высшее, окончил Тульский государственный университет по специальности «Программное обеспечение вычислительной техники и автоматизированных систем».
Кстати об обучении: в этом году мы на Хабр Карьере запустили сервис для менти и менторов в IT — Хабр Эксперты, в котором вы можете бесплатно зарегистрироваться, как эксперт или найти своего наставника и учиться с ним.
Начало карьеры
Как вы узнали о своей специальности? С чего все начиналось?
Я довольно рано познакомился с радиоэлектроникой (спасибо клубу «Электрон» и его руководителю Пономареву Льву Дмитриевичу). С удовольствием проектировал и паял разные схемы. Мне всегда нравился процесс «рождения» чего-то нового: вот были разные детальки, а вот из них уже получилось что-то готовое для использования: радио, сигнализация, машина и т.д.
Потом был кружок программирования на QBASIC — магический синий экран с операторами капслоком. Компьютер дома у меня появился довольно поздно, ближе к выпускному классу, но сразу захватил практически все мое внимание. Поэтому с выбором специальности в университете сложности уже не было.
Как вы искали свою первую работу в IT? Как долго?
После третьего курса университета (в 2009 году) у нас была летняя практика. В то время в Туле располагался главный офис разработки DevExpress, крупной западной компании, занимающейся разработкой компонентов для .NET. Практику проводил основатель и директор компании Андрей Тельнов — это был потрясающий опыт! Довольно большой группой студентов (около 20 человек) вместе с ним мы писали компонент-редактор типа Word для WPF, обсуждали технические и архитектурные решения, писали unit-тесты (по TDD), брали на дом небольшие доработки и исправления багов.
Все это проходило в офисе DevExpress, который был спроектирован в лучших традициях крупных западных IT-компаний: дизайнерский ремонт, игровые и релакс-зоны, холодильники с безлимитной колой и мороженым. Естественно, каждый студент, единожды туда попав, сразу мечтал устроиться в компанию на работу. По окончании летней практики части студентов была предложена работа, и я оказался в их числе.
Расскажите про свое первое собеседование и первое место работы (даже если это была подработка в университете). Какой вы получили опыт?
Итак, после летней практики в компании DevExpress я получил предложение о работе.
Я попал в команду разработки компонента генератора отчетов XtraReports. Это был довольно зрелый и один из самых крупных продуктов компании, т.к. в нем использовались практически все остальные компоненты, разрабатываемые другими командами. Существующая кодовая база продукта поначалу казалась устрашающе огромной, но довольно быстро получилось с ней познакомиться и начать приносить пользу команде. Думаю, в первую очередь, потому что мне очень повезло с ментором (Игорь Донцов, привет и спасибо!). Я до сих пор считаю это самым важным моментом в адаптации новых сотрудников: наличие в команде прикрепленного к новичку человека, к которому всегда можно обратиться за советом.
Так как компания занимается разработкой программных компонентов, конечными пользователями продукта являются программисты. Поэтому очень много внимания уделялось стройности API и архитектурным решениям — это очень помогло мне сформировать понимание качества кода.
Также в компании были налажены «правильные» процессы в разработке: автоматизированное тестирование (вплоть до отсутствия тестировщиков в штате), Continuous Integration/Delivery и потрясающий саппорт-центр. Подавляющее большинство вопросов пользователей были публичными, а ответы сотрудников техподдержки служили своего рода базой знаний — как для других пользователей, так и для самих сотрудников.
Я проработал в DevExpress три счастливых года, и единственное, что подтолкнуло меня к расставанию — желание переехать в Санкт-Петербург.
Расскажите про ваши провальные собеседования. С кем это было? Какую работу над ошибками получилось сделать?
Так как первое место работы я получил после летней практики, первые классические собеседования у меня случились уже после переезда в Санкт-Петербург при поиске второго места работы. К тому времени, с тремя годами опыта в DevExpress, я уже не ощущал себя джуниором и искал себе место на позицию мидла. И, естественно, это был провальный провал.
Думаю, многие уже знают, что прохождение большинства технических собеседований — это совершенно отдельный и не связанный с работой навык. Сложные математические задачи, головоломки в стиле «Почему крышки на канализационных люках круглые?», редко используемые паттерны проектирования и неочевидные хитрости языков программирования — все это мало имеет отношения к навыкам, действительно приносящим пользу в повседневных рабочих процессах. В то время подобный формат собеседований был мейнстримом.
Пришлось что-то почитать, что-то вспомнить, разбирая неудачные ответы после пары таких интервью — дальше большая часть собеседований проходила гладко. Уже в будущем, когда я сам проводил технические интервью, всегда старался строить план интервью только из вопросов и задач, раскрывающих релевантные для вакантной должности знания и навыки. Все-таки канализационные люки у нас в компании не проектируют.
Какая была ваша первая зарплата, если не секрет?
Если мне не изменяет память, 600 долларов (в рублях по курсу ЦБ). Это была стандартная зарплата программиста самого первого грейда в DevExpress в 2009 году.
Как складывался карьерный путь в IT после первой работы? Куда пробовали попасть еще?
Переехав в Санкт-Петербург в 2012 году, я начал искать себе новое место работы, сформулировав себе главным критерием отбора волшебную фразу «интересный проект». В итоге я успешно прошел собеседование и устроился разработчиком в компанию, занимающуюся разработкой систем видеонаблюдения.
Сложные задачи на стыке C#/C++, сложные многомониторные UI, работа с различными внешними устройствами (камеры, датчики) и т.д. — так я себе это представлял. В итоге я попал в проект с давно сгоревшими сроками выпуска, в котором команда разработки в авральном режиме пыталась доделать и выпустить огромный по кодовой базе продукт без единого автотеста и с штатом ручных тестировщиков, едва ли не превышающим штат разработчиков. Для более продуктивной работы разработчиков, естественно, был введен контроль рабочих часов, daily-отчеты и лимит месячного интернет-трафика.
Сродниться с продуктом и процессами у меня не вышло, поэтому уже через полгода я начал осматриваться в поисках нового места работы. При этом добавив в обязательные требования помимо интересного проекта качественные процессы разработки (или, как минимум, желание и возможность компании их наладить).
Сегодня попасть в IT стало проще — множество компаний предлагают свои программы обучения. Сейчас на Хабр Карьере более 300 курсов для тех, кто хочет изучить разработку, курсы можно отфильтровать по вашей специализации.
Компания
Как вы попали в компанию, в которой работаете сейчас? Где нашли вакансию, на какую должность и как прошло собеседование?
В 2013 году, еще продолжая работать на предыдущем месте, я в вялотекущем режиме начал искать себе новую работу. Вакансию на должность middle .NET разработчика в компанию АСКОН я нашел на известном сайте с вакансиями. Проект — система управления инженерными данными Pilot-ICE.
Интервью проводил руководитель проекта Дмитрий Поскрёбышев (сейчас директор по разработке продуктов для промышленного и гражданского строительства компании АСКОН). Это было весьма необычное интервью в формате непринужденной беседы на два часа, за которые мы обсудили сам продукт, процессы разработки, посмотрели на ноутбуке существующую кодовую базу и обсудили разные технические решения в ней. Интервью оставило исключительно положительное впечатление о компании и продукте, поэтому я с удовольствием принял поступивший офер.
Как проходил процесс адаптации? С какими трудностями вы столкнулись?
С адаптацией не возникло абсолютно никаких трудностей. Проект был практически на самом старте, команда была совсем небольшая (6-7 человек), ребята все дружелюбные и профессионалы своего дела. При этом у руководителя проекта было четкое понимание, как и куда должен развиваться продукт. Не было жестких дедлайнов, все следили за качеством продукта с самого старта разработки — потрясающая атмосфера для продуктивной работы.
Какие знания у вас уже были, когда вы пришли в свою компанию?
У меня было три года опыта разработки на C#/.NET и неплохая экспертиза в WPF. И (как мне кажется) я уже тогда вполне умел в архитектуру.
Как вы продвигались в компании? Какие навыки в этом помогли?
Сейчас мне 33 года, и скоро будет 10 лет, как я работаю в АСКОН. За это время Pilot (система управления инженерными данными, над которой я работаю) вырос из небольшого инвестпроекта в зрелый и прибыльный продукт, приносящий пользу десяткам тысяч пользователей по всей России.
Вырос за это время и я. Начав middle-разработчиком, я все больше брал на себя ответственность за технические решения. В первое время я по большей части занимался UI, дальше упор пошел больше на бэкенд и алгоритмику. Продукт обрастал все новой функциональностью, в проектировании и разработке которой я так или иначе принимал участие, кодовая база росла и становилась все более сложной.
В команду приходили новые сотрудники. С большинством из них я проводил технические собеседования, многим потом помогал с адаптацией в команде.
Можно сказать, что за все это время я сильно породнился как с продуктом, так и с командой. Приятно, что у нас не было никакой текучки: старички все на месте, новички, как правило, тоже остаются надолго. Сейчас над проектом у нас работает порядка 20 разработчиков в три команды.
В прошлом году я получил должность руководителя разработки (в данном проекте). Это кардинально изменило мои рабочие обязанности: код стал дальше, а планы, люди и заказчики — сильно ближе. Пока что еще я чувствую себя в полупозиции: по привычке сложно отказаться от соблазна что-то написать своими руками, но понимаю, что времени на это становится все меньше и меньше.
Раз уж зашла речь о трудоустройстве — на Хабр Карьере можно найти более 1000 вакансий для разработчиков. Прямо сейчас разработчиков ищут такие компании, как Звук, МТС, Яндекс, Лаборатория Касперского, Магнит и много других.
На какую среднюю зарплату вы рассчитывали тогда, и что получили?
Около 100 т.р. на руки — чуть больше, чем запрашивал. В 2013 году это было весьма неплохо.
Опыт
Что сейчас нужно знать специалисту, чтобы попасть в вашу сферу?
Как правило, в разработку попадают либо стажерами после университета, либо из смежных IT-специальностей (например, QA или администрирования). Как минимум, нужно хорошее знание языка программирования.
Какие бы вы выделили важные Soft и Hard Skills для специалиста вашего направления?
Soft: ответственность, умение ясно выражать свои мысли и аргументированно отстаивать свои решения.
Hard: чтобы попасть разработчиком к нам в команду, надо быть специалистом по крайней мере в одном из четырех направлений:
.NET/WPF,
C++/DirectX,
Frontend (Angular),
Backend (.NET/Postgres/Redis/SQLite/Lucene).
С чего можно начать специалисту без опыта? Какие есть возможности?
Зависит от входных данных. Если мы говорим про студента, окончившего университет по технической специальности, то нужно самостоятельно совершенствовать свои знания и навыки из нравящейся области и упорно искать себе место для стажировки. Если же мы говорим про человека, который хочет переквалифицироваться в IT — тут, мне кажется, наименьший порог вхождения в QA (ручное тестирование). Такая работа позволит ближе познакомиться с процессом разработки ПО и получить новые возможности для дальнейшего развития.
В любом случае, человеку без опыта нужно найти этот опыт. В идеале — попасть в хорошую команду на стажировку на любых условиях.
Какие книги статьи, подкасты, курсы стоит почитать/посмотреть для развития в профессии?
Для начинающих рекомендую скучный стандартный набор книг:
«Приемы объектно-ориентированного проектирования» Эрих Гамма, Джон Влисидис, Ричард Хелм, Ральф Джонсон;
«Рефакторинг. Улучшение существующего кода» Мартин Фаулер;
«Программист-прагматик. Путь от подмастерья к мастеру» Дейв Томас, Энди Хант;
«Совершенный код» Стив Макконнелл;
«Проект Феникс» Ким, Бер, Спаффорд.
Карьерный трек
Мы часто слышим от специалистов на Хабр Карьере вопрос: как понять, что я уже сеньор? Или: что мне нужно сделать и освоить, чтобы вырасти до мидла?
В каждой статье рубрики мы разбираем новую специализацию и показываем карьерный трек. Это инфографика с навыками, задачами и условиями работы, разбитыми по квалификациям.
Вот такой трек нам помог составить Алексей из АСКОН — не путайте данные с реальными вакансиями или зарплатами в компании.
cat_chi
Я понимаю, что это название рубрики, но в итоге получилось просто великолепное название статьи.
Так и вижу – сидит такой студент и размышляет – "куда бы мне пойти... в разработчики? тестировщики? а может, дизайнером стать? о, придумал! руководитель отдела разработки!"
DMGarikk
Как бы странно это не звучало, но в свое время, когда еще писал свои первые пет-проекты, я примерно так и выбирал (на самом деле не выбирал, я сразу думал про программирование но с более глобальным выбором и возможностью самостоятельного создания задач… не просто код пилить по чужим проектам)