Как стать профессиональным карманником IT-технологий? Часть 1. Начало

6a50e37081e00f9ca631b83fa452baa6.png

Привет, Хабр! Меня зовут Даниэлла Старченко, работаю в GlowByte на позиции Senior Technical Consultant в команде MM.SUP (Marketing Management Support).

Задумывались ли вы, какие скиллы в вас развила и развивает работа? Достаточный ли рост получаете в своей профессиональной деятельности? А нет ли такого, что вы занимаетесь изучением специфических космолетов, знания о которых применить больше негде, кроме как на текущем месте работы? На определенном этапе своей карьеры я задалась именно такими вопросами и в данной статье, точнее цикле статей, расскажу, как я научилась измерять свое развитие, управлять им и что дала мне работа в сопровождении B2B-бизнеса. 

Сейчас мне кажется, что сотрудник сопровождения B2B — это многофункциональный перочинный ножик 100 в 1. Он получает со всех сторон разнонаправленные знания, обзорно знает обо всех сферах и технологиях. Его не пугает новое, потому что он знает: выучить что-то неизвестное — это уже не проблема и можно быстро справиться с задачей.

Немного предыстории 

Не так давно, в конце 2020 года, я решила сменить работу. Решение пришло от осознания того, что я никуда не двигалась, но очень хотелось. На тот момент я работала в службе поддержки 1–2 линии около 2 лет, выполняла и перевыполняла планы и закапывалась в изучение сервиса, который поддерживала. В какой-то момент я осознала, что практически не знала ничего, кроме сервиса, который сопровождала. Вроде бы работала в IT, но не подходила на вакансии разработчиков, аналитиков, IT-менеджеров, тестировщиков… Да и в службу поддержки могла пойти только на 1–2 линию, где вакансия помечена маркером «без опыта». 

Вроде бы зарплата росла, премии выплачивались, по деньгам получала как не «без опыта», да и должность поднялась до старшего специалиста, и глупым казалось уйти на меньшую з/п и начать все с нуля, перечеркнув 2 года работы. Но, с другой стороны, не менее глупым казалось хотеть двигаться быстрее, но не иметь возможности это сделать. В тот самый момент я решила начать проводить романтические вечера в компании со статьями/ книгами/ курсами по изучению всех технологий, какие только под руку попадались. 

И однажды я решилась все поменять, перечеркнув весь свой опыт работы, и начать сначала в нужном месте. Потому что все очень надоело, потому что разговоры с руководителями заканчивались ответами «А чего ты еще хочешь? Служба поддержки не может тебе дать больше», потому что видела, что могу больше и лучше. Меня пригласили на собеседование в «ГлоуБайт» на младшего специалиста.

Трудоустройство

Мне очень хотелось на тот момент быть Python-разработчиком. Про всякие SQL’ли и BI-инструменты я не слышала, даже не интересовалась ими. Меня рассматривали две команды, и я не знала в точности, чем предстоит заниматься на работе. На первой итерации я справилась плохо с SQL-задачами, так как об SQL вообще узнала только за пару дней до собеседования и что-то бегло успела почитать и поизучать точечные вопросы в чатах комьюнити. 

Тем не менее собеседующим показалось, что я могу больше, и меня пригласили на второе собеседование. У меня было 2 недели, чтобы подготовиться, и я провела их продуктивно: прорешала все задачи на SQL-ex, просмотрела какой-то бесплатный курс по SQL на YouTube — и на втором собеседовании уже неплохо писала сложные вложенные запросы с несколькими джоинами и отлично объясняла логику того, что делаю. Помимо SQL, были еще задачи, с которыми, по моим ощущениям, справиться было легче. 

Мне сделали офер с зарплатой на тот момент ниже, чем я получала, на 50%. И офер был не на Python-разработчика, как я хотела, а на младшего специалиста службы поддержки. Я сомневалась в целесообразности принятия такого предложения. С одной стороны, у меня была хорошая должность в известной в России компании и зарплата выше, с другой — новые неопределенные возможности расширить свои знания и вложить что-то новое в себя. Подумав, решила какое-то время поработать на двух работах и по итогу испытательного срока выбрать: остаться в своей старой компании или перейти в GlowByte. Весь испытательный срок проработала по 12 часов в день: вставала в 6 утра, чтобы выполнить задачи на старом месте и затем в рабочие по МСК часы поработать на новой работе.

Итак, когда я приняла офер, я еще до конца не понимала, что буду делать и какие у меня будут задачи. Выяснилось, что в GlowByte у каждого сотрудника есть куратор, мой мне дал задачу в первые 2 недели читать книгу по MS SQL, решать задачки по JAVA на LeetCode (с которой я до этого вообще не взаимодействовала — по сути, не знала, что это такое), читать на английском какую-то непонятную документацию, в процессе чтения которой было ощущение «вроде бы ясно в теории, но не понятно, как это применять и зачем это нужно». 

SQL и СУБД

