Всем ку!

Эта статья является текстовой адаптацией одного из самых популярных интервью на youtube-канале "АйТиБорода" - интервью про Java (более полумиллиона просмотров). Если кто-то не знает, на этом канале несколько раз в месяц появляются интервью с айтишниками о технологиях, ЯП и персоналиях.

Приятного прочтения!

— Привет, Рома! Расскажи, где ты учился и как вообще попал в IT?

— У меня на самом деле два образования: одно незаконченное высшее, второе — законченное. Законченное высшее — техническое, но абсолютно никак не было связано с компьютером.

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

— А в каком году ты в университет поступал?

— В 2002 году поступал. В 2007-м окончил и вот после этого где-то восемь с половиной лет в разных сферах себя пробовал. А в программирование пришёл на самом деле абсолютно случайно. Конкретный день уже не могу вспомнить — всё-таки это не вчера было, где-то посреди недели. Мне на работу надо было ехать по кольцевой минуты три, наверное. Проснулся пораньше, и как-то очень не хотелось ехать. Я тогда курил ещё. Вышел на балкон, закурил, взял ноутбук, открыл его и решил: надо чем-то себя занять. Потому что на тот момент у меня была только работа, дом, работа, дом.

Ну и решил: дай попробую себя. Может быть, какие курсы. Ну, хобби себе какое-нибудь найду. Открыл ноут, и мне в принципе было просто всё равно: парапланирование, вязание крестиком, вышивание — без разницы что. Но так уж получилось, что тогда шла довольно активная агитация IT-Академии (одна из школ в Беларуси). Вот везде эта всплывающая контекстная реклама была. И как раз всплыло в тот день что-то типа: «Хочешь зарабатывать миллион миллиардов? Приходи к нам, мы тебя научим!» Я решил: почему бы не совместить приятное с полезным? «Миллион миллиардов» всё-таки заманчиво звучало. Вот так я и попал в IT.

Я решил: почему бы не совместить приятное с полезным? «Миллион миллиардов» всё-таки заманчиво звучало. Вот так я и попал в IT.

Просто пришёл на курсы. Как-то отучился. Причём первый курс в академии действительно именно «как-то отучился». Еле-еле окончил. Из нашей группы сертификаты получили человека, по-моему, четыре из 12.

— А откуда желание что-то поменять вообще появилось?

— Как-то так сложилось, что раз, наверное, в года два-три я менял место работы. В одной компании поработал по распределению два года, потом три-четыре месяца ещё поискал новое место. В разных местах: и в «Газпром» попал наш белорусский, и в «Амбассадор» поработал — это минский завод виноградных вин. И на EnTiti поработал.

— Короче, это была запланированная смена работы?

— Да, через определённый промежуток времени мне нужно было что-то менять. Сейчас в IT, слава богу, можно менять проекты, не уходя из одной компании в другую. А тогда это было достаточно проблематично, потому что в организации есть одна должность, и если бы я сказал: «Не хочу больше быть логистом, сегодня хочу работать бухгалтером», — меня бы просто не поняли. Всё равно бы пришлось искать новое место. Поэтому такое желание возникало само собой периодически.

— Нашёл курс и сразу пошёл на Java? Это осмысленный выбор?

— Это было похоже на то, как я в принципе решил попасть в IT. Шёл набор на курсы с таким достаточно абстрактным объявлением: «Хочешь стать программистом?» Зашёл к ним на сайт, и на той неделе стартовало много курсов: JavaScript, Python, PHP.

Тогда я думал, что PHP — это круто. Я с ним ещё когда-то там в школе и на первом курсе более-менее работал: какие-то сайтики делали. Подумал: ну вот тут я, наверное, что-то буду понимать. Потом смотрю — JavaScript. Думаю, ну про JavaScript я слышал: там HTML, CSS, JavaScript — ну вот слова из одной области какие-то, думал. Но эти курсы шли 11-13 дней от того дня, когда прочёл само объявление. А Java стартовал через три дня. Решил: ну попробую, может быть, есть место в группе. Позвонил, и, действительно, место в группе было. Причём одно. Вот так. Поэтому Java (смеётся).

— Страха от такой кардинальной смены рабочей атмосферы не было? Многие боятся идти в программирование: думают, что там много математики нужно, что это сложно. Было у тебя такое?

