Окончание истории "бородатого эникея". Предыдущая часть тут.
И я им все таки стал!
Уважаемые коллеги, вам наверняка стало понятно, какая древнейшая профессия вмешалась в мои планы. Разумеется, речь идет о политике.
Дела в фирме к тому времени обстояли «не очень»: увольнение разработчиков приняло массовый характер. Руководство сначала делало вид, что никакой проблемы нет, потом, в полном соответствии с положениями «прикладной мерфологии», начало проводить совещания, которые день ото дня становились все чаще, все длиннее и все бессмысленнее. Результатом совещания стало решение совещаться дальше... Когда оголились целые направления, были утрачены ключевые знания и из-за воцарившегося хаоса стали срываться сроки сдачи проектов, началась фаза «наведения порядка» и «закручивания гаек». И вот, во время моего отпуска руководитель разработки издал приказ, что для упорядочивания рабочего процесса, исключения дублирования чего-то и расширения повторного использования чего-то еще, разработчикам отныне запрещается контактировать с «внутренним заказчиком» напрямую, все коммуникации — только через руководителя и только в письменном виде, в соответствии с разработанным регламентом взаимодействия между… ну и так далее. Оказалось, «наверху» учинили большой разнос и потребовалось срочно изобразить кипучую деятельность. Все выглядело очень правильно и красиво, и была только одна загвоздка — «внутренним заказчиком», который работал с разработчиками напрямую, был я...
Ну что же, не в первый раз принимаются подобные решения, найдем управу и тут, хотя будет, похоже, непросто. Я сел было за очередную служебную записку с предложением созвать совещание, а потом вдруг понял, что вместо траты времени и сил на дискуссии и писанину, надо просто рискнуть и выложить резюме прямо сейчас, не дожидаясь реального проекта. Надеюсь, знаний, полученных во время реализации тестового задания, хватит.
Читал на нескольких форумах, в том числе на 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 там малоактуален. Тем не менее, свою роль он, я считаю, выполнил — ведь без реального проекта не было бы тестового задания, с которого все и началось.
Чесно сказать эта история меня напугала немного. Столько требований к вакансиям, что даже не знаю сколько мне надо заниматься, чтобы все это понять. Занимаюсь почти год и много еще не знаю(занимаюсь самостоятельно — нет возможности платить за курсы). У меня неглубогие знания servlet и jdbc. Поверхностно знаю Spring и Hibernate, но при этом есть дыры в core. Про многопоточность, concurrency и всякие там atomic я вообще молчу. Не знаю как самостоятельно все охватить
Уважаемый Truefirefox , а что еще вам было бы интересно узнать? Вроде бы тему своего вхождения в Java я раскрыл полностью. Теперь только если рассказать про результаты первого полугода работы в качестве Java-разработчика.
Ну Вы же не собираетесь на начатом останавливаться? Ждем продолжения :)
И про результаты послушать интересно.
Обычно народ вмещает свои истории на 1 стр, а у Вас 5 частей получилось. Отсюда и вопрос. Извиняюсь, если прозвучало саркастически.
У вас хорошая стилистика повествования и потому читается легко. Плюс, к тому же, для многих тема интересная. Складывая 2 этих факта — я тоже жду продолжения.
Уважаемый mtechno , а тебе было бы интересно читать жалобы на то, что в NN лет (NN заменить на свой возраст) программировать начинать поздно, все равно никто не возьмет на работу без опыта, берут только молодых и т.д.? Этого добра на любом форуме найдешь сколько угодно.
Вроде бы в тексте достаточно информации для привязки рассказа по времени. Устроился в 2016 году.
В Питере средняя вакансия Java-разработчика дешевле соответствующей Московской процентов на 30, наверное. У меня нет опыта поиска работы в Москве, но по словам знакомых, там такой же дефицит разработчиков. Не от хорошей жизни московские компании создают центры разработки в регионах.
Про моду я просто констатировал факт. Отношусь к этому положительно.
Интересно, как ты видишь ближайшее будущее разработчика на java, увеличится ли хайп на эту сферу?
Ну, если не случится очередного «краха доткомов», который нам предвещают с 2015 года, то думаю что особого роста зарплат ждать не стоит, как, впрочем, и снижения. Будут расти требования к квалификации, причем не столько к знанию разнообразных библиотек и фреймворков (все их знать невозможно), сколько к скорости «вхождения» в новый проект. Fullstack разработчик будет стоить дороже чисто бэкендового. Предполагаю, что как и сейчас, вложения в повышение собственной квалификации будут многократно окупаться.
В плане моды — пока что растет интерес к Scala, хотя непонятно, надолго ли это. Scala-разработчики сейчас стоят дороже, чем Java. Groovy, похоже, «не взлетел», если не считать Gradle. Есть перспективы у Kotlin, но он скорее для мобильной разработки.
Уважаемый apollox , такие ссылки нельзя публиковать в рабочее время, я не смог оторваться, пока не прочитал :-) Автор великолепно владеет словом, чувствуется огромный опыт написания пояснительных записок, технических заданий, служебных записок и подобных документов. Хороша статья в художественном плане, ничего не скажешь. А вот в смысле содержания… не очень. Когда несколько лет назад я находился в похожем положении, именно подобные статьи (их хватает в Интернете) сподвигли меня «наступить на горло» мечте и поискать иной род деятельности, не программирование. Существуй тогда javarush и попадись он мне, все могло бы быть иначе. Хочется лишь позавидовать вам, уважаемые коллеги, что сейчас есть такой замечательный ресурс и вам еще предстоит пройти такой интересный путь профессионального становления.
Там еще и комментарии не менее интересные попадаются. Вообще картина рисуется приблизительно следующая:
То, что кто-то что-то делает в 40 лет, еще не значит что у тебя в твои 40 тоже получится. Это в шесть можно всех поголовно отправить в школу и научить читать и писать. К 40 годам все подходят с очень разными рюкзаками прожитой жизни за спиной. Здесь будут играть значение очень многие факторы. И все сведется к одному вопросу: способны ли вы в свои 40 за короткий срок качественно усвоить огромный массив информации и получить достаточные навыки в использовании ее (здесь имеются в виду не только умственные способности, но и здоровье и текущая жизнь, обязанности в ней)? И это опять же ничего вам не гарантирует. В утверждении, что рынок IT нуждается в большом количестве программистов почему то все забывают о том, что это не относится к джуниорам. Нужны мидлы и сеньоры. С джуниорами хотят нянчиться единицы, а вливается их на рынок труда сотни и тысячи. Например вот занятное видео на эту тему.
Спасибо за очень мотивирующую историю.
А мне все таки иногда приходят в голову мысли «а не поздновато ли?». А мне, оказывается, «всего 27» :)
Но есть один вопрос (это, конечно, личное, но все равно задам):
У вас есть семья? Если да, то как вы умудряетесь за несколько дней прочитать книгу, написать рабочее приложение и т.п.?
Здесь все говорят про отмазки, а у меня реально 1,5 — 2 часа в день времени (время между отходами ко сну ребенка и моим).
Если не знакомы, то советую познакомиться с таким понятием как Тайм менеджмент. Его у нас в стране научно продвигает товарищ Глеб Архангельский, Я как раз начал изучать java и столкнулся с нехваткой времени и сил. Оказалось что и силы есть откуда брать и время, а так же более менее грамотно их использовать.
Уважаемый Duce_Valdemar , вы задали очень интересный вопрос. Когда чем-то увлечен, то увлечению отдается все свободное время. Завтрак, обед и ужин, дорога на работу и с работы, вечер после того, как все лягут спать — все промежутки заполняются чтением. Электронная книга — наше все. Кодинг — опять-таки в свободное время на работе (проектная работа — то густо, то пусто), вечерами, в выходные, в отпуске. Да, такой марафон реально выматывает, больше двух месяцев так не продержаться, но пока такого срока хватало для того, чтобы на достаточном уровне освоить новую тему.
Как прочитать книгу за несколько дней? Выборочно. Читаешь только то, что тебе в данный момент нужно, остальное пролистываешь. Видимо, у меня как-то сама собой выработалась методика быстрого чтения. На английском получается медленнее, но упомянутые мною книги — на русском, и в них довольно много «воды». Книгу «Spring 4 для профессионалов», например, так не прочитать, на нее ушло недели 3, наверное.
Как быстро написать работающее приложение на технологиях, которые ты видишь в первый раз в жизни знаешь неважно? Естественно, копи-пастой со stackoverflow и кучи других ресурсов. Вот чему действительно надо обязательно научиться — это правильно строить поисковые запросы. И еще один полезный навык — владение приемами работы с Legacy-кодом. Поищите по этим словам, можно найти несколько статей на русском, книг вроде бы нет. Я упоминал в своем рассказе, что постоянно приходилось разбираться без документации в чужом коде без описаний, это как раз оно. При этом, среди прочего, быстро учишься искать информацию именно по данному, конкретному вопросу, потому что на систематическое «погружение» в десятки задействованных технологий, библиотек и фреймворков времени, естественно нет.
Уважаемый trukach05 , если вам удается согласовать приливы творческого состояния с планом и строгими временными рамками, я вам по-хорошему завидую. Мне это не удается, хотя с тайм-менеджментом я познакомился еще в начале 90-х и напоминанием о том долго служил симпатичный кожаный органайзер с кучей разлинованных страниц, страшно неудобный при использовании в качестве рабочего блокнота :-) Есть даже книга (переводная) — «Тайм-менеджмент для системных администраторов».
Сам я думаю, что тайм-менеджмент был придуман для офисных клерков, которые изо дня в день выполняют тупую однообразную работу. Тут можно и оценку времени дать, и все распланировать заранее. Программирование — одна из самых гуманитарных специальностей среди технических, ближе к творчеству, чем к технике. Это подтверждается тем фактом, что до сих пор не существует способа определить, сможет ли тот или иной человек стать разработчиком, или нет, только учить и пробовать.
Спасибо огромное за интересную историю. Мне 28 лет, сам недавно решил заняться наконец любимым делом, от которого, как говорится, глаза горят. Может когда-то тоже напишу здесь свою историю.
К вопросу Santegra о жизненных силах — если еще не занимаетесь, то попробуйте заняться спортом и стремиться к какому-нибудь высшему достижению в нём(используя научный подход). Сил сразу станет много и голова будет свежая, кроме того придется освоить все перечисленные выше товарищем boyarskiy истины(и своих еще куча появится), без которых высших достижений сложно добиться.
Уважаемый trukach05 , рад, что вам понравилось. Я старался показать в своем рассказе, что только с возрастом понял одну простую вещь: не надо откладывать реализацию своей мечты «на потом». В какой-то момент спохватишься — и поймешь, что уже поздно, здоровье (долги, семья, обстоятельства и т.п.) не позволяют. Вроде бы, я еще успел, но уже, как говорится, «на грани».
Заниматься спортом полезно, но не с целью ставить рекорды. Рекорды требуют много времени и часто безвозвратно портят здоровье. Особенно, если начать заниматься «резко» и не с детства. Опять-таки, пишу на основании собственного опыта.
Поэтому я не зря написал про научный подход :) Можно стать мастером спорта и через 20 лет после начала и даже в очень большом возрасте, главное стремление и правильны средства достижения.
Я сначала хотел просто для здоровья, но по характеру не могу топтаться на месте, хочется развиваться всё время, так же как и в кодинге :)
Молодо, зелено. Попробуйте стать мастером спорта когда у вас для примера артроз 4-х суставов, гипертония, тестостерон ни как у 18-летнего, семья из 3 человек, работа с 9 до 18-00. Любое усилие, будь то физическое или умственное, требует ресурсов. И предел есть у каждого, у одного повыше, у другого пониже. Для нормального самочувствия достаточно, наладить питание, нормализовать сон, и ходить каждый день стремясь довести кол-во шагов до 10 тыс. Если до этого ничего не делали, то уже от этого будет заметен эффект. А вы о мастерах спорта… При ограниченных ресурсах приходится раставлять приоритеты, на что тратить большую часть сил, а на что меньшую. Стать мастером спорта походя нельзя.
Аплодирую стоя одному только авторскому стилю изложения — уже немало приятно, что есть люди, способные так рассказать о себе. И тем приятнее, когда они на своём примере доказывают, что всё возможно при желании.
Спасибо. Отличная история. Мне сейчас 37, через неделю будет 38. Работаю админом. Раньше писал, но мало. Открыл для себя javarush, все нравится, мозг начал включаться и работать по другому, так как было раньше. Посмотрим куда меня приведет эта дорожка через пару лет. Думаю все будет прекрасно.
Возник вопрос: из каких источников черпаются жизненные силы? Неимоверно сложно пройти описанный автором путь, причем в возрасте, когда многие сдаются практически без боя.
Уважаемый Santegra , почему столько вопросов про возраст? Возраст — это во многом состояние души. Когда учишься, узнаешь новое, а потом на этой основе поднимаешься на новую ступень — чувствуешь себя молодым, а энергия бьет ключом. В подобном состоянии, наоборот, приходится себя сдерживать, иначе превращаешься в бледного зомби с горящими глазами :)
Alex, огромное спасибо за Вашу историю, очень интересная и познавательная. Начало Вашего карьерного пути во многом совпадает с моим. Я конечно начинал не с БК и ЕС, их я краем застал, мой первый компьютер был МС-1502 (Intel 8088, копия известного «Поиска»). После универа немного С++, потом 1С 7.7 + админская работа, потом своя фирма-франчайзи, кризисы, другой бизнес и наконец последние четыре месяца Java. Очень рад за Вас! Надеюсь, в скором времени, написать свою историю :)
Впечатляет, до мурашек. :). Если не секрет, то в каком возрасте попали в фирму где занимались внедрением и сколько ушло времени на то, чтобы перейти на разработку? Бытует мнение, что в бывшем Союзе начинающий 40-летний программист это приговор при собеседовании, они никому не нужны. Насколько часто по вашему мнению причиной отказа был возраст, а не уровень знаний?
Уважаемый Skiff , мне кажется, что возраст — это не период от даты рождения до текущего момента, а внутреннее ощущение. Сейчас на кадровом рынке настоящий «голод» на разработчиков, и не только на Java. Поэтому возраст — последнее, на что смотрят на собеседовании. Если вашей задачей не является сразу попасть в зарубежную фирму, либо в аутсорс, есть варианты с меньшей зарплатой, но и со значительно более низкими требованиями. Я описывал в своей истории ситуацию, сложившуюся на моем предыдущем рабочем месте — там брали всех, кто хоть что-то мог. В подобной компании можно проработать год-полтора, набраться опыта, получить портфель проектов и звучное название места работы в резюме, после чего поискать уже что-то посерьезнее. Главное — не забывать о своей цели, потому что в больших компаниях, как не странно, довольно комфортно работать: между вами и конечным заказчиком несколько уровней, ответственность за срыв сроков и низкое качество весьма эфемерна, контроль за тем, что ты делаешь, практически отсутствует, повышать квалификацию нет необходимости. Нужно только вовремя и правильно писать отчеты о якобы проделанной работе, этому научиться несложно, куда проще, чем программировать на Java. Подобное «болото» быстро затягивает, а выбраться из него спустя несколько лет может оказаться непросто.
Я не переходил в разработку, я занимался разработкой, как это называется, в «инициативном порядке», в свободное от основной деятельности время.
Ну в центральных городах (Москва, Санкт-Петербург, Екатеринбург) может и голод на программистов. А у нас голод на вакансии. :) Про переход на разработку, я имел в виду, сколько вы успели проработать в фирме на внедрении, прежде чем устроились на новую работу непосредственно программистом, ведь именно там вы плотно взялись за изучение Java? И про ваш возраст тогда… если не секрет.
Почему так интересуюсь… потому что сам уже не мальчик по паспорту, и стартовые условия имею похуже. Почти на всех ресурсах связанных с программированием которые просмотрел подымается тема возрастных программистов и везде мотив песни один и тот же: возраст > 35 и Junior = долгий, безуспешный поиск работы. Единичные истории успеха остаются единичными. Некоторые так вообще вызывают сомнение (аля +35 лет, работал вообще не в ИТ, прошел трехмесячные курсы, самостоятельно разработал свой проект с использованием популярных фреймворков, устроился на работу. И это все за полгода.).
На моей прежней работе большинство разработчиков и внедренцев были приезжими. Кто-то учился здесь и потом нашел работу, но в основном приезжали по программе привлечения иногородних специалистов (или, как говорят HR'ы — релокейшн). Проработав от полугода до полутора лет они, соориентировавшись в ситуации, находили себе место получше. И среди них не только молодые, многим было за 30 и даже за 40, переезжали с семьями и с детьми.
Возможно, что возраст >35 + джуниор = безуспешный поиск работы, но если первое слагаемое в этом выражении не изменить, то второе — вполне себе меняется. Один мой бывший коллега проработал до почти 40 лет в отраслевой типографии, где издавались каталоги и справочники с кучей таблиц, графиков и чертежей. Для подготовки данных он писал скрипты на языке Python, которые постепенно становились все сложнее и функциональнее. В какой-то момент он, как и я, решил попробовать походить по собеседованиям на Python-разработчика. Результат был вполне ожидаемым — чистый Python, без фреймворков и опыта разработки законченных приложений, никому не нужен. Решил изучать Java, отучился на курсах (не на javarush). Во время обучения на каком-то форуме нашел предложение принять участие в OpenSource-проекте по разработке на Java веб-сайта для какой-то некоммерческой организации. Автор проекта ставил задачи, охотно консультировал и помогал. В результате, коллега многому научился и устроился на работу Java-разработчиком, естественно джуниором. Через год, набрав необходимый опыт, перешел в другую фирму — уже мидлом. Связывался недавно с ним, говорит — светло, тепло и сыто :). Вся эта история происходила у меня на глазах.
Молодец. Автор — сильный духом человек, настоящий спартанец. Мне 29, иногда поднимаю глаза наверх, смотрю на целый омут технологий и так и припечатывает «страх высоты». Завёл себе список мотивационных фраз, в периоды упадка пролистываю, вот некоторые из них:
— Никогда не жалейте своих сил, чтобы совершить то, во что верите!
— Причина, по которой люди быстро сдаются – они смотрят, сколько еще нужно сделать, вместо того, чтобы увидеть, как много уже сделано.
— Есть мечта? Беги к ней! Не получается? Иди к ней! Не получается? Ползи к ней! Не можешь? Ляг и лежи в направлении мечты!
— Запомни, если тебе трудно, значит ты идешь по верной дороге, в правильном направлении.
Уважаемый boyarskiy , благодарю за поздравления, но мне кажется, что вы немного преувеличили мои достижения. Мне, пожалуй, ближе такие высказывания:
— героизм солдат прикрывает просчеты генералов
— бойтесь ваших желаний, они могут исполниться
Первое — о том, что если для достижения цели требуются сверхусилия, то, вероятно, неверно выбран способ достижения цели. Второе — о том, что достигнув цели героическими усилиями, можешь с сожалением обнаружить, что она не столь замечательна, как представлялась издали.
Согласен, но я также считаю, что пока ты движешься вперёд, пускай не семимильными шагами, как хотелось бы, но все же движение есть, то ты должен всячески отбрасывать мысли со своими страхами и ползти вперёд. Нужно понимать: то что тебе было трудно сегодня, завтра покажется смешным. Под сверхусилиями я понимаю такую ситуацию, когда год или полтора ты прикладываешь все возможное для движения вперёд, а в итоге стоишь на месте. Вот только в этом случае я стану задумываться о неверности своих действий и о возможной смене курса.
Однажды Эдиссона спросили:
— Вы проверили уже около 1000 нитей накала и ни одна не подошла, не жалко ли вам потраченного времени?
На что Эдиссон ответил:
— Что вы, наоборот, я теперь знаю какие 1000 нитей мне не подойдут.
Ну, а что касается замечательности или незамечательности цели, то для этого нужно хотя бы к ней подойти и посмотреть вблизи, иначе по-другому ты её и не оценишь. Вот такая моя мантра ))
Большое спасибо за действительно интересный рассказ! Мне уже 28 лет, тоже пытаюсь слезть с иглы 1С, хотя, честно говоря, непросто совмещать работу с обучением (сидеть весь день за монитором на работе и дома). Иногда проскакивает крамольная мысль бросить все и продолжить развиваться в текущей профессии, но потом вспоминаю, что не просто так я все это начал, вспоминаю про возможность работы на зарубежный рынок в условиях нестабильного курса, хорошие офисы компаний, друзей программистов и пока получается найти силы продолжить учебу.
Уважаемый Kingpin , приветствую коллегу! 1С сейчас, конечно, уже совсем не тот, что был в 2000-х, версия 8.3 — вполне серьезный продукт, не привязанный к Windows. В отличие от Java, 1С вполне допускает существование «независимых консультантов», работающих исключительно на себя. Но Java, безусловно, интереснее и открывает большие возможности.
Честно говоря, мне в жизни так ни разу и не получилось изучить что-то принципиально новое параллельно с основной работой, без пересечений с ней. Надеюсь, вам это удастся. Успехов в этом нелегком деле и надеюсь прочитать на этом форуме вашу success story!
Кстати почему считается, что 1С это только в СНГ? 1C:Small Business вполне вышла на рынок США, и вполне себе сейчас там можно найти работу по этому направлению. Кстати Украина помоему лидер сейчас по продвижению этой платформы на рынке США.
крутая история ))
поражает, что автор ещё и перебирал офферы, для первой работы лучше так не делать, я считаю
я так и не понял какую контору в итоге выбрал автор?
сколько примерно было пройдено собеседований?
на какую позицию взяли? сразу на мидла?
Уважаемый Inspiron , рад что вам понравился рассказ. Для меня это не была первая работа, никто меня не гнал, скорее наоборот. Если вы помните, первоначально я вообще никуда не собирался уходить и затеял все только ради большей сговорчивости руководства. Но, как часто бывает в таких случаях, приоритеты поменялись по ходу дела, и поначалу вспомогательная цель (получить оффер) стала основной. Точное количество собеседований я не помню, но точно больше 10. Выбрал первое предложение. Явного деления по должностям на джуниоров — мидлов — сеньоров здесь нет, все определяется уровнем задач, которые тот или иной разработчик может решать.
Да, эту цитату я еще добавил, когда ты ответил мне за английский — это как оплеуха, хочется как-то оправдаться против этой цитаты, но как только говоришь «Но...» понимаешь что это не просто цитата — это факт.
Прочитал с удовольствием! Люблю детальные истории. Даже скомуниздил себе пару цитат :) и в который раз сделал один и тот же вывод, о котором всегда знал — единственное что нужно для успеха — писать код. Много кода.
Уважаемый Torin , спасибо за добрые слова. Все же считаю, что писать много кода — одно из слагаемых успеха, важное, но не единственное. Не менее важны теоретическая подготовка и знания в смежных областях, в частности, в администрировании.
Большое спасибо за откровения о жизненном опыте, у меня похожая ситуация в бородатом возрасте, когда приходится специализироваться и смещаться со смежной сферы.
Если не секрет, в каком городе это все происходило?
Происходило все в Санкт-Петербурге. А вы не хотите рассказать свою историю? Быть может, она тоже кого-то вдохновит оторвать пятую точку от дивана и стать Java-разработчиком?
Отличный опыт. Как же хорошо понимаю моменты отказа, когда козалось бы, что все хорошо и всех все устраивает (как казалось), но нет… Так меня встряхнуло и опустило на землю после собеседования в питерском епаме., да и в других компаниях…
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Дата первого комментария: 6 февраля 2017
Интересно.
И про результаты послушать интересно.
Обычно народ вмещает свои истории на 1 стр, а у Вас 5 частей получилось. Отсюда и вопрос. Извиняюсь, если прозвучало саркастически.
p.s. «уважаемая», но лучше без этого.
Автор, в каком году устроился и как оцениваешь работу в Питере по сравнению с Москвой?
Вроде бы в тексте достаточно информации для привязки рассказа по времени. Устроился в 2016 году.
В Питере средняя вакансия Java-разработчика дешевле соответствующей Московской процентов на 30, наверное. У меня нет опыта поиска работы в Москве, но по словам знакомых, там такой же дефицит разработчиков. Не от хорошей жизни московские компании создают центры разработки в регионах.
Интересно, как ты видишь ближайшее будущее разработчика на java, увеличится ли хайп на эту сферу?
В плане моды — пока что растет интерес к Scala, хотя непонятно, надолго ли это. Scala-разработчики сейчас стоят дороже, чем Java. Groovy, похоже, «не взлетел», если не считать Gradle. Есть перспективы у Kotlin, но он скорее для мобильной разработки.
Вот на хабре отличная статья по теме: Каково это — быть разработчиком в России, когда тебе сорок
То, что кто-то что-то делает в 40 лет, еще не значит что у тебя в твои 40 тоже получится. Это в шесть можно всех поголовно отправить в школу и научить читать и писать. К 40 годам все подходят с очень разными рюкзаками прожитой жизни за спиной. Здесь будут играть значение очень многие факторы. И все сведется к одному вопросу: способны ли вы в свои 40 за короткий срок качественно усвоить огромный массив информации и получить достаточные навыки в использовании ее (здесь имеются в виду не только умственные способности, но и здоровье и текущая жизнь, обязанности в ней)? И это опять же ничего вам не гарантирует. В утверждении, что рынок IT нуждается в большом количестве программистов почему то все забывают о том, что это не относится к джуниорам. Нужны мидлы и сеньоры. С джуниорами хотят нянчиться единицы, а вливается их на рынок труда сотни и тысячи. Например вот занятное видео на эту тему.
А мне все таки иногда приходят в голову мысли «а не поздновато ли?». А мне, оказывается, «всего 27» :)
Но есть один вопрос (это, конечно, личное, но все равно задам):
У вас есть семья? Если да, то как вы умудряетесь за несколько дней прочитать книгу, написать рабочее приложение и т.п.?
Здесь все говорят про отмазки, а у меня реально 1,5 — 2 часа в день времени (время между отходами ко сну ребенка и моим).
Как прочитать книгу за несколько дней? Выборочно. Читаешь только то, что тебе в данный момент нужно, остальное пролистываешь. Видимо, у меня как-то сама собой выработалась методика быстрого чтения. На английском получается медленнее, но упомянутые мною книги — на русском, и в них довольно много «воды». Книгу «Spring 4 для профессионалов», например, так не прочитать, на нее ушло недели 3, наверное.
Как быстро написать работающее приложение на технологиях, которые ты
видишь в первый раз в жизнизнаешь неважно? Естественно, копи-пастой со stackoverflow и кучи других ресурсов. Вот чему действительно надо обязательно научиться — это правильно строить поисковые запросы. И еще один полезный навык — владение приемами работы с Legacy-кодом. Поищите по этим словам, можно найти несколько статей на русском, книг вроде бы нет. Я упоминал в своем рассказе, что постоянно приходилось разбираться без документации в чужом коде без описаний, это как раз оно. При этом, среди прочего, быстро учишься искать информацию именно по данному, конкретному вопросу, потому что на систематическое «погружение» в десятки задействованных технологий, библиотек и фреймворков времени, естественно нет.Сам я думаю, что тайм-менеджмент был придуман для офисных клерков, которые изо дня в день выполняют тупую однообразную работу. Тут можно и оценку времени дать, и все распланировать заранее. Программирование — одна из самых гуманитарных специальностей среди технических, ближе к творчеству, чем к технике. Это подтверждается тем фактом, что до сих пор не существует способа определить, сможет ли тот или иной человек стать разработчиком, или нет, только учить и пробовать.
К вопросу Santegra о жизненных силах — если еще не занимаетесь, то попробуйте заняться спортом и стремиться к какому-нибудь высшему достижению в нём(используя научный подход). Сил сразу станет много и голова будет свежая, кроме того придется освоить все перечисленные выше товарищем boyarskiy истины(и своих еще куча появится), без которых высших достижений сложно добиться.
Заниматься спортом полезно, но не с целью ставить рекорды. Рекорды требуют много времени и часто безвозвратно портят здоровье. Особенно, если начать заниматься «резко» и не с детства. Опять-таки, пишу на основании собственного опыта.
Я сначала хотел просто для здоровья, но по характеру не могу топтаться на месте, хочется развиваться всё время, так же как и в кодинге :)
Возник вопрос: из каких источников черпаются жизненные силы? Неимоверно сложно пройти описанный автором путь, причем в возрасте, когда многие сдаются практически без боя.
Я не переходил в разработку, я занимался разработкой, как это называется, в «инициативном порядке», в свободное от основной деятельности время.
Почему так интересуюсь… потому что сам уже не мальчик по паспорту, и стартовые условия имею похуже. Почти на всех ресурсах связанных с программированием которые просмотрел подымается тема возрастных программистов и везде мотив песни один и тот же: возраст > 35 и Junior = долгий, безуспешный поиск работы. Единичные истории успеха остаются единичными. Некоторые так вообще вызывают сомнение (аля +35 лет, работал вообще не в ИТ, прошел трехмесячные курсы, самостоятельно разработал свой проект с использованием популярных фреймворков, устроился на работу. И это все за полгода.).
Возможно, что возраст >35 + джуниор = безуспешный поиск работы, но если первое слагаемое в этом выражении не изменить, то второе — вполне себе меняется. Один мой бывший коллега проработал до почти 40 лет в отраслевой типографии, где издавались каталоги и справочники с кучей таблиц, графиков и чертежей. Для подготовки данных он писал скрипты на языке Python, которые постепенно становились все сложнее и функциональнее. В какой-то момент он, как и я, решил попробовать походить по собеседованиям на Python-разработчика. Результат был вполне ожидаемым — чистый Python, без фреймворков и опыта разработки законченных приложений, никому не нужен. Решил изучать Java, отучился на курсах (не на javarush). Во время обучения на каком-то форуме нашел предложение принять участие в OpenSource-проекте по разработке на Java веб-сайта для какой-то некоммерческой организации. Автор проекта ставил задачи, охотно консультировал и помогал. В результате, коллега многому научился и устроился на работу Java-разработчиком, естественно джуниором. Через год, набрав необходимый опыт, перешел в другую фирму — уже мидлом. Связывался недавно с ним, говорит — светло, тепло и сыто :). Вся эта история происходила у меня на глазах.
— Никогда не жалейте своих сил, чтобы совершить то, во что верите!
— Причина, по которой люди быстро сдаются – они смотрят, сколько еще нужно сделать, вместо того, чтобы увидеть, как много уже сделано.
— Есть мечта? Беги к ней! Не получается? Иди к ней! Не получается? Ползи к ней! Не можешь? Ляг и лежи в направлении мечты!
— Запомни, если тебе трудно, значит ты идешь по верной дороге, в правильном направлении.
Автор поступал именно так. Ещё раз поздравляю.
— героизм солдат прикрывает просчеты генералов
— бойтесь ваших желаний, они могут исполниться
Первое — о том, что если для достижения цели требуются сверхусилия, то, вероятно, неверно выбран способ достижения цели. Второе — о том, что достигнув цели героическими усилиями, можешь с сожалением обнаружить, что она не столь замечательна, как представлялась издали.
Однажды Эдиссона спросили:
— Вы проверили уже около 1000 нитей накала и ни одна не подошла, не жалко ли вам потраченного времени?
На что Эдиссон ответил:
— Что вы, наоборот, я теперь знаю какие 1000 нитей мне не подойдут.
Ну, а что касается замечательности или незамечательности цели, то для этого нужно хотя бы к ней подойти и посмотреть вблизи, иначе по-другому ты её и не оценишь. Вот такая моя мантра ))
Честно говоря, мне в жизни так ни разу и не получилось изучить что-то принципиально новое параллельно с основной работой, без пересечений с ней. Надеюсь, вам это удастся. Успехов в этом нелегком деле и надеюсь прочитать на этом форуме вашу success story!
поражает, что автор ещё и перебирал офферы, для первой работы лучше так не делать, я считаю
я так и не понял какую контору в итоге выбрал автор?
сколько примерно было пройдено собеседований?
на какую позицию взяли? сразу на мидла?
Если не секрет, в каком городе это все происходило?