Найти в Дзене
ISPsystem

Боль и восторг: выпускник киберфака о первой работе

Оглавление

Часть команды разработки ISPsystem. Савелий Арляпов в красной толстовке
Часть команды разработки ISPsystem. Савелий Арляпов в красной толстовке

Вуз не подготавливает к работе идеально. У программистов столкновение с реальными задачами происходит особенно больно. Для выпускника иркутского политеха Савелия Арляпова первой работой стала компания ISPsystem. За полтора года он освоился и теперь рассказывает, как ему было страшно на собеседовании, тяжело погружаться в работу, какие знания из университета пригодились и почему решение задач похоже на поход в театр.

Собеседование

Наш завкафедрой отправляет студентам письма с вакансиями — длинные такие портянки. Из этой рассылки где-то после второго курса я впервые и узнал об ISPsystem. Там было описание работы, самой компании и продуктов. Ничего не понял: наши программы в принципе далеки от обычных людей, а зеленому студенту тем более сложно вникнуть. Ближе к диплому стал задумываться о будущем. Решил, а пройду-ка здесь преддипломную практику.

Связался с эйчаром, договорился о встрече. О желании пройти практику решил сказать на собеседовании. Но разговор пошел под откос, как только бывший в то время гендиректором Игорь Чекушкин услышал об этом. «Мы не берем практикантов», — сурово сказал он. А у меня весь план устройства в компанию был на этом построен. И тут отказ! Эйчар Оля всем своим видом поддерживала: «Ты молодец, давай продолжай». Игорь: «Разговаривать дальше будем?» Я еще из аута не вышел: «Б-б-б-будем».

На собеседовании ждал технических вопросов. Шпор даже накатал, подготовился как к экзамену. Но спрашивали за жизнь больше: «Не боишься сложных задач, монотонной работы?» Тогда ответил, что задачи для меня как спортивные упражнения — смогу или не смогу. А работа ни фига не монотонная, — и тогда ответил и до сих пор так считаю. Новая задача, значит новая технология, новая область. Каждый раз что-то для себя открываешь, пробуешь. Возможно, это в моем ответе понравилось. Игорь сказал: «Приходи, когда все сдашь».

Через несколько месяцев я все сдал и пришел. Во второй раз было страшно как в первый. Вопросы снова были абстрактные. В конце спросили: «Хочешь работать?» Ответил: «Очень хочу! Не представляю жизни без кода». И меня взяли в разработчики. Только потом узнал, что обычно людей без опыта в разработчики не берут: сразу после вуза сложно влиться, поэтому новичков сначала отправляют в тестирование. Со временем тестеры становятся разработчиками.

Погружение в работу

В политехе учился на факультете кибернетики, эвээмщик. Мне это направление нравилось, потому что оно больше всего приближено к программированию. А я всегда хотел быть ближе к нему. Мы делали лабораторные работы, программировали, у нас были более-менее законченные проекты. Но учеба и работа — это ни разу не одно и то же.

В универе у тебя в сферическом вакууме проектик, там же сборка, дебагер. Здесь нужно убить дракона, принести рог единорога и глаз циклопа, чтобы пройтись по дебагу. Инструменты, которые нам давали в университете, здесь неприменимы в принципе, те же среды программирования.

Первые несколько дней на работе у меня был шок. Огромный поток информации. Просто сносит. Как будто перед тобой матрица, и ты пытаешься в ней разобраться. Это очень круто и до сих пор все идет в таком высоком темпе: что ни день, то задача, которая прям горит.

Погружение в работу было простым: вот тебе список баг, решай. Я попал в кору (фреймворк COREmanager, на котором построены продукты ISPsystem. — Ред.). Это сейчас новенькие разрабы получают доступ к виртуальным машинам, Jenkins и остальному необходимому. А мне дали ноут и сказали: если нужен продукт, собирай с нуля.

Это был кошмар: вот пакетики, потом эти пакетики локально складываешь, потом проходишь девять кругов ада, чтобы их поставить. Пришлось пройти весь путь от сборки до запуска панельки. Было очень сложно, но дало понимание взаимодействия всего со всем. Потому что писать код одно, а понимать систему совсем другое.

И вот этого совершенно нет в универе: понимания технологий, которые сопутствуют программированию.

Работа в команде

Мне повезло, что сразу попал в кору. Опыт людей, которые тогда там работали, уходит в небо.

Помню, как ведущий разработчик впервые при мне открыл консольку, хоп-хоп-хоп — все настроил. Это было так клево и красиво, что клавиатура плавилась под его руками. Да если так печатать, думал я, система не успеет обработать. Неизгладимое впечатление.

Было сложно, но мне помогали. Подзадоривал в основном Леня — наш девопс, который не любит, когда его так называют. «Ты не знаешь, как это работает? — язвительно спрашивал он. — Пфф!» Перед устройством сюда я был на «вы» с Linux, Леня убедил меня поставить Gentoo на свой ноут. Три месяца страданий, и я нормально дома пишу диссертацию, пользуясь инструментами этой оси. Теперь смело могу называть себя гентушником и уверенным пользователем Vim.

Поначалу мне постоянно возвращали баги с ревю, требующим исправлений. Сделаешь портянку, а тебе говорят: вот это, вот это и это исправь. Пишешь с нуля новую. Тебе опять говорят: вот это и это исправь. Снова переделываешь. Довести багу до тестирования было настоящим испытанием. И это классно. У меня остались черновики с описанием лучших практик.

