Kotlin — моя любовь, Java — моя судьба. История одного возвращения

от автора

Всем привет! Меня зовут Михаил, я главный эксперт в ОТП банке.

Несколько лет я мечтал поработать на Kotlin. Мне это удалось — был большой проект РЖД, я вкатился, писал код, радовался. Kotlin мне правда понравился.

Но давление менеджеров, нереальные сроки и просто выгорание вынудило меня выходить на рынок, и я пошёл искать работу… и тут меня ждал сюрприз. Вакансий, где нужен чисто Kotlin, в России — единицы. А те, что есть, чаще ищут Java/Kotlin с упором на первую.

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

Поехали!

!!!ДИСКЛЕЙМЕР!!!

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

Начало карьеры

Как-то давно я попал в IT совершенно случайно. Сидел, ел в Макдоналдсе (тогда ещё можно было), в период бигфеста выиграл курс по Kotlin-разработке на мобилках. Решил попробовать — хотя вообще не смыслил в коде. Начал учиться, пошёл на собеседование на стажёра… и получил отказ с формулировкой, которую запомнил на всю жизнь:

«Как можно не знать Java, когда пишешь на Kotlin?»

Тогда я, пошёл учить Java, попал на стажировку и с тех пор работаю Java-разработчиком. Но Kotlin меня всегда манил. Все вокруг говорили, что это «сахарная Java», а я смотрел на него и очень хотел попробовать на настоящем проекте.

Переезд с Java на Kotlin

Стадия 1 — выход на рынок и собес

В какой-то момент я решил сменить работу. Без разницы — Java или Kotlin, просто хотелось нового. Начал искать.

И тут мне пишет HR: «Проект в РЖД. Стек: Kotlin + Spring + jOOQ«.

Я загорелся. Kotlin хотел попробовать давно. А вот jOOQ смущал — я его вообще не знал. (Спойлер: зря смущался. Теперь я его обожаю.) Сказал HR, что Kotlin вообще не знаю, сказали, что у них такое бывает, но вопросы будут и по Kotlin.

Назначили собеседование. И тут я запаниковал: Kotlin-то я почти не знаю. Теорию кое-как подтянул, но для серьёзного собеса — точно не хватает.

День Х. Захожу. И…

…ноль вопросов по Kotlin. Вообще.

Через час после собеседования мне приходит оффер.

«Такое вообще бывает?» — подумал я.

радуюсь аферу

радуюсь аферу

Стадия 2 — вижу проект и не понимаю, что происходит

Все говорили: «да по сути это то же самое, что и Java». Попадая на проект и читая код — шок. Из всех слов я будто знаю только class, private и final. Остальное выглядело как магия: ?:, ?.let {} и непонятные by lazy — я чувствовал, что я попал на космический корабль, а не на проект РЖД.

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

Первые задачи — через слёзы. Но знаете что? Было ООООЧЕНЬ интересно. Потому что кода писалось реально меньше. Да, непонятно. Да, тупил на ровном месте. Эту стадию очень хотелось бы пропустить, но увы, она неизбежна.

чисто я в тот момент

чисто я в тот момент

Стадия 3 — кайфую

Примерно через два месяца я забыл, что вообще когда-то писал на Java. Серьёзно. Рука перестала тянуться к ;, голова перестала ждать getter/setter.

На практике выучил бОльшую часть синтаксического сахарка:

  • data class — и нет Lombok’а(понимаю, что в java есть прекрасный аналог — Record)

  • ?.let {} — и нет if (obj != null)

  • when как expression — и нет многоэтажных switch/case

  • Extension functions — пишешь "Kotlin".toSuperSugar() и кайфуешь, что не надо тащить утилитный класс

Я кайфовал. Не громкое слово — реально кайфовал.

Параллельно общался с бывшими коллегамиНекоторых надоумил посмотреть в сторону Kotlin.

В общем, я получил шикарный опыт. Язык мне реально зашёл. И я уже тогда думал: «На Kotlin хочу работать и дальше».

я под синтаксическим сахаром

я под синтаксическим сахаром

Стадия 4 — выход на рынок Kotlin

Спустя полтора года я понял, что надо уходить.

Давка со стороны руководства. Нереальные сроки. Полный треш в целом.

Я вышел на рынок с чёткой позицией: хочу остаться на Kotlin.

Искал вакансии: либо чистый Kotlin, либо Java/Kotlin с уклоном именно в Kotlin. Мобилки честно скипал — я веб-разработчик, не моё.

Искал очень долго. Месяцы. Десятки созвонов и собеседований.

И на каждом задавал один и тот же вопрос:
«В каком соотношении у вас Java и Kotlin? Где пишут на Kotlin?»

Ответы были двух типов:

  1. «Наша команда думает переезжать на Kotlin… но пока планов нет.»

  2. «У нас есть один сервис на Kotlin. Остальное на Java. Ну и новый код пишем в основном на Java.»

Всё. Ни разу не услышал «У нас полноценная Kotlin-команда, пишем только на нём«.

так и было

так и было

Я понял простую вещь: если хочу менять работу прямо сейчас — нужно рассматривать всевакансии. И Java, и Kotlin.

разница между вакансиями

разница между вакансиями

Kotlin — редкий зверь в российском enterprise.

Я начал искать на Java. Скрепя сердце. Параллельно всё ещё надеялся, что попадётся тот самый оффер мечты на чистом Kotlin.

Прошли недели. За это время ни одного собеседования на Kotlin. Ни одного.

Зато по Java были собесы. И в итоге — оффер.

Я принял его. И ушёл с Kotlin-проекта.

С надеждой, что ещё вернусь к нему когда-нибудь. Просто не сейчас.

Стадия 5 — возврат к истокам

Вернувшись на Java, я поначалу думал: «Всё, не смогу долго. Kotlin зашёл куда больше».

Начал писать нехотя. Раз задачка, два задачка, три задачка…

И вдруг заметил, что втянулся.

Чтобы вернуться с Kotlin на Java, мне потребовалось недели две. Всё. Никаких проблем.Более того, я даже почувствовал ностальгию.

да да я

да да я

Прошло уже больше полугода. Переход был полностью бесшовным.

При этом вспоминаю, как переходил с Java на Kotlin — было больно. А обратно — нет.

Итоги

Java и Kotlin — похожие, но всё-таки разные языки. Под разные задачи. Оба, как по мне, крутые. Выбор всегда за вами. Я получал удовольствие и от Java, и от Kotlin. Получаю до сих пор.

Возможно, я когда-нибудь вернусь в Kotlin. Или вообще перейду на Go. Кто ж меня знает, что я выиграю в следующем бигфесте)

Мой совет тем, кто сейчас на распутье:

Если переживаете, что смысла переходить нет, но очень хочется попробовать — пробуйте. Не пожалеете. Даже если не останетесь на Kotlin, вы получите прекрасный опыт.

Если вы смотрите на Kotlin косо и считаете «очередной модный сахар» — ваше дело. Остаться на java тоже хорошее решение.

Всем спасибо за внимание, надеюсь, что мой опыт будет вам полезен!)

ссылка на оригинал статьи https://habr.com/ru/articles/1027788/