— Не, наверное, не было. Я ж говорю: пошёл на курсы, а они же начальные. Я понимал, что математика мне особенно не понадобится. Мне было интересно узнать в принципе, что такое переменная и как это, когда нажимаешь кнопочку, а там — «Hello, world!» выскакивает. Не просто, как когда в блокноте что-то написал. Когда в первый раз написал свою первую программу «Hello, world!», понял: ну, всё просто, теперь я умею программировать.

Когда в первый раз написал свою первую программу «Hello, world!», понял: ну, всё просто, теперь я умею программировать.

— Думал тогда, что пойдёшь работать программистом? Или просто по приколу пошёл на эти курсы?

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

Наверное, с занятия пятого, когда я уже первый свой цикл написал, — калькулятор был, он алгоритм какой-то простенький считал, — просто запустил эту программу, шифтов 10-12. Мне не надо было мышкой нажимать на этот значок «play» зелёный в IDEA. И оно что-то мне посчитало и выдало на экран. Числа там рандомно генерились, и я заранее не знал, какой ответ будет. И тогда я решил: ну, а почему бы и нет? То есть я могу рандомно генерировать что-то. Если я здесь испортил программу, я могу портить программу и в коммерческих целях. Как-то так и повелось (смеётся).

Если я здесь испортил программу, я могу портить программу и в коммерческих целях. Как-то так и повелось.

— Сколько времени прошло со старта курсов до трудоустройства?

— С момента старта курсов и до осмысленного «куда я хочу попасть на работу» прошёл где-то год. Большую часть этого времени параллельно работал на основной работе. За два-три месяца (до окончания курсов) я уже уволился.

— Что занимало тебя весь этот год? Ты же, наверное, не только Java изучал?

— Понятное дело, что это не сухое изучение языка — везде нужны какие-то паттерны, какие-то решения. Если просто писать код, то это будет мало чем отличаться от обычной автогенерации того же кода в IDEA. Книжки читал. Есть, например, такая книга отличная — «Приёмы объектно-ориентированного проектирования. Паттерны проектирования», «Банда четырёх» (Gang of Four) написала.

Я пытался их (паттерны) понять. Мне сказали, что это отличная книга. Старшие коллеги говорят: «Почитай — будет полезно». Но эту книжку, я думаю, нужно было читать хотя бы после года, чтобы понимать, о чём там вообще написано. Но мне сказали, что будет полезно. И я её прочитал, но не всю. Наверное, только треть осилил. Понял, что дальше мне будет понятно ровно столько, сколько и сейчас. То есть ничего.[5]

— Из года обучения сколько заняли сами курсы? Весь год ходил на курсы и самообразовывался?

— Шесть месяцев заняли курсы. Когда закончил IT-Академию, у меня была конкретная цель — попасть в EPAM. Мне предлагали какие-то маленькие компании, типа на стажировки, а потом на трудоустройство. Но вот у меня знакомые работали в EPAM. И я много слышал о том, что это хорошая компания для становления: понимать сами процессы, бизнес-процессы. И да, там действительно довольно строго поставлены именно эти сами методологии. То есть цель была попасть именно туда.

Между окончанием курсов, IT-академией и началом внутренних курсов была достаточно большая разбежка по времени. Сразу попасть в лабораторию «епамовскую» я даже и не планировал, потому что нужны были какие-то знания. А я же говорю, окончил курсы. А вот как их окончил — сам не понял. Поэтому нужно было ещё что-то понять: сначала написать, а потом понять, почему это заработало.

— Но в итоге ты в «лабу» попал?

— Да, ну после их внутренних курсов я попал в лабораторию.

— И уже через «лабу» твоей первой работой стала EPAM?

— Да.

— Чем ты там занимался и сколько в целом проработал?

— В EPAM проработал где-то два с половиной года. Сразу попал в самый большой проект Thomson Reuters. Раньше это был просто такой проект на EPAM. Потом всё переросло в самый большой юнит. А сейчас Thomson Reuters — самый крупный заказчик. И так получилось, что я ещё попал в их самый крупный проект. Я даже и не скажу, сколько он уже пишется, сколько он в уже в активной разработке. Но когда я туда пришёл, я понял ещё меньше, чем я понимал на курсах и в лаборатории. Там всё было какое-то «своё». Мне сказали, что там будут классные технологии, стек такой большой… и фронт, и бэк, и Spring, и Hibernate, и EclipseLink есть.

