Из юриспруденции в Big Data-разработку

Путей много — как найти свой?

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

Если у вас есть друзья, которые тоже хотят начать программировать, но не знают, с чего начать, или переживают, что всё пойдет не так, — поделитесь с ними этим постом. Если очень стараться, то всё получится, и история Романа — тому пример.

oba0tbvbmhnp8w7cgipehbvxox4.png

Свой бизнес и работа по специальности


Я учился на юрфаке и параллельно — на третьем курсе — в бизнес-школе. Там было много теории и практики по созданию и развитию бизнеса. В то время я еще увлекался литературой о личной эффективности и психологии — книгами Стивена Кови, Эрика Берна, и читал истории известных миллиардеров: Ричарда Бренсона, Уоррена Баффета, Билла Гейтса. Вдохновившись книгами и тем, что рассказывали на курсах, я подумал, что любая задача мне по плечу.

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

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

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

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

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

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

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

Как я свернул на путь IT


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

У меня есть несколько друзей-программистов. Один мой друг, не имея профильного образования, научился программировать и стал успешным разработчиком — он создает сложные распределенные системы. Меня очень вдохновляла его история. Я понимал, что это реально, причем не в заоблачные сроки. Когда я работал юристом, коллеги говорили, что у меня хорошо получается создавать системы (например, для распределения работы между сотрудниками). Я думал, это не так далеко от разработки, и такая работа давалась мне легко. У меня возникла мысль: «Почему бы тоже не поучиться программировать?» Тогда я еще работал юристом, но чувствовал, что пора что-то менять.

Работа в IT представлялась мне более комфортной. Гибкий график, нет дресс-кода — все ходят в джинсах и футболках, много плюшек — в прямом и переносном смысле, привлекательные зарплаты, и спрос на специалистов всё время растет.

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

Программирование с нуля


Я стал искать курсы в интернете и наткнулся на JavaRush — там учат разработке с нуля. Начал проходить этот курс и параллельно работал.

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

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

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

Спустя полгода после начала курсов я понял, что хочу целенаправленно заниматься разработкой, и уволился с работы. Я переживал: мне было 28 лет, я бросил карьеру юриста и не знал, что ждет впереди. Мне хотелось поскорее освоить Java. Но, когда есть этот внутренний прессинг — нужно поторопиться, время уходит, — учиться становится сложнее, потому что стресс забирает много сил.

Друг-программист посоветовал прочитать книгу «Java: The Complete Reference». Она написана доступным языком и дает хорошую базу. По ней я тоже учился.

Несколько моих друзей-разработчиков работали в ЕРАМ, и от них я узнал, что компания проводит обучающие курсы по программированию. О компании и курсах были хорошие отзывы, и мне захотелось попасть на них. Пока я ждал нового набора, решил пойти на курсы по Oracle и Java в «Сбертехе». Нужно было пройти приличный отбор: из 130 желающих на курс взяли взяли 30 человек. Моих базовых знаний и небольшого опыта оказалось достаточно, чтобы попасть в их число.

Спустя некоторое время начался набор на курс по Java-разработке в тренинг-центре ЕРАМ. Я решил пойти и на него. Там отсев тоже был большой, нужно было пройти два собеседования — по телефону и очное. На интервью оценивали базовые знания Java, умение создавать несложную логику на ходу и проверяли уровень английского. В итоге меня взяли в тренинг-центр.

Я стал параллельно проходить два курса — в «Сбертехе» и в ЕРАМ. Вместе со мной в основном учились люди с техническим образованием. Были и те, кто уже поработал в тестировании или разработке. Я был не уверен в себе: мало того, что я пришел из совсем другой области — я был старше большинства ребят. Но мне очень хотелось закончить курсы и устроиться на работу. Поэтому всё мое время уходило на лекции и домашние задания. На курсах мы изучали основы объектно-ориентированного программирования, классы и методы в Java, знакомились с библиотеками и фреймворками, а в конце создавали клиент-серверное приложение на Spring и AngularJS.

Вперед, к новому


Летом 2016 года — спустя полгода после начала курсов — мне предложили работу в обеих IT-компаниях. Я выбрал ЕРАМ: хотел туда с самого начала, там работали мои друзья, и им нравилось.

Был интересный момент: когда курсы в ЕРАМ подходили к концу, у нашей группы спросили, кто хочет работать с Big Data. Подняли руки все, кроме меня. Я мало что знал об этом направлении, слышал, что работать с большими данными непросто. Плюс, у меня почти не было опыта разработки. Мне хотелось просто программировать на Java, больших амбиций не было.

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

Двухмесячный курс оказался насыщенным: мы знакомились с разными технологиями — Hadoop, Spark, Kafka, HBase, Elasticsearch, Ignite, Cassandra, Flink. Учились писать программы по обработке данных, узнали о виртуальных машинах, Docker-контейнерах и других вещах, которые нужны Big Data-разработчикам.

Потом на протяжении трех месяцев мы участвовали в opensourse-проекте по стримингу данных Flink — создавали новый функционал или исправляли ошибки. Это был интересный опыт: ты взаимодействуешь с людьми из других уголков планеты и участвуешь в разработке такой непростой системы.

В начале работы у меня был синдром самозванца. Со школы я привык быть лучшим: учился на отлично, был старостой в университете. А тут чувствовал себя худшим, потому что мало что умел. Но я всегда беру напором — просто прихожу и делаю, изо дня в день. Сначала я записывал разговоры с коллегами, когда мы общались по Skype, — чтобы лишний раз не переспрашивать. Со временем надобность в записях отпала. Я стал быстрее схватывать, лучше справляться с задачами.

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

В зависимости от проекта Big Data-разработчик может писать на Java, Python, Scala и ряде других языков. Так получилось, что на своих проектах я осваивал Scala и сейчас программирую преимущественно на этом языке.

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

Сейчас я разработчик уровня middle, и в моих планах — дорасти до проектного менеджера. Думаю, мне это будет близко. Я уже немного занимался менеджерскими задачами на проектах, и получалось неплохо.

Если вы хотите стать программистом


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

  • Базовый совет: идите не за деньгами, а за тем, что интересно. Прислушивайтесь к себе — что вы хотите делать? Это касается и выбора компании, и выбора направления, и даже выбора проекта — если он есть. Если будете заниматься тем, что нравится, все усилия окупятся.
  • Не пытайтесь освоить всё в одиночку. Задавайте вопросы, обсуждайте новую для вас область с теми, кто в ней разбирается или, как вы, только учится. Это поможет быстрее развиваться.
  • Визуализируйте свои идеи. Мне бывало очень трудно представить, как работает программа, и удержать всё в голове. Тут помогает визуализация — всей логики или ее части. Я пользуюсь инструментом draw.io. Там можно писать тексты, создавать блок-схемы, соединять их между собой — очень удобно.
  • Достаточно очевидный совет, но на самом старте может быть полезен: программируйте с помощью среды разработки. Когда после нескольких недель обучения я поставил IntelliJ IDEA, был приятно удивлён тем, как удобно и приятно работать.
  • Изучайте не только то, что нужно, но и то, к чему тянет. Если хотите переключиться или глубже разобраться в какой-то теме — не одергивайте себя. Не бойтесь сделать шаг в сторону. Так вы с большим удовольствием выучите базу, а если останутся пробелы — потом их заполните. Я запомнил слова из одного видео на YouTube: если вы листаете учебник по Java, листайте не куда нужно, а куда интересно.

© Habrahabr.ru