Источник: хабр
Привет! Меня зовут Андрей Курье, уже почти два года я работаю инженером по автоматизированному тестированию в СберТехе — пишу тесты для Platform V Pangolin. Это специальная доработанная сборка PostgreSQL, целевая СУБД в Сбере и не только. А до перехода в тестирование я был сисадмином 14 лет. Администрировал парк пользовательских хостов, настраивал и поддерживал серверы, обслуживал СКД и видеонаблюдение в петербургском метрополитене. К слову, админскую работу я любил, мне было хорошо и комфортно, но при этом понимал, что всё вокруг меняется, а мои обязанности — нет. К тому же вырасти из сисадминов на моей работе было некуда, да и просто хотелось попробовать себя в другой области.
И вот я иду учиться на разработчика, получаю диплом, выхожу на Headhunter, получаю отказ за отказом, с трудом нахожу проект на полставки, но платят мало, я продолжаю работать сисадмином по ночам... Мой переход в новую профессию — от первого отклика до получения полноценного оффера — занял полтора года. В этой статье расскажу, как я сменил работу в 35+ лет, и что помогало, а что мешало мне на этом пути. Надеюсь, будет полезно тем, кто думает о том, чтобы поменять направление.
Моя первая специальность — инженер электроники. Когда‑то я многое знал про pn‑переходы, СВЧ и рентген. После окончания университета работал в петербургском НИИ — двигал российскую науку. Это были нулевые, тогда двигать науку было довольно тяжело, и мрачности добавляло то, что охранник на входе мог получать больше, чем ведущий инженер. Когда я стал задумываться о том, как жить и куда уходить из НИИ, друзья позвали меня в петербургский метрополитен на вакансию сисадмина (в студенчестве мы вместе возились с компами, собирали системники, переустанавливали Windows). Самое простое собеседование в моей жизни состоялось именно в метрополитене. Собеседующий спросил: «Винду переставлять умеете?» — «Приходилось» — «Вы нам подходите» . Читатель может подумать: «набирают по знакомству…», но ребята в команде были толковые, научили всему — через пару недель я уже настраивал серверы видеонаблюдения, а через пару месяцев сам начал писать инструкции. У нас было правило: разобрался сам — научи других.
Поначалу я думал, что проработаю в метрополитене до пенсии. За 14 лет из моего отдела ушло всего 3–4 человека, и там до сих пор работает ветеран труда. Полно свободного времени, нормальная зарплата, хороший коллектив. Несколько лет я жил крайне размеренно, потом прозвенел первый тревожный звоночек: я был виндовым админом, а тут у нас добавились системы и ПО на Linux, и учить Linux мне нужно было самому и в свободное от работы время. Что же — я пошёл на курсы в Политех, там тогда преподавал Дмитрий Кетов, он объяснял и азы, и продвинутые вещи. Кстати, его курс есть на YouTube. Потом были курсы по администрированию серверов Windows, Cisco CCNA... После обучения всё снова стало легко. И ещё на несколько лет я успокоился.
Интересный факт про метрополитеновского сисадмина: каждый второй, когда узнавал, что я работаю в метро, спрашивал: «Ты что, под землёй сидишь???»
Нет, не сижу 🙂 Сисадминам не нужно находиться под землей, чтобы обслуживать сеть. Да, конечно, надо бывать в недрах метрополитена в аппаратных на станциях, но большую часть времени работа проходит в уютном офисе. Например, вот вид из моего окна ранним утром.
Потом мою безмятежность нарушил уход нескольких коллег, которые говорили, что им тут скучно и за пределами подземелья есть работа поинтереснее. Тут я понял, что если когда‑то тоже захочу уйти, то возможности может и не быть — времени для смены профессии остаётся всё меньше, а знаний в других областях кот наплакал. Решил выучиться на разработчика. Выбор пал на Санкт‑Петербургский Политехнический университет. У них хорошая высшая школа информатики (ВИШ). За два года получил степень магистра по специальности «Математическое обеспечение и администрирование информационных систем». Составил резюме и вышел на hh.ru искать.
Поиск первой работы. Диплом вуза не очень-то помогает
Итак, воодушевленный наличием диплома в руках и напутствием ГАК, я приступил к поиску новой работы. Но почему‑то выпускник оказался никому нужен, да и таких как я на рынке было очень много и имя им легион. Это был 2020 год, школы программирования выпускали тысячи «специалистов» после курсов. Мои представления о том, что диплом вуза станет моим преимуществом (он‑то ценится больше курсов!) оказались неверными. Работодатели ждали от человека в 35 лет большего опыта и знаний. Я рассылал резюме во все организации, хоть как‑то близкие (и не очень) к желанной сфере, но в основном даже не получал обратной связи. Headhunter подсказывал: на 10 откликов на вакансию — один ответ от работодателя. Какое‑то время это вселяло уверенность, надо просто отправить побольше откликов! Но эта уверенность постепенно растворилась. Дальше я пошёл за помощью к бабкам‑ведуньям и колдунам друзьям и знакомым, кто работал в IT‑компаниях. Мне посоветовали стажировку в Мегафоне, где я нашёл для себя программу «Автоматизация на Python». Большим плюсом для меня стал вариант оформления на полставки, то есть не пришлось бросать основную работу, чего я никак не мог себе позволить ввиду наличия жены, ребёнка и ипотеки.
Собеседование я прошёл легко, поскольку от стажёра не требовалось глубоких знаний. Показал некоторые поделки ещё времён учёбы, показал, что как‑то знаком с Python. Взяли! Пока только как «принеси‑подай», но это была победа! Буквально через месяц я остался там один. Остальные ребята либо сами ушли, либо не справились. Первой серьёзной задачей стал почтовый клиент. Руководитель пришёл с вопросом, умею ли я писать скрипты на VBA.
Я говорю: нет, но можно попробовать. Нужно было разработать парсер электронной почты для Outlook, который берёт нужные письма из входящих и сохраняет из них определённые вложения. Тут‑то на помощь пришла одна из моих курсовых работ по Python. Предлагаю её как идею, показываю первые наработки и получаю карт‑бланш. Начинаю гуглить, как это трансформировать под винду. Вижу, что есть целая встроенная библиотека для взаимодействия с Windows, изучаю основы win32, там оказываются все нужные мне методы.
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
#logger.info('Получен почтовый ID')
box = outlook.Folders(EMAIL_ACCOUNT)#Выбираем нужный ящик (аккаунт)
#logger.info('Выбран нужный ящик')
folder = box.Folders("Входящие")
#logger.info('Выбран нужный почтовый ящик')
messages = folder.Items
message = messages.GetFirst()
while message: # Пока есть письма для чтения, читаем.
if message.UnRead:
saveAttachments(message) # Сохраняем вложения
clean() # Удаляем все файлы кроме экселевских
message.UnRead = False # Помечаем письмо прочитанным
logger.info('Получено новое письмо от ' + str(message.sender) + ' Тема письма: ' + str(message.subject) + '. Запускается обработка вложений.')
Итогом моей работы стал скрипт, который регулярно парсил почту, сохранял вложения, обрабатывал и подготавливал текст из них (тут я уже использовал модуль pandas) и отправлял его в другой отдел.
Иду в тестирование. Впереди полтора года на двух работах
У нас были большие планы на развитие этого проекта. Но в Мегафоне случился какой‑то кризис — оттуда разом ушло много сотрудников, мой проект заморозили, вакансии в других командах под меня не нашлось. Руководитель пообещал поспрашивать у коллег и знакомых про работу для меня. Спустя некоторое время позвонил и сказал, что со мной свяжутся. Там тоже работа на Python, но немного другая. После чего позвонил незнакомец и предложил заниматься тестированием в группе единомышленников.
Мне дали тестовое задание — протестировать сайт ВК. Суть: разобраться, как подключиться к API сайта, создать авторизационный токен и т. п. Это я и сделал — у меня получилось запостить пару записей себе на страницу с помощью скрипта.
Так я начал трудиться в маленькой IT‑компании, которая относилась к большой IT‑компании, которая на аутсорсинге делала проекты для Мегафона (в доме, который построил Джек). Мы в основном разрабатывали и обслуживали тесты для биллинговой системы. Я писал тесты на звонки, смски, роуминг. Из интересного: удалось некоторые ручные операции сократить с месяца до нескольких минут. Это было классно — мы смогли переместиться в будущее :). В одном из тестов на SIM‑карты нужно было вручную выполнять определённые операции, затем вынимать симку из телефона, убирать её в ящик на месяц, потом вставлять в телефон и проверять, всё ли корректно работает. Мы нарыли в недрах кодовой базы метод, который локально менял для системы дату и время. Подложили это изменение в тест и случилась магия, которой ручные тестировщики очень обрадовались.
Года полтора я жил в таком графике: днём писал автотесты для Мегафона, а по ночам трудился сисадмином в метрополитене. Было трудно, но сдаваться я не собирался. С каждым днём увеличивался стаж работы, который можно честно указать в резюме.
А потом наш отдел реорганизовали: мою мини‑команду перевели в Nexign. Мне предложили перейти на полную ставку — совместителем меня больше не могли держать. Но оклада начинающего специалиста не хватило бы на семейную жизнь с ипотекой, и я вынужден был отказаться.
Опять ищу работу. Теперь у меня есть опыт. Поможет?
Моим мечтам (теперь‑то у меня была заветная строчка в резюме!) пришлось разбиться о суровую реальность. Снова. Меня никуда не брали.
Опыт работы в метрополитене в зачёт не шел. Даже наоборот. Встречал такие сомнения: мол, долго работал в госорганизации, где ничего не происходит…
Кстати, это не так. У нас встречались и занятные задачки, когда нужно было извернуться, чтобы решить проблему. Например, кто‑то повадился воровать камеры по ночам, кажется, на станции Девяткино. На станциях с подземными переходами камеры висят низко и до них можно допрыгнуть. Стали думать, как отследить этот момент. Написали анализатор трафика, который в реальном времени передавал в мониторинг данные о потоке с камеры. Когда поток внезапно падал до нуля, дежурный администратор тут же об этом узнавал и сообщал на станцию в пункт полиции. Пару хулиганов поймали и больше камеры украсть не пытались. Побочным положительным эффектом стало знание о выходе камер из строя (зависание, поломка и т. п.) в режиме реального времени.
А для вакансий на тестировщика‑автоматизатора оказалось, что нужно знать побольше. Но я понял это не сразу и спамил своими резюме во все хоть чуть‑чуть схожие с моей областью организации. Выискивал вакансию, создавал под неё новое резюме, на все требования писал, что я умею, знаю, делал. В лучшем случае писали: «Вы нам не подходите», а в основном даже не отвечали. Потом я узнал, что в связи с уходом крупных компаний с российского рынка высвободилось много опытных специалистов. А куда мне с ними тягаться?
Оставалось только одно — учиться.
И тут понеслась череда курсов по тестированию, статьи на Хабре, видео на ютубе. В этой шпаргалке собрано много отличных источников.
Очень полезный совет мне дал однокурсник: писать в резюме свои достижения на работе, а не обязанности, указывать то, что сделал именно ты, а не команда. Во всяком случае, когда я стал ему следовать, мне пришёл отклик.
Долгожданное первое собеседование
Из СберТеха на моё резюме откликнулись в тот момент, когда я морально был готов пойти в такси или доставку. Созвонились с девушкой из HR, я честно рассказал, как дошёл до такой жизни. Она расспросила про мои умения и известные мне технологии. Я базово уже знал всё, что было нужно — и про тестирование на Python (модули unittest, pytest), и про теорию тестирования, и даже про Postgres слышал (наш Pangolin основан на открытом коде PostgreSQL). Мне назначили первое техническое собеседование. Там задавали вопросы на базовые темы: какие типы данных в Python, чем они отличаются, основы сетевого протокола, базовые понятия в Linux. Ответил на всё, что мог, и, на моё удивление (после стольких отказов), назначили второе техническое собеседование. Оно делилось на теорию тестирования, проверку владения Python, сетевыми технологиями, реляционными БД.
Как я понимаю сейчас, моим плюсом на собеседовании была тактика, которую я освоил на первых курсах института. Если не знаешь ответа — размышляй, исходя из базовых знаний. Я честно говорил: не знаю, но скорее всего, если бы я проектировал этот инструмент, должно быть так‑то, нужны такие‑то параметры. Этот подход работает в 80 % случаев. Пару раз интервьюер сказал: нет, слушай, здесь совершенно в другую сторону. Ну, окей, с кем не бывает.
Третье собеседование было уже с руководителем направления. Как мне объяснила эйчар, это собеседование — за жизнь. Выяснить, подхожу ли я команде, а она — мне. Было интересно, шеф тоже когда‑то работал в Мегафоне и знал проект, в котором я наносил пользу по мере сил. О чём ещё говорили, уже не помню. Был дичайший стресс от осознания, что я смог так далеко пройти, а теперь скажу какую‑нибудь глупость и счастливого финала не случится. Но всё прошло хорошо — заветный оффер упал мне на почту.
Прощай, метрополитен
Я уходил в неизвестность с моего лучшего на то время места работы. Тут прошли мои молодые годы, были друзья, с которыми много пережито, тут я всё умел с закрытыми глазами. А на той стороне реки ждало что‑то неизвестное, там я становился начинающим специалистом в 38 лет. И я кинулся в омут…
С первых же дней включился синдром самозванца. Он меня до сих пор посещает, но уже пореже. Казалось, что меня вот‑вот разоблачат и повесят на доску позора. Со мной работают ребята почти вдвое моложе, они знают гораздо больше. Сложно снова оказаться новичком. Но сейчас я освоился в проекте, стал больше понимать в тестировании. Оказалось, не боги горшки обжигают. Вижу, что даже опытные коллеги чего‑то не знают, но стараются разобраться. А самое главное, помогают в этом мне. За что им огромное спасибо!
Насколько переносимы навыки сисадмина в тестирование? Мне пригодились общие компьютерные знания, понимание сетевого взаимодействия, устройства Linux, подход к поиску причины проблемы. Но это довольно‑таки разная работа. Системный администратор работает руками и головой, а круг задач со временем замыкается. Инженер по QA работает только головой. Работа каждый раз новая, во всяком случае, так ощущается в первый и второй год работы. С каждой задачей приходится изучать много новой информации. Жена говорит, что у меня с погружением в программирование голова стала лучше работать, будто я более системно подхожу к решению повседневных вопросов. Хотя, может быть, это связано с тем, что я стал спать по ночам :).
Размеренного ритма и свободного времени, как в метрополитене, теперь нет. Много сил трачу на погружение в задачи, в основном из‑за нехватки знаний.
Но я точно не жалею о том, что сменил работу. Мне кажется, что если бы я просидел ещё пару лет, уже не было бы сил и запала на переход в другую профессию, да и с каждым годом это становилось бы гораздо сложнее сделать. Квалификация не росла, а требования к специалистам всё выше. Хотя метрополитен вспоминаю со светлой ностальгией.
Сейчас моя основная задача — стать экспертом. Со временем хотелось бы получить сертификат по тестированию, а ещё попробовать себя в администрировании баз данных. У нас готовится своя сертификация по Platform V Pangolin, подумываю о том, чтобы пройти и получить документ.
Спасибо всем, кто дочитал до конца. Приходите в комментарии делиться своими историями. Буду рад ответить на вопросы про собеседования. А если интересно узнать больше о том, как мы тестируем Platform V Pangolin, приходите к нам в сообщество, там мы регулярно пишем об этом.
P. S. Даже если вам кажется, что не получится — получится, но нужно постараться. Как говорил Айенгар: «Самое сложное в йоге — расстелить коврик».