Считается, что в детстве формируется наша будущая специальность. Любители собирать головоломки должны попасть в ученые, программисты или шифровальщики, а тем, у кого есть способности к рисованию, прямой путь в дизайнеры или художники. Но мы почему-то делаем все возможное, чтобы «что-то пошло не так». Сейчас я работаю программистом в Яндекс.Деньгах и занимаюсь интеграцией с транспортными решениями. Можно подумать, что я — джавист в пятом поколении, с вытянутым свитером и бородой до пояса. Но все еще интереснее, ведь карьера моя началась с журналистики. Создавать приложения мне нравилось с детства, поэтому любимым домашним хобби было изучение Бейсика и TurboPascal на популярном в те времена i486. Еще участвовал в школьных олимпиадах по программированию и уделял особое внимание домашним заданиям по информатике. В общем, явно будущий программер — что вообще может пойти не так? Помните, как поступали в первый ВУЗ и, главное, зачем? Я вот был не уверен в собственных силах, ведь требования серьезных университетов тогда казались невероятными. Впрочем, все эти страшилки про сложность поступления и завышенные ожидания вы и так наверняка слышали. В общем, я пошел по пути наименьшего сопротивления и поступил на факультет журналистики.  Но и тут меня потянуло к инженерной деятельности: я стал заниматься техникой печати и оформлением периодических изданий. Со второго курса попал в лабораторию визуальных коммуникаций и информационных технологий при факультете, где стал потихоньку админить местный IT-парк.  В то время как раз набирали популярность идеи удаленного обучения, и в нашем университете решили сделать электронное учебное пособие для подготовки радиожурналистов, с видео- и аудиоматериалами. Я как раз отвечал за реализацию «движка» на базе HTML и JS. Это был первый серьезный опыт разработки реального веб-приложения, которое в дальнейшем мы еще долго совершенствовали и дополняли. После университета мое представление о мире, полном интересных лично мне задач, малость треснуло от удара о реальность. Но мне повезло: друзья предложили переехать в Петербург и заняться выпуском цветной ежедневной спортивной газеты уровня Marcá и Gazzetta dello Sport, а это уникальный проект для России. Такое предложение было большим успехом для вчерашнего выпускника, и я немедленно согласился.  Но программист в душе, видимо, требовал выхода. Поэтому вечера проходили за программированием и фрилансом по разработке сайтов. Через некоторое время пришлось решать, чему отдавать больше времени — разработке сайтов или дизайну газеты, так как объем задач по разработке рос в геометрической прогрессии. Очень кстати наступил кризис в отрасли печатных СМИ, который наложился на личную потерю интереса к дизайну и подтолкнул к смене профиля деятельности, что я так долго и старательно откладывал. Главным было «ввязаться в драку» — опубликовать резюме и начать ходить по собеседованиям. После этого начался долгий марафон ежедневных собеседований, каждое из которых добавляло уверенности в своих силах и пополняло копилку каверзных вопросов от собеседующих. Вообще, было неожиданно увидеть такой интерес к резюме без впечатляющего программистского опыта. Видимо, помогли советы моего друга, опытного разработчика, который к тому моменту уже дорос до ИТ-директора. Спустя месяц постоянной самоподготовки и хождений на собеседования меня пригласили в крупное интернет-агентство на проект по разработке системы управления интернет-рекламой и сбора статистики по рекламным кампаниям. На собеседовании речь шла о фронтенд-разработке, но так случилось, что я занимался в основном бэкендом — нагруженной системой, требующей вполне взрослого подхода. Бинго!  Но настоящий звездный час настал спустя год работы: передо мной поставили задачу переписать высоконагруженную систему показа баннеров и сбора пользовательской статистики. Прежний вариант был плох тем, что толком не масштабировался из-за не слишком удачных архитектурных решений и был крайне неустойчив. К тому моменту я программировал на Java только факультативно, поэтому задача стала настоящим вызовом и проверкой веры в свои силы. И, как это часто бывает с подобными «динозаврами», в компании не осталось никого, кто хорошо разбирался бы в работе текущей системы. Ну что ж, заодно прокачал навыки бизнес-аналитики и составления ТЗ. Спустя полгода мои познания в Java, многопоточном программировании и распределенных системах значительно расширились, а новая баннерная система прошла все круги ада и была сдана в продакшн. Это произошло в 2014 году — как раз в то время, когда в экономике страны начался общий спад и рынок баннерной рекламы с оплатой за показ/переход стал стремительно сокращаться. Как и многие, наша компания решила на всем экономить и свернула дальнейшую перспективную разработку. Но не возвращаться же снова в PHP после такого большого и интересного Java-проекта! А раз идем по нарастающей сложности, то самое время окунуться в «кровавый энтерпрайз», со всеми этими масштабными системами и разработкой «по науке». Как раз в тот момент удача мне еще раз улыбнулась, и мои умения заинтересовали крупного госзаказчика с проектом на Oracle DB, J2EE и всем таким прочим. Если не вдаваться в детали, то проект состоял из огромного монолитного приложения и нескольких микросервисов для работы с ним — в разработке одного из них я и участвовал. Конечно, это был совсем иной уровень, как по масштабу систем, так и по компетенциям коллег. Знаете, чего не хватает в энтерпрайзе? Отдачи — реакции на твой продукт от конечного пользователя. Получается, что ты пишешь все эти тысячи строк кода, выпускаешь релиз и… все. Релиз проходит формальное одобрение и уходит в продакшен без каких-либо оценок со стороны пользователя. В корпоративных системах покупатель и пользователь — обычно разные лица. При этом решения принимает покупатель, которого мало интересуют пользователь и его удобства — в таких делах важнее завершить работу в срок и уложиться в бюджет. Это был довольно странный и неожиданный вывод, который «менял все».  Казалось, можно спокойно заниматься энтерпрайз–разработкой, но возникло желание вновь расширить профессиональные горизонты. К тому же сработал «голливудский принцип» — мой профиль на LinkedIn заинтересовал рекрутеров Яндекс.Денег, и позже пришло сообщение из разряда: «Некогда объяснять, приезжай на собеседование!» Тут опустим итерации с несколькими собеседованиями и разной глубины вопросами — суть в том, что я попал в команду бэкенда Яндекс.Денег. И попал именно в тот момент, когда команда занималась миграцией приложений на новую платформу, которая позволила бы ускорить разработку и снизить порог вхождения новых разработчиков в проект. Ощущения от релизов тут, конечно же, совсем иные — можно получить море пользовательских эмоций в комментариях к приложению: то ударит волной о берег за ошибку, то восторг и ура. Есть ощущение отдачи от своих усилий. Если вернуться лет на пять назад, то я дал бы себе тогдашнему несколько советов: Не бояться и начинать меняться как можно раньше. Работа в команде быстрее прокачивает навыки, так что фриланс надо оставлять сразу, как начинаешь задумываться о новых направлениях. Продуктовая разработка — это невероятный драйв, и чем ближе к пользователю, тем острее ощущения. Адреналин, как от спорта. На техническом собеседовании нельзя дать «плохих» ответов, зато легко показать неумение рассуждать и думать. Но к собеседованию всё равно надо готовиться: обидно будет провалиться, если забыл какую-то тривиальную вещь. Пока готовили статью, среди коллег возник спор о важности для карьеры специальности, указанной в дипломе. А вы что думаете? Financial services on Java beans