— Короче, всё, что хочешь: облако, микросервисы…?

— Да. А когда ты только-только начинаешь, написал первое «Hello, world?», и думаешь: «Таак, чтобы дальше изучать?» Ну, наверное, machine learning!

Написал первое «Hello, world?», и думаешь: «Таак, чтобы дальше изучать?» Ну, наверное, machine learning!

— Или сразу ракету запущу на Марс?

— Да, в AI пойду что-то творить! Ну всегда такое желание есть. Вроде как недавно научился переменные складывать между собой. Всё, следующий шаг — написать свою нейронную сеть. Естественно, меня это так привлекло: столько технологий, столькому научусь! Меня заперли на этот проект. Я открыл и понял, что ничего не понимаю в этом. И где-то, наверное, месяцев семь я фиксил баги. Причём там даже это было делать проблематично, потому что проект большой: в организации работы использовали правильную методологию, поэтому чтобы просто исправить баг, нужно было и митинги, и апрувы получить. И шло это всё со стороны заказчика достаточно долго.

— Знаю, что в «лабы» EPAM-а очень сложно попасть, потому что там очень сильный отбор по английскому языку. У тебя с этим всё гуд было?

— В целом да. Я никогда не изучал английский язык целенаправленно. Он был в школе, и я иногда присутствовал на занятиях. И то, наверное, только половину времени. То есть языками никогда не увлекался, но так получилось, что я много игрушек в детстве повидал. И все же они в основном на английском были, потому что… ну потому что пиратские. Потому что лицензионные никто не покупал почти.

Это потом мне, естественно, сказали, что нужен будет английский. А изучать его мне особо негде было. Потому что подтягивать сразу и техническую часть, и часть с английским языком — проблематично. Высасывает очень много энергии. Я пытался просто книжечки читать и программировать. Если в одном шло хорошо, то в другом — уже не так хорошо. Поэтому я просто перевёл весь свой environment на английский язык, насколько это было возможным. Слава богу, у меня тогда уже был смарт-телевизор. Он перешёл на английский. И все программы, и плейлисты. Телефон тоже перевёл на английский. Литература тоже по максимуму смотрелась на английском. Ну и, понятное дело, что из Stack Overflow — это наше всё — тоже всё шло на английском.

Все три месяца, пока шли курсы, я, как мог, по максимуму тянул информацию для себя именно из англоязычной части интернета. Ну, наверное, помогло — более-менее собеседование прошёл.

— Сколько тебе было, когда начал интенсивно обучаться программированию?

— Мне было 28-29… наверное, 30 лет.

— Не было какого-то хейта в духе: «Куда ты попёрся?» Как к решению отнеслись родственники и друзья?

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

А вот на работе коллеги… В 18:00 часов заканчивалась работа, а в 18:30 начинались курсы — нужно было как раз полчаса, чтобы доехать. Вот там было много негатива. Мне говорили, что не получится: «Ну 30 лет. У тебя не тот склад мышления, там нужно образование…» — вот эти все стереотипы, что нужна математика, теория алгоритмов.

— Можешь показать им фак!

— Да! (смеётся). Ну вот «не тот склад ума, и вряд ли мне что-то это даст». Говорили, что курсы — напрасная трата денег и времени, что лучше бы я продолжал работать на прежнем месте. Я даже в какой-то момент к этим словам прислушался и пошёл по собеседованиям по своему предыдущему профилю. И слава богу, что меня тогда как раз кризис стукнул: в тот момент было очень тяжело найти работу — многим контракты не продлевали. В поисках работы прошатался по рынку в целом где-то месяца два. Меня не брали.

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

Потом взяли на одно место. И в принципе там даже достаточно неплохо было, сравнивая с моим предыдущим местом работы. Но в тот момент как раз позвонили из EPAM-а и сказали, что берут в лабораторию. Ну и, естественно, от первого варианта я отказался. В лабораторию меня брали на бесплатно, а там — за деньги. Но я подумал, что в EPAM может выгореть, есть какая-то перспектива. Решил: почему бы не попробовать, если берут? Пускай этот кризис пройдёт. Если что — найду себе потом работу. Слава богу, что-то отложить себе успел: на полгода или годик хватило бы.

— Когда переходил в EPAM и вообще в IT, рейт у тебя был, как у джуна. Сильно ли это отличалось от того, что ты зарабатывал на своей основной работе?

