История прокурора, который стал Java разработчиком. “Если заставляешь себя программировать, то лучше не заниматься этим”

Вячеслав Круглов из города Счастье работал прокурором в Новоайдарском районе Луганской области. В 2014 году он решился на перемены: уехал в другой город, попробовал открыть свое семейное дело, а после стал учить языки программирования. Для DOU он рассказывает о том, как и почему из прокурора переквалифицировался в Java Developer, а также с какой мотивацией лучше идти в IT.

Вячеслав с женой

О работе в прокуратуре

Когда я определялся с профессией, юриспруденция считалась перспективным и серьезным делом. Во многом на мой выбор повлиял пример старшего брата: он учился на программиста, но потом перешел в юриспруденцию. В 2004-м IT было не настолько популярно и понятно. Поэтому еще в конце школы я выбрал гуманитарное направление и поступил в Национальный юридический университет имени Ярослава Мудрого (Харьков).

Сам я из города Счастье Луганской области. Закончив университет, по распределению попал в прокуратуру Новоайдарского района Луганской области. Там проработал два года — до середины 2014-го.

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

На момент, когда начались активные боевые действия, я жил в Счастье с женой. Она сама из Луцка, но после свадьбы забрал ее к себе. Тогда жизнь была примерно следующей: ехал на работу — мне навстречу танки, ехал с работы — танки возвращались, снова мне навстречу. Мой дом находится около леса, и вся канонада пролетала рядом: могли ночами не спать, стало развиваться ПТСР (посттравматическое стрессовое расстройство).

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

Первая попытка сменить профессию

После увольнения из прокуратуры я еще попробовал поработать в профессии «с другой стороны»: мы с братом открыли адвокатское объединение «ВЕК» в Днепре. Было пятеро сотрудников, я работал помощником адвоката. Мы столкнулись с частью проблем, на которые я не обращал внимания на должности прокурора. Например, с непрофессиональностью судей, игнорированием наших запросов у органов.

Мы решили работать только «в белую», из-за чего в итоге не могли прогнозировать развитие дел. Имея всю доказательную базу, закрывали дела не в одно заседание, а за полгода. Это очень выматывало, ведь клиенту сложно объяснить, в чем проблема: под конец процессов они уже смотрели на нас как на обманщиков или вымогателей денег.

В тот период понял, что мне не подходит, когда результат работы на 90% зависит от посторонних безразличных людей. Через полгода решили закрыть свое дело. Накопленных денег становилось все меньше, и мы переехали к родителям жены в Луцк. Она уже была в положении, в Счастье лучше было не возвращаться.

Обучение программированию

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

В общем, решал, куда податься дальше. Мне 25 лет, за окном 2015 год, программирование было на хайпе. И как-то на семейном совете с женой подумали, а почему бы не попробовать программировать? С компьютерами я с детства был на «ты»: брат научил персоналить и настраивать системы, так что в универе на курсе я часто выполнял функции сисадмина.

Изначально попробовал учиться сам: осваивал HTML, CSS по книге Head First. Было прикольно и интересно как для начала работы с кодом. Научился писать простенькие странички, но понимал, что дело шло слишком туго — стал искать курсы. Выбрал программу в «ШАГе»: она была рассчитана на 2,5 года, по моим представлениям, для глубинного понимания этого времени должно было хватить. Первый семестр были дебри: C, C++. Решали задачи, знакомились с синтаксисом.

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

Окончив первый семестр в «ШАГе», я решил сменить школу. На практике оказалось, что это был больше ознакомительный курс, который лучше всего подходит студентам, у которых есть время на «раскачку». Мне тянуть было некуда. И вместе со школой я сменил направление. Немного промониторив, понял, что на С++ порог входа очень высокий: я боялся не потянуть. Остановился на другом перспективном направлении — Java. Плюс именно по этой теме было много образовательных материалов в интернете и даже на русском.

Следующей моей школой стала GoIT: пошел учиться на Java-разработчика с перспективой реализовать реальный проект, который можно будет показать на GitHub. Но снова все получилось не так, как задумывал. В ходе обучения оказалось, что онлайн-курс на момент старта был готов только на половину. Поэтому было много задержек, связанных с подготовкой материалов. Все растянулось, и через год курс я все-таки закончил. Кстати, по моим подсчетам, до конца дошло в лучшем случае 20% от стартового состава. Мы прошли от базового синтаксиса и фреймворков Spring, Hibernate, паттернов проектирования, фронтенда до работы с данными.

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

