🗣 Путь в Java, или Зачем нужен ментор: интервью

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

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

А.М.: Привет! Я сейчас занимаюсь разработкой middleware-сервисов одного крупного коммерческого банка России. В моих руках изменение всяких важных пользовательских данных вроде паспорта, номера телефона и кодового слова.

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

Б.П.: Не поделишься, о чем этот хобби-проект?

А.М.: Мы с женой хотим открыть зоогостиницу, в которой можно будет дистанционно следить и ухаживать за своим питомцем. Сам проект — полноценная CRM для управления бизнес-процессами в зоогостинице плюс интеграция с IoT-устройствами.

Б.П.: Какое у тебя образование? Как ты пришел в профессию?

А.М.: У меня высшее образование по специальности “Программная инженерия”, я получил диплом уже после того, как начал работать. В универе я лепил всякие поделки на С++ и Go, искал себя в разработке инди игр на UE и Unity.

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

Преподавал на курсах по С++ для школьников и студентов при универе, потому что единственное, что я умел это много разговаривать и чуть-чуть писать на плюсах. Но преподавание позволяло получать хоть какие-то деньги.

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

Б.П.: Почему ты выбрал Java? Как человек, который преподавал C++, не мог бы ты сравнить для новичков два этих языка?

А.М.: С++ суров, в нем не место мальчикам, только суровые бородатые мужчины. Java открыта всем и каждому, приятно улыбается каждому встречному и прощает отсутствие базы по Computer Science. Можно учиться многим вещам на практике, а потом уже узнавать о том, как же оно на самом деле работает внутри.

Я выбрал Java, потому что раньше у меня не было бороды :) А если серьезно, то я не понимал как развиваться дальше и найти хорошую работу, пришлось прибегнуть к помощи хороших людей, но они обучали только Java.

Б.П.: Нас с тобой свели Java Mentor, так что если ты не против, давай немного поговорим о них. Ты учился на курсе по системе оплаты после трудоустройства. Не было ли каких-то опасений на этот счет, когда поступал?

А.М.: Конечно были опасения, формат оплаты после трудоустройства не то, что не пробовал никто из знакомых о нем даже никто не слышал пару лет назад. У JM еще не было так много отзывов, да и по сути я был в числе тех, на ком этот формат тестировали. Мои опасения развеял Герман, он чертовски убедительно умеет доносить свои мысли. Да и договор мне показался не самым страшным.

Б.П.: Сколько длились курсы и что ты на них изучал? Почему выбрал именно их?

А.М.: Призываю сюда сотрудника JM, который бы с праведным гневом бросился объяснять, что это не курсы. Это персональный менторинг. Я учился быть универсальным солдатом энтерпрайза: Java, Spring, SQL, Git, Agile. Достаточно глубоко, чтобы свободно плавать в теме и учиться самому при необходимости в будущем, но без копаний в недрах технологий и фреймворков, чтобы уложиться плюс-минус за полгода.

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

Б.П.: Сколько часов в неделю уходило? Что было самым сложным?

А.М.: В неделю учебе уделял точно больше 20 часов, даже ближе к 30, наверное. У меня нет проблем с мотивацией, даже наоборот. И самым сложным было успевать (и не забывать) справляться с ежедневными делами: работа, учеба, быт.

Б.П.: Как ты оцениваешь уровень преподавания? Какие основные плюсы и минусы?

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

На мой вкус, было бы неплохо еще готовить студентов к рабочим реалиям, которые связаны с DevOps. Хотя бы чуть-чуть: небольшой CI-пайплайн настроить, «репу » с артефактами к проекту прикрутить. Да даже задеплоить свой недурно написанный апликейшн хоть куда-нибудь и столкнуться с проблемами, которые неминуемо при этом возникают.

Б.П.: Чем закончилось обучение? Ты получил какой-то профит от курсов, кроме самих знаний? Может быть, с кем-то познакомился или приобрел какие-то другие навыки?

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

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

Б.П.: Как быстро нашел работу? Сколько было собеседований?

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

Б.П.: Какие самые каверзные вопросы были на собеседованиях?

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

Б.П.: Кстати, а если серьезно — на что стоит чаще обращать внимание Java-джуониром для подготовки к собеседованиям?

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

Б.П.: Как юридически оформлена постоплата курса? За какое время ты его оплатил?

А.М.: Юридически договор не сложный, на мой взгляд. Условия такие же простые, как о них изначально заявляют: процент от зарплаты при работе в IT в течение двух лет после обучения и успешного трудоустройства. Я, честно, не представляю как доказать в рамках договора, что ты прошел n собеседований и тебя никуда не взяли, не знаю случалось ли такое с кем-то, но это единственный момент, который меня в нем на самом деле смущал.

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

Б.П.: Поговорим о языке. Java всё ещё топ? Что думаешь о Kotlin и других современных альтернативах?

А.М.: Последнее время люблю писать на Kotlin, но если честно признаться: я далек от Kotlin-евангелистов и не использую его мощь на полную. Для меня это просто немногословная, удобная обертка на Java с кучей простых и понятных фич, которые хотелось бы видеть в Java (но их нет ): ). Очень жду, когда в Java завезут nullable-типы, extension’ы и аргументы по умолчанию.

Б.П.: Что посоветуешь почитать начинающему Java-разработчику?

А.М.: Для совсем начинающих я бы порекомендовал Шилдта, в его книгах грамотно структурирована информация. Мне когда-то отдельные главы помогли разобраться с исключениями, коллекциями и многопоточностью. В частности ответить на вопрос «Зачем?», потому что «Как?» я уже знал.

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

Раджпут Динеш. Spring. Все паттерны проектирования
Раджпут Динеш. Spring. Все паттерны проектирования

Б.П.: Если бы ты начинал учиться программированию сейчас, какой бы язык выбрал?

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

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

А.М.: В работе использую то, что приходится. Большие дяди, которые делают бизнес, не очень любят новаторские идеи. От проекта к проекту технологии, конечно, разные, но в основном все около стека Spring, Webflux, Postgre, Mongo, Kafka, Redis.Я поклонник АОП, но мне не дают внедрять его где попало (и правильно, хе-хе), поэтому развлекаюсь исключительно для себя. Надеюсь, скоро явлю миру удобный АОП-стартер для интеграционного тестирования.

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

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

Б.П.: Напоследок, какие у тебя дальнейшие планы?

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

Б.П.: Спасибо за интервью! Могут ли читатели Библиотеки программиста сами задать вопросы? Не против ответить в комментариях?

А.М.: И вам спасибо за внимание. Конечно не против, жду ваших вопросов.

МЕРОПРИЯТИЯ

Комментарии

ВАКАНСИИ

Добавить вакансию
Менеджер проектов
по итогам собеседования
Senior DevOps Engineer
от 6000 USD до 9000 USD

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