Привет! Меня зовут Александр Денисов, и я не боюсь перемен. Будучи сеньором-программистом, я перешёл на мидл-позицию и стал заниматься СУБД. А восемь лет спустя, уже став опытным аудитором и экспертом по MS SQL Server, снова шагнул на ступеньку вниз, чтобы устремиться к новым высотам, на этот раз в дата-аналитике.  Под катом расскажу, почему не стоит терять время на работе, которая не нравится, и как скилы и перки из прошлой жизни становятся подспорьем в освоении интересных и перспективных специальностей.  Сейчас я дата-аналитик в «Спортмастере», а до этого долго работал аудитором производительности БД: изучал телеметрию, запросы, планы и давал советы по ускорению системы. Начинал я IT-карьеру как 1С-ник, со временем заинтересовался оптимизацией запросов, потом уже глубоко погрузился в детали работы MS SQL Server. Каждый раз это было интересное путешествие в новые области. В 1С-программисты я попал случайно. Первый профессиональный опыт получил, когда учился во ВГАСУ. Моя специальность — «прикладная информатика в экономике»: это немного программирования с уклоном в проектирование (был классный курс по проектированию систем, с упором на архитектуру) и очень много экономики, вплоть до бухучёта. Мне нравилось программировать. На четвёртом курсе товарищ устроился на работу и пригласил меня: «Знаю, ты лучше всех лабораторки по паскалю делаешь, пойдём со мной, попробуешь». Программировать, как выяснилось, надо было на 1С. Там же и моё знание бухучёта пригодилось: мог с заказчиком на одном языке говорить. Сначала, как большинству джунов, пришлось поработать «программистом пополам с эникеем»: одной рукой код пишешь, другой картридж меняешь. Но постепенно я набрался опыта и дорос до нормального программиста, который занимается нормальными программистскими задачами. Работал в классной команде, учился у коллег и в какой-то момент дошёл до позиции сеньора. Сертификатов не было, но на своём уровне я вполне мог учить джунов, выполнять в компании все сеньорские обязанности.  Но всё это время я понимал, что развиваюсь неправильно. «Классические» 1С-программисты начинают во франчайзинге, обрастают сертификатами, работают на почасовке и вырастают, например, в архитекторов. Но в тот момент меня всё устраивало: при работе «инхаус» сертификатов не спрашивали, а знаний хватало. Возможно, я тоже бы развивался как «правильный 1С-ник», но программирование к этому моменту мне наскучило, хотелось двигаться в другую сторону.  Наверное, этот путь проходит почти каждый серьёзный программист: в какой-то момент приходится заглянуть «под капот» фреймворка, с которым работаешь. У меня это произошло, когда появились большие объёмы данных, база сильно выросла, а в команде не было никого, кто бы занимался именно производительностью. Эту нишу пришлось занять мне. Вскоре я втянулся и понял, что мне это интересно. Начал изучать, углубляться, получать опыт. С одной стороны, никто из коллег компетентно не разбирался в базах данных: знали, как установить, но не понимали, как обслуживать. С другой стороны, из-за того, что база была большая для того времени — около 400 онлайн-пользователей, случались какие-то блокировки, всё работало медленно. Это обычные болячки OLTP-систем (Online Transaction Processing), но с ними приходилось разбираться самостоятельно, без малейшего опыта в подобных вопросах. Это был 2011 год, рынок производительности СУБД тогда только зарождался, у нас в Воронеже не к кому было обратиться. Десять лет назад такие специалисты были очень редки. С информацией тоже была беда — просто полный швах. Я тогда ещё не очень хорошо читал на английском, пытался искать информацию на русском. Нашёл совершенно чудесный блог по SQL: http://sqlcmd.ru/. К большому сожалению, автор со временем забросил проект, но для меня в то время это был просто бесценный источник информации. Тогда же я понял, что надо искать информацию на английском, читать хотя бы с онлайн-переводчиком: все передовые статьи выходят на английском, да и само сообщество гораздо шире. Это сейчас стало проще: информации больше, улучшилось качество документации на русском. На том же Хабре стало больше статей выходить, много переводов хороших. Но некоторые классные ресурсы периодически закрываются, с другими непонятно что происходит. В конце концов, если хочешь держать руку на пульсе, надо учить английский. Но вернёмся в 2011 год. Не хватало не только информации, но и ментора, авторитета, у которого можно что-то спросить. Обычная история джуна: нужен старший товарищ, который направит и поможет. Но мне было интересно разбираться, даже с учётом того, что надо было отвлекаться на основную работу — программирование. Всё равно удавалось развиваться, узнавать что-то новое, прокачивать скилы по производительности СУБД. Справедливости ради уже тогда на федеральном уровне были курсы: например, «Эксперт по производительности» от 1С. Но я совершил типичные ошибки новичка: во-первых, решил разбираться во всём самостоятельно. Во-вторых, не сообразил, что такое повышение квалификации можно было «продать» на работе. Все шишки в итоге набивал сам. Ну и очень скоро мне представилась возможность поменять работу: полностью уйти в производительность СУБД. Однажды я открыл почтовый ящик, кликнул на рассылку от хедхантера и прочитал: «Требуются специалисты по производительности». Для меня это тогда была работа мечты! Интересно, что ни до, ни после этого случая я такого рода письма, которые тоннами на имейл приходят, не открывал. Компания называлась SoftPoint. Помню, как проходил собеседование. Я рассказывал о своём опыте: мол, знаю бухучёт, 1С, знаю, как работает лог транзакций СУБД… Мой будущий руководитель в шоке: где бухучёт, а где лог транзакций? «Зачем ты вообще туда полез?» — «Ну, интересно было». Так на последующие восемь лет я стал специалистом по производительности. В компании занимался диагностикой баз данных MS SQL. Наша команда проводила аудит СУБД, изучала метрики производительности, поведение систем. После этого мы писали заключение: что нужно поменять, что ускорить, что переписать и так далее. Обучение по большей части проходило по-прежнему автономно: литература, интернет, собственный опыт. Но в окружении наконец-то появились опытные коллеги — это было большим облегчением. И хотя люди с опытом к моменту моего прихода в компанию успели перейти в другие области, периодически можно было вытащить их в переговорку и что-то у них спросить. Оглядываясь назад, я понимаю, что это был очень удачный режим развития: с одной стороны, мне до самого последнего дня в этой профессии требовался навык скрупулёзного поиска по источникам в интернете (ведь порой попадались действительно необъяснимые случаи!). С другой стороны, из случайного ступора выводили как раз старшие коллеги. В целом этот период можно назвать «очевидное — невероятное». Часто появлялись внешне необъяснимые вещи: например, «читающий» запрос собрал длинную очередь блокировок. Оказалось, всё дело в том, что в эту очередь встроился запрос автопересчёта статистик и собрал всех на блокировке схемы. Или транзакции отваливались по таймауту блокировок без видимых причин. А это «перехлестнулись» два пространства блокировок — блокировки СУБД и управляемые блокировки 1С. Получился дедлок, но разные его «половинки» оказались в разных пространствах блокировок, поэтому распознать его было сложно. Часть таких историй превратилась в темы для выступлений на профильных конференциях.  Случались и забавные вещи. Как-то раз наши клиенты переехали на новые серверы: последняя версия СУБД, мощные процессоры. Запустили в работу и получили просадку на 30%: всё работало медленнее, чем на старом железе. Мы проверили — действительно всё тормозит. В то время все устанавливали стандартную операционную систему Windows Server 2012, в которой по умолчанию включался сбалансированный режим потребления энергии. Если низкая нагрузка, система просто снижает частоту процессора. Сервер был, естественно, «на вырост», обычная нагрузка для него была как семечки, вот он и переходил в экономный режим на радость экологам. Мы переключили галочку в настройках операционной системы, и всё заработало. Процессор, который работал на 1,5 ГГц, сразу скакнул до 2,4 ГГц. Естественно, запросы стали выполняться быстрее. Классная была работа, поэтому я задержался там так долго. Это как у доктора Хауса: каждый день к тебе приходят с новой болячкой, с новой интересной загадкой. Но когда болячки начали повторяться, стало скучно, я стал задумываться, куда хочу двигаться, чем заниматься. И понял, что в целом мне интересно разбирать бизнес-процессы, всё по полочкам раскладывать. Дата-аналитика? Почему бы и нет? Возможно, я не очень удачно выбрал момент для увольнения — март 2022 года. Но это было заранее оговорённое решение, и потом мне в очередной раз повезло. Несмотря на то что компании, в которые я собирался податься, либо закрылись, либо перестали нанимать кого-либо, через два месяца я уже работал в «Спортмастере». Я шёл на понижение, на позицию мидла, но это всё равно был довольно радикальный переход. Естественно, на собеседовании были вопросы и о моих компетенциях, и о мотивации: зачем тебе вообще это надо? В том, что касается компетенций, у меня сработал некий кумулятивный эффект: всю свою карьеру я же не сидел, условно, в какой-то каморке, глядя только на 1С и MS SQL. Разбирая чужой код, чужие запросы, чужие структуры данных, хочешь не хочешь, а научишься замечать удачные примеры проектирования. Я видел, как работают разные системы, слышал, как общаются коллеги… Всё это наслаивается, оседает как золотая пыль. По сути, на этом опыте я и выехал. На собеседовании был этап проектирования систем. Тут помогли и институтские знания, и опыт работы с реляционными базами: появляется профессиональная интуиция, опыт сам диктует правильные решения. Но нельзя останавливаться на этом этапе и полагаться только на этот опыт! Смена вида деятельности автоматически означает смену кругозора. Можно влиться в профессию, опираясь на смежный опыт, но невозможно быть профессионалом без целостного понимания новой области. В целом же мне всегда было интересно работать с данными, кое-что я уже знал и умел. Витрины, ETL — это меня завораживает: мы строим конвейер и из неорганизованного массива получаем факты, из которых делаем выводы, получаем что-то полезное. Чем-то это напоминает работу алхимика или бармена: взять набор исходных элементов, смешать, взболтать, и как результат — удивить заказчика. Если говорить про новый коллектив, я совсем не ожидал, что настолько здорово получится: крутая команда, классный онбординг. Сразу выдали кучу внутренних обучалок, материалов, ссылок — что почитать, посмотреть. Например, очень толковый курс по BI-системе Tableau. Но на первой же задаче пришлось резко менять привычное мышление. Требовалось спроектировать новую витрину, ETL. Надо было разобраться, откуда взять данные, как преобразовать, правильно задокументировать, найти противоречия. Когда я занимался производительностью и встречал в работе что-то новое или странное, то всегда мог найти документацию или блогеров почитать, которые до меня всё раскопали. А тут внутренние процессы, которые нигде не описываются. Как раз моя задача — их описать. Пришлось идти к людям, разбираться, спрашивать у коллег, как и что работает. Было сложно перестроиться, по сравнению с прошлой работой это был зеркальный опыт. С новыми инструментами особых проблем не было: я уже раньше видел «из-за плеча» работу коллег. Если ты не в вакууме, то всё равно с этим так или иначе сталкиваешься: и с wiki-разметкой, и с диаграммами, и с каким-нибудь BI (хоть даже с экселем). Зато очень пригодился мой опыт с SQL. Для аналитика это обязательный рабочий инструмент. Когда строишь процессы, витрины, нужно проверить, что у тебя вообще изначально там есть. Надо уметь оценить разброс значений, возможные погрешности будущей отчётности. Умение писать ad-hoc-запросы, которые проверяют гипотезы и отвечают на вопросы, незаменимо. Пригодился опыт с 1С: навыки программирования, понимание архитектуры. В плане проектирования это очень помогает. Не менее ценным оказалось моё «полуэкономическое» высшее образование: так гораздо проще общаться с бизнес-аналитиками, потому что их интересуют не абстрактные поля в базе данных, а конкретные метрики — себестоимость, маржа, процент оборачиваемости… Не то чтобы это было сложно нагнать, но мне проще, я это уже знаю. Моя история вовсе не означает, что обязательно сначала идти в экономику, потом в программирование и СУБД, а только затем — в дата-аналитику. Но скилы и перки, которых я в своё время набрался, действительно часто меня выручают, закрывают слабые стороны, пробелы в образовании или опыте. Я считаю, что какие бы у тебя ни были навыки, они не обесцениваются, а в своё время пригождаются.  Подозреваю, что мой подход к смене профессий подойдёт далеко не всем читателям Хабра. Это прекрасно, если кто-то может выбрать свою карьеру один раз и навсегда. Но для меня смена области — это способ предотвратить профессиональное выгорание и не тратить жизнь на то, что перестало интересовать. Технически я мог бы и дальше работать в производительности, но года два максимум — по ощущениям. Постепенно становится скучно, начинаешь делать всё через силу, приходишь и отбываешь положенное время. Я ушёл, пока это не стало влиять на качество работы. Не надо дожидаться, пока всё начнёт разваливаться, рушиться. Со временем легче не станет, будет только хуже. Есть два варианта: говорить «ребята, давайте я чем-то другим займусь, хотя бы на время» или искать другую работу. Я советую начать с разговора. Но надо подготовиться к тому, что не каждый начальник пойдёт на это. В больших компаниях уже привыкли, что люди выгорают, надо как-то этим заниматься. В «Спортмастере», если вдруг у меня появятся сомнения или признаки выгорания, я знаю, к кому обратиться. У нас есть люди, которые профессионально занимаются этими вопросами, следят, чтобы у сотрудника были все нужные ресурсы, чтобы работалось комфортно. Уверен, будет решение: обучение, переход в другую команду, на другое направление или ещё что-нибудь. Я понимаю, что не все компании могут позволить себе такой подход. Хотя на самом деле чаще тут срабатывает желание обойтись малой кровью. Многие пытаются «подкупить» увольняющегося сотрудника: считают, что это дешевле, чем искать замену. На самом деле это откладывание проблемы. Лучше попробовать подобрать смежное место, которое интересно человеку, и он останется в фирме, где знает людей и знает процессы. Это в любом случае лучше, чем плодить брак от выгоревшего сотрудника. Ну а работнику сложнее всего понять, чем хочется заняться и куда пойти. Это не всегда легко раскопать в себе, но оно того стоит, оправдает все усилия. Главное, не терпеть, когда на работе всё плохо, не бояться перемен. И не бояться отсутствия навыков в новой профессии: если опыт есть, он наверняка поможет. аналитик, программист, администратор БД