— Ну да, прилично.

— Были из-за этого опасения, что не туда идёшь?

— Опасений, наверное, не было, потому что к тому моменту мне уже начало нравиться. Уже не просто какие-то циклики писал, я уже мог сайтик написать. То есть мог написать и, так скажем, дать другим людям посмотреть, потрогать. Мне было очень интересно и по кайфу.

Что-то писал и понимал, что я делаю. Ну, начинал понимать, что я делаю. Появлялся интерес. У меня и сейчас нет предпочтений в плане «там на $500 больше платят — всё, надо идти туда». Абсолютно нет. Если работа интересна, коллектив хороший, то смысл её менять? По зарплатам в IT когда-то достиг психологической планки: если ниже, то будет какой-то дискомфорт, но тем не менее…

Сейчас HR-ры на собеседованиях очень часто спрашивают: «Что у вас на первом месте: зарплата, коллектив, проект, технологии?» И вот изначально — да, вопрос зарплаты был сверху, а потом опускался всё ниже и ниже. Мне настолько уже незначительно, слава богу. Но поначалу было дискомфортно, потому что зарплата отличалась не «на», а «в» раз пять, наверное, в шесть. Раньше доход от сезона зависел — я в торговле работал. Поэтому если там всё хорошо в сезон, тогда раз в пять.

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

— Хочешь сказать, что эйджизм сказывается на рейте?

— Не знаю. Я думаю, что, возможно, и так.

— То есть каких-то конкретных примеров на своём опыте ты не ощутил?

— Я как-то и не пытался особенно вдаваться вот именно в рамках Java.

— За два с половиной года в EPAM-e до кого успел дослужиться? Почему сменил работу?

— В EPAM-е есть строгая система рейтингов. Вот у меня был d2 — это Middle. Потом перешёл на проект и стал вроде как d2 key developer.

— У тебя d2 было с ходу после «лабы»?

— Понятное дело, нет. Первая возможность получить d2 появилась где-то через месяцев пять, но я пошёл получать только через месяцев девять. В EPAM очень интересная система: когда появляется возможность перейти на d2, можно было получить промоушен по тайтлу. Свой, скажем так, рейтинг. И к этому приурочивался промоушен финансовый. Наслушавшись своих старших коллег, сначала по максимуму получал промоушен финансовый: где-то технологии выучил, курсы закончил. Потом шёл на d2, к которому также прилагался промоушен.

— Лайфхак?

— Не знаю, насколько лайфхак, но меня как бы устраивало (смеётся). А ушёл просто потому, что проект Thomson Reuters — это большущий такой юнит. Очень тяжело было развернуться. Он давно был запущен, архитектура строго выстроена. И добавление новой функциональности было минорным, мало отличалось от уже существующей. Грубо говоря, полмодуля берёшь, копируешь и просто немножечко рефакторишь, меняя название.

— EPAM же большая, почему не перешёл из одного проекта в другой в рамках одной компании?

— Проект Thomson Reuters располагался прямо через дорогу от моего дома. Если нужно было к 9:00 на работу, то в 8:55 я выходил из дома: по переходу — и в бизнес-центр, где мы и располагались. И это определённый отпечаток накладывает: уже не хотелось куда-то час ездить. Это первая причина.

В здании находилось несколько проектов, и на все ходил собеседоваться. Они в принципе не сильно отличались по стеку, а в том момент для меня было критичным наличие прямо новых-новых технологий. Тогда я ещё не особо понимал в динамике и развитии проекта, насколько он интересен для инвестора. Будут ли туда какие-то новые фишки добавлять, что-то выпиливать, рефакторить. Может, там будут монолитные микросервисы как-то разбивать?

Мне был интересен Spring, Hibernate, но это стандартный стек. Плюс там по фронтенду можно было Angular какой-то себе выбрать. И вот так было примерно во всех проектах на Thomson Reuters. Это я уже потом понял, что так оно везде, но тогда искал чего-то такого прямо нового-нового и поэтому ушёл.

— Следующее место работы — Softeco. Долго его искал? Сколько собеседований прошёл, прежде чем устроился? По факту была первая полноценная сессия собеседования в IT?

— Нет, первая полноценная сессия собеседования была, опять же, для промоушена. К тому моменту в планах была свадьба. Мне уже не хотелось откладывать 80-90% зарплаты. Хотелось, чтобы было как-то посвободнее. Ну потому что и кушать хочется, и свадьбу.

