1. Привет всем, пишу с первого рабочего места (точнее с места первой оплачиваемой стажировки как junior java-developer'а) пока не начался рабочий день.
  2. My success story - 1
  3. Мне 39 (!), начал программить как хобби, пока был перерыв в работе, какие-то деньги, уход за родившимся недавно дитем, переезд назад, к семье, в Москву и еще пара моментов. До этого работал финансистом, много участвовал во внедрениях учетных систем на разных 1Сах.

  4. Сначала попробовал ковырять программирование сам, да еще и начать с Котлина (очень понравились как сам язык, так те, кто его разрабатывает - JetBrains). Но быстро, за неделю наверно, понял, что без java в котлине нечего делать, да и нужен какой-то курс, самому копать очень неэффективно. Нашел, уже не помню как, JavaRush, зарегился на нем 30-го июня (посмотрел сейчас по почте). Уже 5 июля купил подписку (за эти 5 дней прошел первые 10 уровней, по два уровня за день). Прошел за 3, по-моему, месяца 25 или чуть больше уровней (полностью, ковыряя подробно, какую-то небольшую часть решений скачивая, но обязательно подробно разбираясь, правда).

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


  5. Я выбрал проходить сначала коллекшнс, а потом уже конкарренси часть. Посмотрел по содержанию, решил, что интереснее и полезнее разбираться с коллекциями. Еще 10 уровней (до 35-го где-то) проходил, по-моему, месяца два.

  6. Где-то посередине конкарренси стало понятно, что дальше добивать уже почти бессмысленно. Стало интереснее разбирать проблемы в разделе help (мне это было полезно - учился разбирать чужой код и структурировал свои знания), чем делать упражнения. Тогда поставил себе цель сделать веб-проект на спринге + гибернейте + майэскуэле + каком-то движке шаблонов (в итоге делал на Thymeleaf). Остальные уровни открыл чисто чтобы открыть самые вкусные задачи.

    Была бы в этот момент стажировка - было бы вообще супер, но для той, которая в тот момент шла, было уже поздно, а для следующей слишком рано.


  7. В итоге я месяца полтора все это расковыривал (человек на видео-примере сделал то же самое наверно минут за 50, если что). Всего сделал два тестовых веб-сервиса. Один чисто повторение того, что было в видео (стандартный список книг - аналог тестового задания на стажировку). Второй - уже более-менее похожую на реальную задачу, бекендовая часть сайта по расчету стоимости натяжных потолков с рест-контроллером (по примеру реальной потребности знакомых). И на Spring-boot, а не на голом спринге. Во второй для души даже вставил классы на котлине (вообще Kotlin очень рекомендую, сам точно буду копать дальше).

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

  9. Что началось - просто абзац. Я не успел никому отправить запрос, уже пришло 4 предложения от компаний на собеседование и еще пара писем от эйчаров с предложениями рассмотреть разные работы (но эта пара писем не по уровню, для мидлов). Я не понимаю, почему так получилось, думаю в этот момент был сильный всплеск заказов от Сбера (2 из четырех - сам Сбер, который вообще ковровым методом приглашает на собеседование всех, кто засветил резюме, и его подрядчик). Плюс, скорее всего, у меня хорошо выглядело резюме.

  10. Первое собеседование (Сбертех) было - блеск. Я его провел очень круто в части кора и самых основ, собеседующий сказал, что собес - просто бомба и работу я точно найду, даже если не у них. Зато второе (по телефону) - было просто адский позор. Я совсем потерялся, причем практически на все вопросы я знал или мог дать вменяемый ответ, как потом вспоминал. Теперь в Сбертехе два собеседующих, одни считает, что я неплох, второй - что я клинический идиот. Был хороший урок серьезно относится к собеседованиям, а то я слегка загордился после предложений и первого собеседования.

  11. Интересно, что на 3-х собеседованиях (включая текущее место) практически не было технического интервью - смотрели чисто по-человечески, что я из себя представляю, хотя я был хорошо готов, конечно. Особенно запомнилась компания, которая пригласила меня исключительно потому, что мне больше 35 лет. Очень своеобразная атмосфера у них. Когда я спросил их старшего по разработке (сильно старше меня, реальный олдскул), какими IDE они пользуются (Intellij или Эклипс там,есть какая-то политика в этой части), он даже не понял сначала, потом ответил "А, текстовый редактор… Да я ими не пользуюсь, я так код пишу. А ты можешь хоть что использовать, без проблем". И он точно не шутил. Я, мягко говоря, был удивлен.

  12. Через пару недель я получил звонок от Сбертеха (именно по первому собеседованию, у них там море департаментов, каждый набирает сам) с предложением работать за ок. 1.1 тыс. долларов на руки в мес с учетом годового бонуса. Я сказал ок, они начали оформлять оффер. Этот процесс у них занимает приличное время, я все равно смотрел другие работы. В этот момент попалось объявление на джавараше о наборе стажеров в группу компаний Смарт. Я написал, что хотел бы пообщаться, мало ли, практически тут же пошел на собеседование. Тим лид практически не задавал вопросов по технической части (правда я сам достаточно адекватно, без булшита, описал свой уровень) и сказал, что готов меня попробовать на оплачиваемой стажировке. Я согласился, потому что Сбертех меня немного напрягал (понятно, что я бы пошел и туда, если бы не было альтернатив), плюс мне понравилась и атмосфера и тимлид плюс их офис находится в 7 минутах ходьбы от места, где мы снимаем квартиру. Мне понадобилось еще пара с лишним недель, чтобы организовать уход за дитем, и реально вышел на работу я 28-го февраля.

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

  14. Советы начинающим:

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

    • Херачить. У меня во время обучения было правило - ни дня без строчки кода. А стандартно я тратил несколько часов в день на программирование. К сожалению (а может и нет), не читал никаких книг. Зато пересмотрел много видео-тьюториалов и выступлений с конференций + перечитал реально море ответов на stackoverflow.

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

    • Обязательно сделать пару десятков упражнений на sqlex.ru (это по эскуэлю, соответственно). Это очень просто после пары десятков уровней на JavaRush, но при этом дико полезно как по программированию бэкэнда, так и по собеседованиям.

    • Обязательно сделать свой простой проект на фреймворках типа спринг-бут + хибернейт + майэскуэль + какой-нибудь движок шаблонов (типа таймлиф или мусташ). Либо думаю прохождение стажировки будет аналогом, но тут ничего посоветовать не могу. Человек с голой теорией по спрингу и со сделанным проектом это по программированию - просто небо и земля. После проекта средние упражнения на курсе стали практически детсадом, сложные - ниже среднего. Просто за счет повышения программистской зрелости.

    • Обязательно разобраться и добавить в этот проект обработку транзакций не просто на уровне "добавить к методу в сервисе @Transactional". Тема про транзакции была постоянно на собеседованиях. Я жалею, что не раскопал sqlex.ru и транзакции спринга и хибернейта до поиска работы. Человек, который в теме транзакций, будет разговаривать с собеседующими на позицию с бэкэндом намного, намного лучше.

    • У кого какие вопросы-проблемы - пишите, обязательно постараюсь помочь, чем могу. Особенно кто делает свой первый проект на Спринге. Кто в Москве - с удовольствием встречусь.