27dfd590af9d3aa4ab7441b3652d3a1a.png

Далее мне дали уже проектную задачу: разработать скрипт очистки и архивации данных в огромных таблицах согласно заданным правилам. Затем оптимизировать скрипт построения отчетов эффективности. Следом я разработала SQL-скрипты расчета баланса и начисления бонусов пользователям по нескольким таблицам с выбором агрегируемых показателей. 

Шли подобные задачи по написанию чего-то на SQL, и я за месяц стала значительно лучше понимать, что происходит в этой области. 

Потом начались задачи в расследовании инцидентов производительности СУБД, я познакомилась с несколькими типами: Oracle, PostgreSQL, MS SQL, DB2. Далее был аудит витрины DWH, где получилось узнать подробнее про устройства хранилищ. 

Я использую SQL по сей день и искренне не понимаю, как мне в самом начале казалось, что это что-то сложное. С улыбкой вспоминаю, как использовала императивный подход, когда писала запросы, и мне очень хотелось применить IF ELSE вместо WHERE.

Что я точно уяснила: работая с БД, нужно мыслить декларативно, отложить в сторону все циклы, IF, ELSE, которые устоялись в голове после работы с императивными языками программирования, и думать о данных в БД как о множестве. Хотя в синтаксисе SQL тоже есть WHEN, THAN, но они служат совершенно для другого. 

Нужно представлять таблицу как «черный ящик» с набором элементов, где не надо думать о цикле при написании запроса и практически никогда — что хорошей идеей является использование императивного WHILE IF ELSE.

UNIX-команды

544d2476c291b121e7279061d6a6ac05.png

До работы в поддержке B2B у меня никогда не было Unix-консоли, про Linux знала только в теории. Чем-то страшным казалась сама идея, что нужно запомнить много команд, не запутаться в том, что есть что, и случайно не удалить все на свете. Кроме того, не было представления об устройстве файловой системы, OS и в целом о том, как Linux удобен. 

До GlowByte я никогда не работала с огромными файлами с логами, которые не открываются или открываются долго в файловых редакторах типа nodePad, VS code и т. д. Искать что-то по этим логам представлялось чем-то невероятным: было непонятно, как устроен лог, по каким ключевым словам и как что-то искать. Не было опыта в работе с ротацией, уровнями логирования, архивацией и удалением старых логов. 

Одной из первых моих задач была настройка sh-скрипта, который собирает логи всех приложений сервера в одной папке, архивирует старые логи по дате, а совсем древние сформированные архивы удаляет совсем. У задачи не было детализации и четких инструкций о том, как я должна это сделать. Однако упорство и «гугление» познакомили меня с такими командами, как создание ссылок (ln), с помощью которых я сделала ссылки в одну папку со всех локаций логов всех приложений, командами поиска лог-файлов find, locate, командами поиска внутри лога grep. Также я научилась писать циклы sh, работать с параметрами запуска, c crontab для запуска скрипта с расписания и т. д. Я справилась с этой задачей без помощи коллег, и это было замечательно: помимо навыков работы с файлами Linux, я прокачала способность работать самостоятельно и оценивать собственные возможности.

С тех пор с Linux-команды сопровождают меня в работе каждый день: для анализа и чтения логов, для анализа производительности системы, запуска служб и сервисов, анализа состояния OS, процессов, приложений и т. д. 

Подытожу: я учила команды постепенно, все они запоминались естественно, а не насильно, и это сформировало комплексный обзор нужных именно мне команд Unix. Если мне в будущем понадобится что-то еще из Linux-команд, я смогу это быстро найти и начать применять. 

Что по узким технологиям?

8795692069bc404748e789ca30f2bcc8.png

Конечно, не обошлось и без узких технологий формата «нужны только на этой работе». Сначала это пугало и отталкивало, однако я поняла, что, несмотря на их специфичность, я могла назвать 40–50 крупных компании РФ, которые работают с этими же технологиями. Как минимум это наши заказчики. На тот момент лидерами специфических технологий были:  

  • Evam — система для обработки поступающих событий, обогащения данными этих событий и направления события по нужному сценарию;  

  • HCL Campaign, HCL Interact — системы для управления маркетингом: сегментация пользователей, рассылка SMS, EMAIL, PUSH клиентам, обработка в реальном времени офлайн-событий (оформление заявки на кредит в отделении банка, заполнение заявки на сайте и т. д.);

  • SAS MA — система управления маркетингом, аналогичная HCL Campaign;  

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

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

Спустя 3 месяца испытательного срока мне повысили зарплату до той, которая была у меня на прошлом рабочем месте. Я смогла попрощаться со второй работой и с большим усердием погрузиться во все новые задачи, технологии, открытия на новом рабочем месте. 

В следующих частях я подробнее расскажу о других технических и нетехнических навыках, которые мне дала работа. Поделюсь своим опытом, какие именно технологии мне понадобились в жизни и какие плюсы я получила от этого в мою карму карьеру.

© Habrahabr.ru