Мне уже не хотелось откладывать 80-90% зарплаты. Хотелось, чтобы было как-то посвободнее. Ну потому что и кушать хочется, и свадьбу.

— Это в каком году?

— Это был последний год работы в EPAM. Тогда я действительно активно ходил по собеседованиям, собирал офферы. Но не для того, чтобы ими шантажировать… Я так, пришёл спросить, не хотят ли повысить зарплату. Мне сказали: «Ну как бы не то чтобы очень хотим». И тогда я уже сказал, что есть офферы.

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

— Не, я, конечно, не говорил, что хочу поднять оффер. Мне бы тогда сказали: «ну тогда не получится, мы вам просто не отправим оффер». Потому что смысл на меня тратить время, если я к ним не планирую идти?

— То есть ты юлил?

— Нет, я не юлил. Уже была идея сменить проект. Правда, вряд ли я там конкретную компанию рассматривал, но вот не исключал такую вероятность, если будет что-то действительно интересное. Иногда очень приятно просто пообщаться с HR-ом, с техническим специалистом. И вот ты уже понимаешь: а почему бы не сменить компанию? Здесь действительно может быть интересно и хорошо.

— Какие бы ключевые точки выделил в своём становлении тем программистом, которым сейчас являешься?

— Когда выбирал между фронтендом и бэкендом, тогда ещё заканчивал лабораторию, пошёл на первый свой проект — Thomson Reuters русский. И первые три месяца был очень воодушевлён новым проектом, новыми людьми и тем, что в продакшене. Работал усердно, а потом понял: как тут усердно не работай, это всё будет достаточно долго. Потому что и процесс согласования долгий и коды review — небыстрое дело. Хотелось найти себе увлечение, чтобы занять свободное время. И я решил посмотреть в сторону фронтенда.

Потому что исправление багов не очень мне интересно было. Потому что это и бэкенд и фронтенд. Там же юзер что-то не видит, например, во фронтенде, и для него уже это ошибка. А это ошибка, например, у меня на сервере. Вот чтобы до этого докопаться, мне было бы проще это сделать, если бы разбирался в том, что там происходит наверху. Сначала прошёл онлайн-курсы по JavaScript — не помню, как точно сайт называется. Более-менее понял, как эта штука работает, и решил попробовать ещё Angular, на тот момент уже второй.

— Уже лучше, чем первый.

— Ну, наверное. Я с первым вообще не имел дела. В лаборатории из нашей группы ушёл человек, который научился на «Джаве» и пошёл во фронтенд. Вот он тогда мне и сказал: «Второй Angular можешь посмотреть». Я посмотрел и даже написал несколько своих приложений. И в целом интересно было. Тот же, грубо говоря, опыт TypeScript.

— Но ты же остался в бэкенде?

— Да. Так вот потому я в нём и остался. После этого у меня была такая немножко смена деятельности модуля внутри моего проекта. Сначала работал над модулем, который уведомления рассылает, email и всё в этом духе. И перешёл на модуль поиска — это, понятно, более нагруженная система, и она постоянно задействована всеми другими модулями. Работы мне прибавилось. И, опять же, изначально это тяжело — многое непонятно.

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

И вот у меня диссонанс начал возникать. То есть год назад я начал учить Angular, вроде что-то из мира JavaScript, а потом мне говорят: «Можно учить Angular четвёртый, если хочешь апгрейдить, но там уже есть React». Думаю: ну ладно, хорошо, React, может, что-нибудь ещё из этого? Говорят: «Да! Вот сейчас как раз Nod.js, и на нём можно писать можно писать фронтенд, бэкенд». Короче, мне просто слов набросали и говорят: «Вот сейчас это модно». Год назад я даже слов ещё таких не знал. Подумал: хочу туда, где немножечко поспокойнее. И как-то так отошёл от фронтенда. Именно тогда решил, что Java всё-таки нравится больше. Там всё как-то постабильнее.

~~~~~~~~~~~~~~~~~~~~~~~~

На этом всё. Спасибо за прочтение, друзья! А вот и полная полуторачасовая видео-версия интервью. Приятного просмотра :)

P.S. Кстати, Рома сейчас активно занимается помощью в переквалификации всех нуждающихся из числа пострадавших от репрессий в Беларуси. Респект, мужик!