Только в октябре 2016-го, где-то через год после старта учебы, я начал искать вакансии. Разослал около 50 резюме: из всего списка мне ответили только SoftServe. И то это были курсы для джунов с перспективой трудоустройства. Ближайший офис находился в Черновцах. Но, учитывая мою «популярность» среди работодателей, я решил попробовать. Сдал английский, прошел тестовое (решил ряд задач по программированию) и техническое собеседование. Да, чтобы попасть на обучение, нужно было постараться.

В итоге меня взяли. Я оставил семью в Луцке, а сам поехал в Черновцы. Обучение длилось три месяца, и семью перевозить не хотел, потому что было непонятно, трудоустроюсь ли я после. К тому времени у меня уже родилась дочь и закончились финансовые сбережения: так что кататься по стране не хотелось. В Черновцах я жил на минимуме, очень экономно. Снимал жилье где-то за тысячу гривен. Но по факту в квартире меня почти не было: я уходил на курсы в 8 утра и возвращался в 8-10 вечера. Несмотря на плотный график, конечно, раз в две недели или месяц ездил в Луцк к семье.

В SoftServe мы работали с Full Stack, также задействовали фреймворк фронтенда Angular. На обучение в компанию брали людей хоть с каким-то опытом, чтобы посмотреть на нас в деле и отобрать для дальнейшей работы тех, кто быстро обучается, хорошо работает в команде.

Нас, студентов курса Java, было пятеро. Мы работали не со стандартным Full Stack, где знания Node.js достаточно. В нашем формате Full Stack — это Java на бэкенде, а на фронтенде — Angular. Это более сложный формат, поскольку мы совмещали две огромные экосистемы — Java и фронтенд. Использовали стандартные фреймворки: на бэкенде для Java — Hibernate, Sping с кучей функциональностей (Spring Security, Spring Data). База данных — PostgreSQL. А Angular мы учили заново, это был второй язык.

Так что практически все было в новинку и сложно: по традиции я учился не только на курсах, но и дополнительно, сам. Если раньше занимался по 5 часов в день, то теперь уделял до 10 — с перерывами на еду и сон.

После такой школы проще изучать новые языки и фреймворки, быстрее схватываешь. Также учились работать в команде. Например, работали с репозиторием, поскольку проект вели впятером, распределяли задачи и сами освоили Jira.

Kids-day, организованный SoftServe

Обучение самостоятельно VS курсы

Я считаю, что самостоятельно освоить программирование можно. Главная загвоздка — время. Даже несмотря на все помощники: те же советы от Senior на DOU, цикл статей «Пособие для будущего Java-разработчика», обучающие видео на YouTube, — новичку сложно освоить абсолютно новую сферу. Языки программирования выглядят абстрактно и непонятно: с какой стороны подступиться, что учить дальше, на что обратить больше внимания, а что вовсе выкинуть. И все эти разбирательства занимают время. В общем, главный плюс курсов — структурированность обучения. Поэтому с ними прогрессируешь быстрее, чем обучаясь самостоятельно.

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

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

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

Кстати, не советую менять профессию, не уволившись со старой работы. Много ребят с курсов пытались совместить работу и обучение программированию, и у большинства ничего не вышло. Они быстро перегорели и бросили обучение. Потому что: а) несколько часов на программирование в день — это мало; б) вы будете учиться после работы, которая выматывает. Обучению стоит уделять максимум времени и сил. А с параллельным занятием их просто не будет.

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

О мотивации

На одном из потоков, где я учился программировать, мы стартовали группой в 100 участников. К финалу нас было не больше 20. Почему так? Часть посыпалась из-за дисциплины и потому что пыталась совместить работу с учебой. Другие поняли, что программирование не для них.

Часто вижу вопросы об ІТ на форумах: как найти силы, чтобы себя мотивировать? Стандартный ответ: если заставляете себя программировать, то лучше не заниматься этим. Согласен на все 100%. Оглядываясь назад, понимаю, что все пути в карьере, связанные с юриспруденцией, были неправильными:

  • мне не нравилась эта сфера;
  • я пошел, потому что туда шли все;
  • не хотел углубляться, расти.

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

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

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

Первые проекты

В общем, сбережения заканчивались, я не работал, поэтому к концу обучения был гол как сокол. И это только мотивировало показать себя с лучшей стороны. После обучения в SoftServe меня взяли на enterprise-проект в медицинской сфере. Как новичку мне было сложно.

Когда работаешь над каким-то «проектом» во время обучения, за который не несешь ответственности — это одно. Когда приходишь на проект, где понимаешь всю ответственность (за это клиент платит деньги) и видишь, чем могут обернуться ошибки, — другое, это осознание затрудняет работу. И хотя джунам не дают все и сразу, не грузят сложными задачами, все равно первые шаги воспринимаются гиперсерьезно.

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