Меня не били по рукам, мне объясняли, посвящая в идеологию программирования. Например, что код должен быть читаем без комментариев (скажи я это своим преподавателям, их бы порвало). Да, конечно, комментарии нужны, но у нас установка писать настолько красиво, настолько чисто, чтобы можно было открыть код как книгу и сразу понять, что происходит перед глазами.

Через три месяца закончился испытательный срок, и со мной снова разговаривал Игорь. Он спрашивает: сколько ты баг решил — одну, две? А я выкатываю ему что-то около пары десятков (там баги-то были из разряда исправить сообщение, но для меня даже это было мегатаской). Игорь сказал: хорошо, работаем дальше. Мне повысили зарплату, но деньги были не так важны, как возможность развиваться.

Первая серьезная задача

Со временем я начал работать быстрее, оптимизировал процесс, оброс скриптиками (один из них ходит за меня в Jenkins). Задач стало больше, и они стали сложнее. Не было и нет люфта, ощущения, что перерос.

Потом в моей жизни случился DNSSEC — расширение текущей системы доменных

имен, которое нужно было прикрутить к коре. Секьюрность, один ключ цепляется за другой, все это делается с пятым — десятым. Это была моя самая любимая фича. Почему любимая? Потому что я многому научился через нее.

Было много холиваров о способах изучения программирования. Можно книгу прочитать, но вряд ли получится применить знания из нее. Можно пройти курсы, где есть практика, но она оторвана от реальных проблем. А здесь реальные задачи, технологии, доступы к ним. Для DNSSEC мне дали белые IP-адреса, серверы, живые доменные имена второго уровня. Эти вещи студентом нигде не возьмешь, даже в универе. А здесь сколько нужно, столько и дают. Не приходится, в общем, через замочную скважину клеить обои.

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

Иногда было тяжело разобраться. Вообще-то первым делом мне сказали, что здесь любят людей, которые могут нагугливать. Но когда Google как последняя тулзятина не помогал, давали дельный совет. На самом деле очень клево, когда у коллег есть ответы практически на все вопросы. Начинаешь сам к этому стремиться.

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

Любовь к красивым задачам

Потом в моей жизни появился биллинг (BILLmanager, панель для автоматизации хостинга. — Ред.). Соседнему фронтенд-отделу нужно было срочно решить группу задач. Меня привели и сказали: «Это биллинг, разбирайся». Я посмотрел и офигел. По сравнению с корой, это гигантский продукт.

Он выдает и воспринимает огромные портяны информации. В коре все было нативно понятно. Биллинг совсем не интуитивно понятен. Да, когда с ним поработаешь, многое становится логичным и естественным. А поначалу смотришь: «Где тут тасочки для нубов?».

Снова пришлось вклиниваться, решать задачи. Здесь мне помогал тимлид Саша, тоже невероятный человек. У него огромное количество кода просто в голову записано. Какие-то чертоги разума: называешь директорию, файлик, строчку — он ее диктует. Я утрирую, конечно, но складывается такое впечатление.

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

Красивые задачи — как поход в театр. Смотришь постановку, автор которой что-то хотел донести. Можно его посыл не понять (бывает). Но если поймешь, от этого понимания прёт. Ты прям тащишься и говоришь: «Еще!».

Послевкусие — это самое классное в задаче. Ты ее решал, ты с ней страдал, ты ее заканчивал. Ты испытывал счастье, когда ее передали в тестирование. Но ты еще и вынес из нее что-то: или новый скилл, или какую-то хитрость, или новое знание о мироздании. Отдельное удовольствие узнать, что она ушла в релиз и ей пользуются клиенты. В такие моменты ощущаю причастность к чему-то важному. В будущем, лет через пять, я бы и сам хотел делать совершенно новые наши продукты.

Круг интересов и друзья

Кто-то считает программистов социофобами, но я не думаю, что они не любят общаться или боятся людей. Просто круг интересов немного отличается от повседневных и бытовых вещей.

Когда задачи айтишные, мир IT заполняет, обволакивает. Не пойдешь же к друзьям со школы или садика рассказывать, как человек упарывается с какими-нибудь bash-скриптами, какие сущности припиливает, когда там нет объектно-ориентированной реализации. При этом сам прешься с этого, тебе это нравится и хочется обсуждать. Но заговори с кем-нибудь об этом, и люди посчитают, что ты какой-то странный.

Я зову людей работать со мной в ISPsystem, потому что мне не все равно кто рядом. Мне нравится мое окружение сейчас. Я знаю людей, которых хотел бы видеть каждый день. Вот и зову, чтобы садиковских товарищей перетащить сюда и не быть социофобом, а спорить с друзьями, какой ключ шифрования лучше.

Учеба

Универ дает базу. Учит работать с информацией: адекватно воспринимать, заучивать, держать необходимое под рукой. Плюс учит понимать процессы. Лабы хоть и не давали шаблон решения задач, но учили такие шаблоны строить.

Очень пригодилась общая терминология. Ты что-то где-то слышал, что-то видел — политеховские преподаватели любят углубляться в узкие темы. И бывало на работе я слышал задачу и говорил: «Во, да я про это курсачик сдал!».

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

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

Совет выпускникам

Можешь, не можешь — иди и пробуй. Смотри на свои силы, получай обратную связь, развивайся за счет нее.

Не зарывайся в курсы, предподготовку. У меня есть группа друзей, которые решили сначала подучиться, а потом уже устраиваться. Так лучше не делать: теряется время и то, чему научил вуз.

Как ни крути, а университет много тебе дал. Со временем это пропадает и погрузиться в тему еще сложнее.