JavaRush /Java блог /Архив info.javarush /20+ лет спустя или Я все-таки стал им! Часть 5
alex8894
34 уровень
Санкт-Петербург

20+ лет спустя или Я все-таки стал им! Часть 5

Статья из группы Архив info.javarush
Окончание истории "бородатого эникея". Предыдущая часть тут.
И я им все таки стал!
Уважаемые коллеги, вам наверняка стало понятно, какая древнейшая профессия вмешалась в мои планы. Разумеется, речь идет о политике. Дела в фирме к тому времени обстояли «не очень»: увольнение разработчиков приняло массовый характер. Руководство сначала делало вид, что никакой проблемы нет, потом, в полном соответствии с положениями «прикладной мерфологии», начало проводить совещания, которые день ото дня становились все чаще, все длиннее и все бессмысленнее. Результатом совещания стало решение совещаться дальше... Когда оголились целые направления, были утрачены ключевые знания и из-за воцарившегося хаоса стали срываться сроки сдачи проектов, началась фаза «наведения порядка» и «закручивания гаек». И вот, во время моего отпуска руководитель разработки издал приказ, что для упорядочивания рабочего процесса, исключения дублирования чего-то и расширения повторного использования чего-то еще, разработчикам отныне запрещается контактировать с «внутренним заказчиком» напрямую, все коммуникации — только через руководителя и только в письменном виде, в соответствии с разработанным регламентом взаимодействия между… ну и так далее. Оказалось, «наверху» учинили большой разнос и потребовалось срочно изобразить кипучую деятельность. Все выглядело очень правильно и красиво, и была только одна загвоздка — «внутренним заказчиком», который работал с разработчиками напрямую, был я... Ну что же, не в первый раз принимаются подобные решения, найдем управу и тут, хотя будет, похоже, непросто. Я сел было за очередную служебную записку с предложением созвать совещание, а потом вдруг понял, что вместо траты времени и сил на дискуссии и писанину, надо просто рискнуть и выложить резюме прямо сейчас, не дожидаясь реального проекта. Надеюсь, знаний, полученных во время реализации тестового задания, хватит. Читал на нескольких форумах, в том числе на javarush, жалобы типа «выложил резюме — и не одного приглашения». Лично я ни разу не сталкивался с подобной ситуацией, и не только с резюме Java-разработчика, но и раньше. Правда, на написание резюме я тратил по два-три дня, многократно переделывая и улучшая текст. Всегда старался, чтобы резюме не превышало двух страниц и следовал правилу: компетенции и знания должны напрямую вытекать из списка выполненных работ. Иными словами, надо правильно себя позиционировать: пишешь «мидл» - покажи опыт работы и стек технологий, соответствующий мидлу. Не получается — значит ты пока еще не «мидл», нужны еще проекты. Опытный HR сразу увидит нестыковки и перед приглашением задаст уточняющие вопросы, а если дело все же дойдет до технического собеседования — еще хуже, получишь «черную метку» и на полгода-год про эту компанию можно будет забыть. Проверено на собственном опыте! ...Вот и первое приглашение. Зарубежная компания, расширяет в России свой центр разработки. Симпатичный лофт на последнем этаже бизнес-центра. Так, технического собеседования сегодня не будет. Приятно поговорили с HR, она показала презентацию о компании (все эти презентации, по-моему, делаются по общему шаблону). Фейс-контроль пройден успешно, теперь — тестовое задание. Ничего себе — аж несколько страниц текста, больше похоже на постановку немаленькой задачи. Нужно разработать веб-сервис со статистикой, чистый бэкэнд с явными признаками микросервиса, аутентификация, JSON, вроде ничего особо сложного, многое уже было в тестовом задании реального проекта, остальное — найдем. Погнали. Сделал за пару дней, все таки не на пустом месте. С тестами, с описанием — все как полагается. Пауза… ответ. Отрицательный. Что бывает крайне редко, сами написали, что именно не понравилось. На мой взгляд — чистые придирки, это же тестовое задание, а не реальный код, но спорить, понятно, бесполезно. Посидел еще несколько дней, отшлифовал код, исправил придирки и добавил ссылку на проект в резюме, решил что лишним не будет. Так оно потом и оказалось. Кстати, в этом проекте впервые в полную силу задействовал лямбды, изученные по книге «Java 8 Lambdas», эта тема совсем не затрагивается в курсе javarush. Между тем, по крайней мере на одном собеседовании это сыграло положительную роль. Потом был крупный отечественный разработчик ПО — вроде положительно, но я вряд ли хочу там работать, шило на мыло… Разработчик в ИТ-отдел небольшого банка, допиливать чужую банковскую систему под их требования. Не хочу, наелся выше крыши доработкой типовых конфигураций 1С. Впрочем, и само собеседование слил подчистую, задачи похожи на своих тезок из сертификационного экзамена по Java от Oracle, из серии — а как сработает такой говнокод, а такой? В жизни так не напишу и другим не дам. Еще один, теперь уже не очень большой, отечественный разработчик, но вроде продукт для зарубежного рынка. Скайп-собеседование, опять задачки. Ну не помню я, как sort() сортирует null-элементы. И писать так не буду, у меня будет NullObject, смысл городить кучу проверок на null в коде? Отказ. Полезный результат — разобрался со сравнением null-ов, да, это снова Java 8, которой не было в javarush. Но все равно не буду так писать. Дальше возникла пауза в несколько дней, за которую я осилил книгу о шаблонах проектирования от «банды четырех» и начал книгу про принципы S.O.L.I.D. Не уверен, что смогу по памяти реализовать все шаблоны, но ответить на вопросы скорее всего смогу. Про S.O.L.I.D., кстати, ни на одном собеседовании не спрашивали. Еще скайп-собеседование, о, пригодились шаблоны. Кстати, в книге названия шаблонов переведены, а в реальной жизни почти всегда используют только их оригинальные (англоязычные) названия. Какой самый часто встречающийся шаблон в Spring? Ответил — Proxy, вроде правильно. Еще пригодилась Java Memory Model, коллекции, многопоточность, Atomic-типы и ConcurrentHashMap. Все-таки умные люди делали javarush — 90% стандартных вопросов курс охватывает. Так, вроде положительно, но оказывается это было так, еще не собеседование, а основное собеседование будет с заказчиком. Неожиданный результат — прислали список вопросов, по которым мне стоит подготовиться. Это всегда готов, учиться я люблю и собеседования пока воспринимаю в основном как бесплатную учебу. Подготовился. Много интересного узнал про SQL, про A.C.I.D., про Spring и про concurrency. Собеседование с заказчиком из другого города, по скайпу. Ух ты, как интересно, уровень собеседующего явно очень высокий. Сначала все стандартные вопросы, ну, на память не жалуюсь, все ответил без запинки. Дальше пошли уже незнакомые мне вещи. Например, всегда ли надо применять Atomic-типы, или синхронизация может оказаться быстрее? Ответил неправильно, но зато после собеседования узнал про LongAdder - еще одну часть concurrency из Java 8, не охваченная javarush. Этакий lock-splitting для счетчиков. Сколько же еще неведомого для меня есть в Java Core? Потом были еще собеседования, очные и по скайпу, но как-то ничем они не запомнились. Вопросы были в основном стандартные, я к тому времени выучил их наизусть. После каждого собеседования проверял все ответы, в которых сомневался, но ничего особо нового больше не узнал. Были и какие-то офферы, но неинтересные, хотелось качественного скачка - попасть в сильную команду на интересный проект, чтобы развиваться дальше. Скайп-собеседования отнимают меньше времени, чем очные, но зато при очных собеседованиях можно оценить время на дорогу с учетом пробок и попросить показать будущее (возможное) рабочее место. В основном везде openspace, хотя разных размеров — бывало и 15, и 50 человек в комнате. И плотность размещения совершенно разная — где-то набиты «как сельди в бочке», где-то вполне свободно. Когда приходишь в конце рабочего дня, можно понять — душно или вентиляции хватает, хотя как оно будет летом — еще неизвестно. Где-то есть комнаты отдыха, где-то нет — а ведь иногда хочется встать и немного походить-подумать. Потом начал нагло просить сделать мне кофе — и иногда узнавал, что обещанная кофе-машина «вот именно сейчас» в ремонте. Все это, конечно, мелочи по-отдельности, но позволяют составить довольно точное представление о компании. На очередном собеседовании проверили мой уровень английского. Мда, на общежитейские темы мне разговаривать тяжеловато. Впрочем, мне показалось, что мой «экзаменатор» сам бы провалил подобный экзамен. Очередной опыт в копилку и очередной отказ. Решил устроить себе «погружение» в языковую среду. Недели две про все, что видел вокруг, думал по-английски, сам с собой разговаривал по-английски и перечитал в оригинале какой-то детектив. Активно вспоминал слова и пополнял словарный запас. Все забывается, если не пользоваться постоянно, и английский — не исключение. Параллельно с собеседованиями продолжал проходить javarush, дошел (уже честно) до 30-го уровня и пошел дальше, остановился где-то на 35-м. После тестовых заданий новых знаний было уже не очень много, но зато была постоянная практика в кодинге. Собеседование в той фирме, где я и работаю сейчас, прошло как-то совершенно буднично. Руководитель разработки задал пару вопросов на тему, как бы я реализовал такую-то функцию, естественно, на тему concurrency. Я вроде ответил, потому что когда-то сталкивался с похожей задачей и, помнится, довольно долго провозился, ища наилучшее решение. Вопросы быстро кончились и я решил, что как кандидат оказался неинтересен. Тем большим было мое удивление, когда на следующий день мне прислали оффер с очень приличными условиями. Но оставалось еще одно собеседование, совершенно необычное для меня. Зарубежная компания, создает в России центр разработки. Просили резюме на английском. Напрягся, написал, вряд-ли по всем правилам, но лучше так, чем никак. И вот, они хотят провести собеседование по скайпу на английском. А, чем черт не шутит — попробую, отказаться всегда можно. От этого собеседования я получил огромное удовольствие, надеюсь, противоположная сторона - тоже. Пообщался и с PM-ом, и с Lead Developer'ом, и даже (чего уж совсем не ожидал) - с CEO. Все — очень приятные и вежливые люди. Выяснилось, что разговор на английском по специальности меня совсем не напрягает, потому что после прошлой неудачи я боялся, что все силы будут уходить на понимание и построение фраз, а думать будет некогда. Ответил на все вопросы, вывалив на них заодно и многое из того, что узнал на javarush и при прохождении других собеседований. Оффер у меня уже был, результат этого собеседования был не так уж важен, волноваться было незачем, и это дало неожиданный результат. Хотя почему неожиданный? В жизни постоянно бывает так, что когда работа нужна срочно, ее нет, а когда уже не нужна — предложения идут одно за другим. Короче говоря, на следующий день я получил второй оффер и оказался перед исключительно сложным, хотя и приятным, выбором. Оба предложения были крайне интересны, и каждое — по своему, но принять можно было только одно. Собственно, на этом моя история пока заканчивается. Нынешний проект — в микросервисной архитектуре, основан на открытом ПО, с правильно выстроенным процессом разработки, со SCRUM и CI — словом, все то, о чем я и мечтал. Уровень владения технологиями у сеньоров конечно совершенно заоблачный, мне до него еще расти и расти. Постоянно узнаю новое и от Java-разработчиков, и от тестировщиков, и от фронтендеров. Прав был тот, кто сказал, что лишних знаний не бывает - пригодилось очень многое из опыта «эникея» и Linux-админа, потому что разработка ведется и под Windows, и под Linux, и даже на Mac. Кстати говоря, все сеньоры и многие мидлы знают Linux (хотя сами часто предпочитают вести разработку под Windows) и при необходимости вполне заменяют DevOps'ов. Недавно, разбирая книжный шкаф, обнаружил ту самую «Философию Java», с которой началось мое первое (неудачное) знакомство с Java. С удовольствием пролистал ее — как много с тех пор изменилось и в языке, и в фреймворках! Теперь-то я понимаю, как написать веб-версию складской программы с таблицами, формами и отчетами, хотя конечно не буду использовать описанные в этой книге JSP, EJB и JDBC, есть куда более мощные и современные инструменты. Вы, возможно, спросите — а где рассказ о реальном проекте? К сожалению, рассказать нечего, потому что получилось как в анекдоте: «я контролера обманул — билет купил, а сам не поехал». Успел сделать только подготовительное задание к 1-му занятию, то, которое на лямбдах. Потом стало некогда, а позже — и незачем, большинство backend-технологий, рассматриваемых в нем, пришлось изучать уже в «боевой обстановке», на новой работе, а frontend там малоактуален. Тем не менее, свою роль он, я считаю, выполнил — ведь без реального проекта не было бы тестового задания, с которого все и началось.
Комментарии (58)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
wan-derer.ru Уровень 40
25 октября 2020
info.javarush.ru теперь forbidden, видимо, остальные части теперь не прочитать :)
Rosewelt Уровень 25
25 февраля 2017
Дата публикации статьи: 21 февраля 2017
Дата первого комментария: 6 февраля 2017
Интересно.
ZackFox Уровень 14
25 февраля 2017
Чесно сказать эта история меня напугала немного. Столько требований к вакансиям, что даже не знаю сколько мне надо заниматься, чтобы все это понять. Занимаюсь почти год и много еще не знаю(занимаюсь самостоятельно — нет возможности платить за курсы). У меня неглубогие знания servlet и jdbc. Поверхностно знаю Spring и Hibernate, но при этом есть дыры в core. Про многопоточность, concurrency и всякие там atomic я вообще молчу. Не знаю как самостоятельно все охватить
Truefirefox Уровень 40
24 февраля 2017
А сколько всего планируется частей? ;)
mtechno Уровень 25
14 февраля 2017
Что-то этой зимой пошла мода выкладывать хеппиэнды.
Автор, в каком году устроился и как оцениваешь работу в Питере по сравнению с Москвой?
Skiff Уровень 11
10 февраля 2017
дубль
apollox Уровень 40
9 февраля 2017
А мне 41, 19 уровень, занимаюсь на JavaRush с декабря фактически
Вот на хабре отличная статья по теме: Каково это — быть разработчиком в России, когда тебе сорок
Duce_Valdemar Уровень 30
9 февраля 2017
Спасибо за очень мотивирующую историю.
А мне все таки иногда приходят в голову мысли «а не поздновато ли?». А мне, оказывается, «всего 27» :)
Но есть один вопрос (это, конечно, личное, но все равно задам):
У вас есть семья? Если да, то как вы умудряетесь за несколько дней прочитать книгу, написать рабочее приложение и т.п.?
Здесь все говорят про отмазки, а у меня реально 1,5 — 2 часа в день времени (время между отходами ко сну ребенка и моим).
trukach05 Уровень 26
9 февраля 2017
Спасибо огромное за интересную историю. Мне 28 лет, сам недавно решил заняться наконец любимым делом, от которого, как говорится, глаза горят. Может когда-то тоже напишу здесь свою историю.
К вопросу Santegra о жизненных силах — если еще не занимаетесь, то попробуйте заняться спортом и стремиться к какому-нибудь высшему достижению в нём(используя научный подход). Сил сразу станет много и голова будет свежая, кроме того придется освоить все перечисленные выше товарищем boyarskiy истины(и своих еще куча появится), без которых высших достижений сложно добиться.
danilishe Уровень 35
9 февраля 2017
Аплодирую стоя одному только авторскому стилю изложения — уже немало приятно, что есть люди, способные так рассказать о себе. И тем приятнее, когда они на своём примере доказывают, что всё возможно при желании.