Но у нас была классная команда: после прокуратуры атмосфера была вообще глотком свежего воздуха. Все поддерживали, объясняли. Я стал быстро развиваться, и это был рай для меня. После обучения проработал в Черновцах чуть больше года. Потом мы с семьёй перебрались в Киев. У нас получилась огромная история путешествия по Украине: перевезли все вещи в Днепр, потом переехали в Луцк, затем чуть больше года пожили вместе в Черновцах, после чего переехали в Киев.

Работа в прокуратуре VS работа в ІТ

Юриспруденция, особенно работа в прокуратуре, и IТ кардинально разные. Подходы к решению и постановке задач, а также сами принципы работы отличаются.

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

В целом я не расстраиваюсь, что из работы в прокуратуре не удалось применить никакой опыт. Там токсичная среда, и здорово, что я не перенес эту токсичность в свои первые коллективы.

Да, в IT по-своему непросто: нужно много работать. Из-за этого часто прихожу поздно домой, не успеваю ходить в зал (а вместе с сидячей работой это обязательно аукнется), бывают переработки. Часто плюсом IT считают возможность работать удаленно. Я не верю в такой формат. Да, есть люди, которым заходит. Но меня домашняя обстановка расслабляет. Особенно если дома дети, то эффективность близится к нулю.

Безусловно, в ІТ я вижу такие плюсы:

  • В основном проблемы на работе зависят от тебя. Машина почти никогда не ошибается, у нее не бывает плохого настроения, она не хочет от тебя взятки. Поэтому, если код не работает или есть другая неполадка, нужно искать ошибку в своих действиях. И в этом смысле ты не зависишь от других людей.
  • Люди в ІТ более счастливые. Конечно, это связано с высокими зарплатами: они могут себе больше позволить. Но согласитесь, приятнее работать, когда все счастливы и настроены позитивно.

Но акцентирую: вы вряд ли полностью будете наслаждаться плюсами, если специфика работы не для вас.

О дальнейших планах

Так получилось, что у нас теперь вся семья работает в ІТ: я и брат — Java-разработчики, моя жена — QA, жена моего брата сейчас Full Stack фронтенд-разработчица.

Семья Вячеслава и его брата. Пока что только дочка не переквалифицировалась в ІТ

Сейчас работаю в продуктовой компании SDK.finance. Занимаемся SaaS (Software as a Service) финтехпроектом. Считаюсь уверенным мидлом, ведь в программировании уже больше трех лет. Но это все относительно: потихоньку выполняю и задачи для Senior. Например, пишу модули с нуля. Также работаю с синьорами: комментирую их работу, вместе обсуждаем проекты. Хочется верить, что мой уровень уже приличный. Но все равно постоянно нужно много учиться и читать, чтобы быть в теме. Кстати, мне больше заходит книжный формат. Для многих лучше и быстрее видео, но, как ни странно, я справляюсь и успеваю все усваивать по книжкам, хотя плюсы видеоформата тоже понимаю.

Переход из аутсорса (SoftServe) в продуктовую компанию произошел сам собой. Конечно, не без лайфхака с зарплатой: когда при переходе ее повышают. Но это стандартная практика — не знаю никого, кто менял работу без изменения зарплаты :) Но не это главное. Мне показалось, что в аутсорсе мне уже не было у кого перенимать опыт (да, самоуверенное заявление). Проекты повторялись, и я будто застопорился в развитии. А именно это мне было интересно: развиваться, осваивать новые задачи.

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

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

Еще с SoftServe я работаю с Java enterprise (и сейчас продолжаю в SDK.finance): большие проекты, огромный объем информации, многие вещи нужно держать в голове, и это нелегко. Enterprise — значит, какая-то огромная и сложная система. Например, банковские или телеком-приложения, которые требуют много усилий, экспертизы и так далее. Нужно разобраться в доменной области, как и зачем работает приложение. Это требует многих скиллов. Приложения иногда пишут годами, потом вносят модификации, улучшают... Это огромные массивы кода — тысячи классов и миллионы строк.

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

Похожие статьи:
Це перший із серії матеріалів, присвячених розробці безсерверних веб-застосунків на Python. З погляду розробника, безсерверні...
Всем привет. В данной статье хочу познакомить вас с новым и интересным механизмом для анализа поведения пользователей...
Бородате слово Senior викликає жваві суперечки і є джерелом жартів, та все ж майже всі хочуть мати цей префікс. Мовляв,...
В сети появились слухи о новом мобильном чипсете Qualcomm Snapdragon 830 (MSM8998), который станет наследником решения Qualcomm Snapdragon...
MOTs are needed for nearly all vehicles in the UK, but there are different classes for different types of vehicle. For example, for a normal family car that can carry up to a maximum of eight passengers, a...
Яндекс.Метрика