К звездам через тернии

Челябинск. 2015 год. Пятый курс педагогического колледжа, преддипломная практика успешна завершена. Впереди два коротких месяца до… Неизвестности.

Конец лета 2016 года, Питер. Я веду внутренний спор сам с собою. Нет, нужно звонить родителям незамедлительно, такая новость, а они не верили. Но вдруг что-то пойдет не так? Лучше дождаться окончания испытательного срока, и вот тогда. Но целый год безуспешного поиска! Боже, как хочется рассказать всем. Но нельзя.

Сейчас я полон сомнений. Это ли мой путь?

Я помню весну 2015 года солнечной. Знакомые студенты, как впрочем и я сам, бегают в радостном волнении. Немного страшно, но хорошая погода, близость конца пятилетнего обучения пьянят. Все только и разговаривают о дипломе или о том, что дальше. Я возвращаюсь в общежитие, закрываю дверь в комнату. Действительно, а что же дальше? Я — будущий молодой учитель? Возможно во мне всегда было что-то, что говорило нет. Тут и мой цинизм, амбиции, тщеславие, — в общем все то, что хорошему учителю категорически запрещено. Я не пытаюсь оскорбить педагогов, но именно в нашей стране — это одна из тех профессий, от которых, если ты не абсолютный альтруист, нужно спасаться, как с идущего ко дну корабля.

Однажды, еще десятилетним мальчишкой, я зашел домой и — о чудо! — я увидел компьютер. Новенький, шумно жужжащий Pentium 3 или 4? В первый же день я побежал к друзьям за их играми — GTA, Need for Speed, Warcraft III. Теперь, спустя десяток лет с небольшим, я жалею, что мои родители, как вероятно многие родители тех времен, не увидели всех возможностей этого чуда 20 века, компьютеров. Поэтому, пройдя через бесчисленное количество ссор, запретов и обид, я стал всего лишь типичным подростком-геймером. Хотя можно выделить небольшой плюс: в силу того, что мой уже второй компьютер имел всего лишь 256 МБ оперативной памяти (и соответствующее ей остальное железо), мне постоянно приходилось искать способы повысить производительность в играх. Так, например, я научился переустанавливать Windows и прочий нужный софт и даже немного зарабатывал на этом, помогая студентам и знакомым с их компьютерами.

Не знаю, как так вышло, что лишь на последним курсе, перед лицом все нарастающей угрозы «стать никем», я задумался о том, чтобы попробовать себя в программировании. И я все еще иногда спрашиваю себя: почему не раньше? Первые попытки были не совсем удачными: в русском сегменте интернета были (и есть) в большей части лишь половинчатые статьи и примеры программ, которые лишь немного сложнее «Hello, World!», и почти не приносили какой либо практической ценности. Затем, в силу того, что по специальности я «учитель иностранных языков», я попробовал искать информацию на английском языке. Так я нашел потрясающий сервис Khan Academy с их курсом по Java Script, этим сервисом я пользуюсь и сегодня, но изучаю уже другие предметы. Не помню точно, но тогда еще на Khan Academy не было курсов по полноценному Web (либо я их не нашел), поэтому закончив их курс по JS, я оказался в очередном тупике. А затем я открыл для себя Javarush.

Как вероятно у многих, мои первые 10 уровней пролетели быстро. Меня очень удивил и понравился их стиль преподавания (учитель оценил). Оценил я и предприимчивость создателей сервиса — ведь до сих пор у JavaRush нет подобных по стилю и контенту конкурентов. А как, хотя это и очень банально, грели ум и сердце их истории в конце каждого уровня про успех, образование, заграницу! Поэтому, почти не раздумывая, я купил курсы.

Было особенно тяжело, когда я добрался до 15-16 уровней. Работа с потоками, нитями и прочими непонятными вещами, — все это обескураживало. Были моменты, когда я забрасывал учебу, потому что больно. Больно от того, что 20 попыток, а задача не проходит проверку. Явно грешил — копировал решения задач с github, при этом не всегда вдумываясь, что же я копирую. Так я добрался примерно до 25 уровня. На фоне неуверенности в себе, самокопания от того, что я не самый «честный» ученик, во мне зарождалось какое-то еще одно не очень приятное чувство. Что-то не давало мне покоя, пока наконец я не осознал что: я понял, что несмотря на 25+ уровень, я все еще ничего не знаю и не умею толком. Имеется ввиду именно то, что я до сих пор не мог просто сесть и написать что-то действительно важное и полезное. Не видел общую картину того, как строятся большие, мощные приложения. Одно дело решить интересную логическую задачу, и совсем другое — написать игру, мессенджер, свой сайт. Программирую, не умея программировать.
Здесь я принял одно из своих очень важных, но по наивности абсурдных, даже в каком-то смысле глупых, недалеких, решений: Я переезжаю в Питер.

Я переезжаю в Питер не просто так: в Челябинске нет вакансий Java программистов. Москва отпугивала количеством живущих там людей, ценами и всеми теми «байками», которыми любят делиться люди, никогда не жившие ни в одной из столиц. В то же время, Питер казался загадочным, манящим, эдаким застрявшим в 19 веке прибежищем для не нашедших себя романтиков.

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

Приехав, я сразу же записался на JPoint — конференцию для Java разработчиков (в тот раз специально для студентов). Не знаю для чего я пошел туда с моими-то знаниями, но скорее всего инстинктивно, для еще одного хорошего «пунктика» в резюме. Поиски начались в октябре 2015. Свою первую работу я нашел в августе 2016. В октябре и ноябре я был воодушевлен, коленки на первом собеседовании тряслись, а отказы расстраивали не так сильно — все-таки я же еще новичок? Настроение сильно ухудшилось зимой. К весне я нашел «стажировку мечты» в одной хорошей немецкой компании. Провал. Как раз в марте — ровно год покупки курсов на JavaRush. А теперь добавьте сюда еще отсутствие денег, коммуналку, в которой и врагу не пожелаешь жить, отсутствие работы вообще какой бы то ни было, а главное каких либо новых перспектив. И здесь я сдался. Забыл о программировании на 4 месяца. Не мог о нем думать. Малейшая мысль о том, чтобы «покодить», вызывало чувство паники, отвращения и тошноты.

И вот он я — промоутер на главной улице Петербурга. С дипломом учителя иностранных языков, с разбросанными по всему уму знаниями-ошметками про Java, SQL, Spring, Hibernate, HTML, JS, CSS. Да, наши экскурсии на теплоходах лучшие. Yes, we have blankets and english audio guide. Давайте я вас провожу к причалу. Нет, из-за того, что я вас провожу, цена билета не изменится.

Думая об этом сейчас, я понимаю, что был неправ — нужно было лучше готовиться к собеседованиям.

А затем как всегда, как это часто случается во всех банальных цитатах, в одинаковых как день фильмах и кричащих безвкусицей киосочных книгах — произошло чудо, которого ВОТ ПРЯМО СЕЙЧАС ты не ждал. Только, как в случаях с фильмами, я не влюбился — первая работа программистом нашла меня. В конце июля, начале августа, я решил «просто отправить пару резюме». Обычное тестовое задание, обычное собеседование. Обычное неверие, что мне хотя бы даже ответят. Правда времени дали немного, а с моими 14,5 часов сменами его еще меньше. Кое как успел, отправил и забыл. Потом, в самый обычный день, я зашел на почту и не поверил тому, что прочитал. Прочел еще раз. И еще. И еще.

Первые дни. Я всего боюсь. Какие-то люди, объясняют, что делать, из чего состоят наши сервисы, как все работает. Я киваю, запоминаю ровным счетом ничего. В конце рабочего дня я выжат, сил, как и желания что-то делать, нет. Успел выполнить первое задание за 3 недели (которое сейчас я сделал бы за день). Меня похвалили, сказали, что со следующего месяца я полноценный член команды. Здесь я даю себе волю похвастаться всем, кому хотел все это время, но не мог, так как боялся потерпеть еще одну неудачу. В голосе гордость. Вот, вы не верили, а я смог. Нет, мне не нужен институт, я сам. Не хочу терять время и деньги.
По улице иду улыбаясь, с превосходством и самодовольством поглядывая на «людишек». Не верю, что мне платят столько за то, что я… сижу перед компьютером. Это так странно. С каждым месяцем становится все легче; я уже не выжат как лимон в конце рабочего дня. Повышение. Нашу команду пригласили на хакатон для студентов. Иронично, что я один из менторов и студенты идут ко мне с вопросами. Чувствуешь, как твои знания ширятся, как земля под ногами становится тверже. Но вместе с этим я понимаю, как много еще я не знаю.

Попытки создать с другом свой проект. Первое понимание того, как сложно приложение довести хотя бы просто до работающего прототипа. И дело тут не в сложности. Нехватка времени, усталость от «кодинга» после работы, лень, другие отговорки. Замкнутый круг. Я вспоминаю лектора из той немецкой компании, из которой я с треском вылетел; он с горькой иронией рассуждал про то, как много молодых стартаперов действительно становятся таковыми в реальности, а не просто в своих мыслях.

Сейчас я полон сомнений. Это ли мой путь? Банально, но худа без добра не бывает. Вскоре я начал понимать, что хотя Java — очень мощный язык, возможности которого огромны, — его применение ограниченно. Мне мало, если так можно выразиться, Web Enterprise'a. Да и потом, я называю себя программистом, но действительно ли являюсь им, а самое главное — хочу ли? Скорее всего, это лишь одна из множества мелких остановок на пути к заветной, но едва ли выполнимой мечте — найти настоящего себя. Найти и проявить то, что не зависит от уровня зарплаты, престижности и нужности профессии сегодня.

В итоге я все же рад, что хотя и было тяжело, но я смог достичь цели — стать программистом, и это на фоне гуманитарного коллежского образования и отсутствия технического профильного. Но я знаю, что это не предел. Во мне все еще живет безумное желание двигаться дальше, учиться новому, искать себя. И даже если я решу посвятить свою жизнь изучению чего бы то ни было другого, мой опыт обязательно пригодится мне.

Господа! В полку прибыло.

Привет, парни! Когда-то, почти полтора года назад, я читал здесь посты о том, как люди становились программистами — по-разному — и мне это правда помогло, показав, что такое возможно. Что ж, пора платить ту же дань, для будущих переквалифицировщиков. Надеюсь, кому-то это так же поможет, как помогло когда-то мне. Итак, поехали!

Мой путь в программирование можно поделить на два “плана”, уровня: один — материальный, другой — идеальный. Начнем с первого — он забавный.

Когда-то давно, 29 лет назад, я родился в очень странной семье. Мои родители были выпускниками журфака, бабушка — пианистка, дедушка — физик. С детства я решительно ненавидел читать, но любил музыку и математику. Мама, будучи преподавателем английского, с 4 лет меня обучала языку, а бабушка с 5 лет — музыке. В школе я был сорванцом и затейником, по русскому и литературе — катастрофой, в геометрии и физике — любопытным пионером. Но в 13 лет случилось несчастье, я получил компресионный перелом позвоночника и, не имея возможности сидеть, стал много играть на кларнете. Так я оказался в музыкальном училище через три года.

Но которое не привело меня в Гнесинку, где преподает, кажется, и по сей день мой профессор, И.П. Мозговенко. На 4 курсе я надумал жениться, решил, что пора работать — и стал готовиться к этому.
А что умеет человек, который 7 лет профессионально играл на дудке? Решив, что мне не хватает “кругозора” и всего гуманитарного, что входило в круг обязательного лет 130 назад, я оказался на журфаке, в след моих родителей, сам, по собственной воле.

Забавно, но писать именно в журналистике мне так и не пришлось, за исключением пары месяцев работы в КП, в новостном отделе. Я стал преподавать язык (англ) сам, лет с 20, в 23 на год сгонял в Питер, открыл два Циферблата там (антикафе). Вернувшись, остановился на работе с языком: учил, переводил, работал редактором, написал кое-что в качестве лит.раба (часть книги).

И тут-то я стал закисать. И тут-то мы переходим ко второй части, идеальной.

С детства мне нравилось все необычное. Сначала мне нравилась идея ангелов и бога — самому хотелось летать и помогать людям. Мама, сказав, что для этого сперва придется умереть, ловко остудила мой пыл. Но вектор порыва остался.

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

В итоге, мне осталось утешать себя тем, что в педагогике я могу делать небольшое “добро” для страны, для людей, а работой со словом занять себя трудным и интеллектуальным трудом. Но и тут…
Педагогика быстро превратилась в рутину. Я видел, что язык знают, в итоге, те, кто им пользуется и его любит, а не кто учит. А полезность работы со словом…

Когда я говорил, что я работаю переводчиком или что пишу, я чувствовал взгляды людей, мол — не высоко, парень, не высоко. Что качественный перевод или качественный текст настолько нисшевый товар сейчас, что я не могу представить себе уважающего себя и нуждающегося в средствах человека, кто мог бы им заниматься. И если когда-то работа со словом была элитарной (XIX век), то сейчас я просто не в обоиме. Я в прошлом веке. Все мои знания литературы, истории, текстов, никому толком не нужны. Я могу развлекать этими знаниями собеседников, но продать это некому — с этим можно только корешиться с нужным людьми (что я вижу ниже своего достоинства) либо идти на ТВ и кромсать бюджет на свой лад (что я ненавижу).

И тут-то я стал закисать. Я стал погружаться вечерами в игры, проводя огромное количество времени на англоязычных форумах, изучая игровую журналистику и т.п. Я строил графики для игры типа Цивилизации, искал оригинальные способы перепройти Dark Souls и т.п. Жена, видя как занудно и упорот я играю в игры, как-то в шутку сказала, что с моим-то рвением в играх неплохо было бы попробовать заняться программированием.
И я подумал, а отчего бы и нет. Дальше — путь обычный. Гугл, JavaRush — меня затянуло; шло легко, быстро, я был на коне. Потом встретилась многопоточность — и я вообще засомневался, программирование — это для меня? Так или иначе, дойдя до 23 уровня, я стал задумываться, а что я, собственно, буду делать на работе. Распустил, скрепя сердце, моих учеников, оставил переводы — и стал присматриваться к вакансиям.

Выбор, по сути, был такой: или java jun или android jun. Я, решив, что android будет повеселее, стяпляпил одно приложение и стал ходить по собеседованиям, который получал с известного всем сайта по поиску работы (обойдемся без лишней рекламы).

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

Что можно сказать о моем опыте именно устройства на позицию Android джуна — ошибка была полагать, что мне, с примерным знанием Java, хватит совсем небольших знаний по Android, а остальное подтянется. Android — отдельная платформа, в которой куча своих классов, сложностей и подводных камней, типа памяти и скорости отрисовки экранов. О чем я не знал вообще ничего, когда начинал. Так как меня взяли?

Я сейчас очень странную вещь скажу — я сам не до конца понимаю всех выводов и даже входных данных этого явления — но для устройства на работу мне мои знания программирования не пригодились вот от слова вообще. Мне задали один или два глупых вопроса, типа, как у меня в приложении post запросы выполнялись и какие структуры данных я знаю (я назвал штуки три, которым пользовался, не сказав даже про деревья). Так что же?
Во-первых, мне просто повезло. Им нужен был срочно сотрудник (набрали больше проектов, чем могли сделать), на рынке с мобильными разработчиками туго — и парень, которого они нашли, был готов выйти спустя полтора месяца, а я — сразу, и мне решили дать шанс. Мораль — пробуйте, даже когда шансов мало. Не пробуете — шансов нет. И мало — тоже количество.

Во-вторых, мне помог не связанный с программированием бэкграунд. Оказалось, что ген.дир по совместительству музыкант, и мой муз.колледж завоевал его личный интерес и симпатию. Опыт руководителя косвенно свидетельствовал, что я человек ответственный, грамотная речь — адекватный, а то, что женатый — косвенно о том, что надежный. Женатые меньше рискуют, у них есть (в теории) ответственность. Вывод — лишних знаний не бывает.

В-третьих, личное впечатление. Я открытый человек, без особых закидонов, люблю общение. В маленьких коллективах это важно, так как кому приятно 200+ дней в году смотреть на буку. Вывод, на работу берут человека люди, а не винтик шпунтика.

В-четвертых, образование. МГУшный диплом косвенно говорит о способности поглощать и обрабатывать информацию. Теме “пригодилось ли мне мое образование” я бы мог посвятить научную работу — и не прийти к однозначному выводу, но одно точно: я научился обрабатывать огромные пласты информации и как бы чувствовать, что первично, что вторично в любой области, с которой сталкиваюсь. И этим навыком до журфака я не обладал.

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

В итоге, я достиг своей цели — получил работу программистом, и, если честно, как только получил — сразу спросил себя, успех ли это? Получать я стал в три раза меньше, стресс, связанный с количеством нового, ощутим и не маленький. Программисты порой — очень своеобразные люди, и с некоторыми мне тяжело найти общий язык (а некоторые из них — абсолютнейшие душки).

Но в итоге, я прихожу к выводу, что это действительно успех — и что я принял правильное решение. Во-первых, я четко знаю, что то, чем я занимаюсь, это, в некотором роде, арьергард современной культуры. Надо мной уже не смеются, когда я говорю, что я разработчик. Мы делаем нужное всем, сейчас все пользуются результатами нашего труда, и без него свою жизнь большинство слабо представляет. Во-вторых, в перспективе меня ждут многие еще более интересные отрасли (например, андроид в интернет-вещах, в автомобилях), другие города (хочу вернуться в Питер), другие страны (почему бы не пожить в другом месте, если языкового барьера нет?). В-третьих (и это было одной из причин оставить работу со словом и педагогику) — в третьих, программирование — это поток нового на всю жизнь. Да, скажете вы, это стресс, но отсутствие нового — это смерть. Это тоска. Люди, которые погружаются в рабочую рутину, немножко умирают внутри. Ведь детство — это когда вокруг новое. Программисты в чем-то всегда дети, потому что мир для них — вернее, в мире для них всегда есть новое.
Наверное, другие выводы и другие мысли посетят меня спустя год, пять, десять на счет этой вехи в моей жизни. Возможно, я когда-нибудь оставлю и эту профессию и вернусь к письму — кто знает. Но пока мой опыт такой, им и хотел поделиться. Дерзайте те, кто в раздумье. Жизнь одна, зачем ее тратить в нерешительности?
Успехов!

ps
Рассказ получился довольно выборочным, но занудства освящать каждый аспект методично не хватает. Есть вопросы — задавайте!
  • ,

Завершение истории «Как тревожен этот путь!». Часть 3.

Для справки:

«Монреа́ль — самый крупный город в провинции Квебек и второй по величине город в Канаде. Название Монреаль произошло от горы Mont-Royal (Королевская гора), находящейся в центре города, на старофранцузском это звучало как Монт Реаль. Монреаль обыкновенно занимает высокие места в рейтинге самых удобных для жизни городов в мире. Журнал Monocle Magazine назвал город «культурной столицей Канады». Уступив в середине 70-х титул экономической столицы Торонто, Монреаль остается важным деловым, промышленным и культурным центром Канады. В числе наиболее значимых отраслей: аэрокосмическая, биотехнологическая, фармацевтическая, отрасль информационных технологий, туризм, киноиндустрия, а также развитая индустрия компьютерных игр.» [из Википедии]

Познавательный выпуск сериала «Орёл и решка» о Монреале: www.youtube.com/watch?v=XYuiSXrkL5E

Можно ли жить в Квебеке без знания французского языка?

«Французский язык является официальным языком провинции Квебек. За пределами Монреаля и Шербрука в Квебеке говорят почти исключительно по-французски и могут не понять английскую речь. Монреаль – двуязычный город, и в нем есть большая англоязычная часть, однако на практике обычно в Монреале нужны оба языка. Только с английским можно найти работу в IT-индустрии.» [из ЧАВО]



В общем, после интервью в Москве французским языком я не занимался и он остался на том же уровне, что и был — je m'appelle Dimitri. Этого, как вы понимаете, было недостаточно для работы во франкоязычной компании. К счастью, в Монреале полно IT компаний, ориентированных на англоязычную Канаду и США.

В Москве я приобрёл небольшой опыт разработки web приложений на Java, то есть имел некоторое понимание, что из себя представляет MVC паттерн. Он используется, чтобы отделить «мух от котлет», то есть бизнес-логику (модель) от представления (JSP-страницы). Контроллер, в данном случае — это сервлет, отвечающий за обмен данными между моделю и представлением в виде простых JavaBeans. Поэтому я подготовил два резюме — в первом акцент делался на разработку Web приложений на Java, а второе резюме было более общим и годилось практически для всех софтверных позиций — software and/or database development.

Одна из компаний прислала тестовое задание, которое я сделал и отправил. После этого было назначено техническое интервью по телефону. Были стандартные вопросы, но как выяснилось, у меня обнаружились большие пробелы, и не только в JavaEE, но и в Java Core и Fundamentals. Madre mia! Не говоря уже о том, что вопросы про Inversion of Control, Dependency Injection, Design Patterns, Data Persistence, Object-Relational Mapping и прочее, и прочее, вызывали такое же состояние изумления, как удары палкой по голове в дзене. Кроме того, необходимо было иметь опыт работы с популярными фреймворками Spring и Hibernate, чего у меня не было. В общем, стало понятно, что так просто с кондачка без серьёзной теоретической и практической подготовки, интервью даже на позицию Java Junior пройти не удастся.

Короче, я решил забить на Java, чтобы не позориться. Тогда на помощь пришёл старый добрый PL SQL. И вот, [снова опускаю лирику] через два месяца интенсивного поиска, в июле я вышел на работу. Французский там не требовался. Аллилуйя!

Через три года проект, на который меня взяли, успешно завершился, и снова встал вопрос о трудоустройстве. За это время я посещал вечерами курсы Françisation, и закончил шесть уровней, плюс два курса Français écrit. После чего мой французский значительно продвинулся. К слову, если вы знаете английский и русский, французский вам будет даваться намного проще. И там, и там очень много слов, заимствованных из французского. Я например, всегда считал, что слово «кошмар» – на сто процентов наше русское, а нет!

Я подготовил резюме на французском. Соответственно, мои шансы и охват поиска стали значительно больше. Это сработало и меня взяли на работу в банк. Опа! Но нет — не как développeur, а на должность «эникея». Нужно было следить за тем, чтобы система on-line банкинг и все прочие банковские приложения работали без перебоя, и бить тревогу, если в процессе эксплуатации возникали технические сбои и проблемы. В мои обязанности также входило быть связующим звеном между внутренними пользователями системы и отделом разработки программного обеспечения. Если обнаруживался баг [anomalie], нужно было проследить, чтобы заявка на изменение [demande de changements] не затерялась где-нибудь по дороге и была принята к исполнению. По-французски это называлось — spécialiste au soutien technique, niveau 1, la résolution d’incidents et de problèmes techniques, mise en place les modifications applicatives selon les demandes de changements et le soutien technique d'applications Intranet et Web (если интересно, что это означает, можете воспользоваться Google переводчиком). Тогда же я приобрёл подписку на JavaRush. Так прошёл ещё один год. И только совсем недавно я, наконец, попал туда, куда стремился всё это время – в отдел разработки, но уже в другом банке. Если бы мне сказали пять лет назад, что я буду проходить собеседование и писать технический тест по Java на французском, я бы не поверил!

Вы можете спросить, а при чём здесь JavaRush? Он мне как раз очень помог прокачать базовые skills и залатать дыры в понимании некоторых важных тем, взять хотя бы такие фундаментальные вещи как работа с коллекциями, обработка исключений и multithreading. Да, у меня была неплохая база и первые двадцать уровней я проехал автостопом, без особых затруднений. В блогах я читал, как кто-то жаловался, что заплатил деньги, но не получил сервис, на который рассчитывал. Мне забавно читать эти жалобы, зная сколько народ платит здесь в Канаде за обучение программированию в частном колледже за равноценный опыт. Чтобы научиться программированию, надо программировать… Это — аксиома!

JavaRush – это прежде всего инструмент, тренажёр, средство передвижения, как автомобиль. Покупая подписку, вам дают, как бы, ключ зажигания. Прежде чем сесть за руль, вам надо хотя бы решить куда ехать. Вам не хватает теоретической подготовки? Начните с изучения дорожной карты, чтения пособий Head First или Thinking in Java, тюториалы по Java на сайте Oracle. Подпишитесь на форумы разработчиков типа Хабрахабр. И главное, я считаю, чем ценнен этот ресурс – это community, то есть сообщество людей, связанных одной целью, имеющих общую страсть, страсть к программированию. Вот на такой позитивной ноте я, пожалуй, и закончу! :)

  • ,

Продолжение истории «Как тревожен этот путь». Часть 2.

«Бешеной собаке семь вёрст – не крюк!» [Народная мудрость]


Первая часть
Вы хотите историй? Что ж, их есть у меня! :)

Итак, я опускаю излишние подробности — что меня подвигло к отъезду и почему в итоге я отправился в Канаду, а не в Австралию или Новую Зеландию, и не в сказочную Англию, где мне довелось побывать впервые в 2003 году.

Канадский проект был совершеннейшей авантюрой от начала и до самого конца. Для того, чтобы пройти по федеральной программе skilled worker, мне не хватило двух баллов. Что делать?! К счастью, в Канаде есть провинциальные программы. После предварительной оценки, я подсчитал, что у меня достаточно баллов, чтобы попытаться пройти по программе франкоязычного Квебека, о существовании которого я не ведал до сего времени. Хотя нет – помнится это слово однажды привлекло моё внимание, точнее не само слово, а красочная обложка книжки под названием «Анжелика в Квебеке», на которой была изображена пышногрудая рыжеволосая дива. Это был один из любовных романов о приключениях юной француженки в библиотеке моей мамы. Впрочем, тогда я решил, что Квебек – это, должно быть, где-то во Франции… Mille pardons, прошу прощения за лирические отступления, я снова отвлёкся… Всё прекрасно, но было одно препятствие, досадная неприятность — необходимо пройти собеседование с иммиграционным чиновником на французском языке. Mon Dieu!

В школе я изучал английский, по-французски я знал только одну фразу, которую произносил Киса Воробьянинов в фильме про великого комбинатора О. Бендера: «Madame, je ne mangeais pas six jours!» (Мадам, я не ел шесть дней), чего было явно недостаточно. Накормить-то, может быть, и накормят, но на работу вряд ли возьмут. Всё же, я подал документы, особо не надеясь, что мне ответят, но медлить было нельзя, так как иначе вскоре я потерял бы баллы за возраст. И вот через пару месяцев я получаю приглашение на интервью, которое должно состояться в посольстве Канады в Москве через полгода. И снова я опускаю лишние подробности, как я готовился к интервью [...] В результате, я успешно его прошёл, не смотря на то, что от начала и до самого конца не верил, что это получится. И вот мне торжественно выдают сертификат отбора Квебека в красочной папке «Bienvenue au Québec!» Где-то в архивах форума Café Québécois пылится подробный рассказ о том, как я готовился, и о самом интервью.

Alors, получив иммиграционную визу, по которой я должен въехать в Канаду не позднее 23 мая 2009 года, я понял, что ни морально, ни вербально, вообще не готов прямо сейчас так всё бросить и сделать столь ответственный и серьёзный шаг. Однако, после стольких усилий и финансовых трат, отступать было бы проявлением малодушия. Я решил взять отпуск просто съездить посмотреть и заодно навестить моих друзей в Торонто, которые уехали раньше и уже получили гражданство. По программе skilled worker, как я упоминал выше, при первом въезде вам сразу дают статус постоянного жителя и чтобы его не потерять достаточно жить в Канаде два года из каждых пяти. То есть теоретически у меня было ещё три года в запасе, чтобы окончательно решить надо оно мне это счастье или «нас и здесь неплохо кормят». На тот момент мне уже было 38 лет. Не даром говорится, бойтесь своих желаний — они могут сбыться! Короче, я возвращаюсь в любимый Питер.

Незаметно подкралась — нет, не старость! Не угадали. Незаметно подкрался 2012 год. В мае истекал срок моего допустимого отсутствия в Канаде, позже которого я терял статус постоянного жителя. На форуме Café Québécois я читал много историй и восхищался упорством тех, кому отказывали по нескольку раз, а они всё подавали и подавали документы и в итоге получали заветный сертификат отбора. Должен заметить, я не из тех, кто будет ломиться в закрытую дверь или биться лбом об стену, как отец Фёдор из того же фильма «12 стульев» про О.Бендера, если мне не открывают. К тому времени мне удалось подкопить денег, но их хватало лишь на билет туда-обратно и на время поиска работы, примерно месяца на три. Так! Решено — если я не получу job offer за это время, да не больно-то и хотелось! Вернусь обратно в Москву, куда я, напомню, переехал в конце 2010 года.

— Вы утверждаете, что человек может поднять себя за волосы?
— Обязательно! Мыслящий человек просто обязан время от времени это делать
[цитата из фильма «Тот самый Мюнхгаузен»].



Короче, длинные проводы — долгие слезы. В конце апреля прилетаю в Торонто, где останавливаюсь у друзей. Рассылаю пачками резюме и… тишина! Перезвонил только один агент, судя по акценту индус, чтобы уточнить, если ли у меня какие-нибудь сертификаты. Сертификатов у меня не было, и не было времени их получать. Кстати, если вы тоже посматриваете за бугор, всячески рекомендую получить официальные сертификаты по Java от Oracle. Ваши шансы привлечь внимание к своему резюме и быть замеченным будут намного выше.

Немного подкорректировав своё резюме, я начал рассылать не только на объявления в Торонто, но также в Оттаве и Монреале. И вот через неделю у меня было уже три приглашения на интервью… в Монреале! Ну, что ж, как говорит народная мудрость: «нищему собраться – только подпоясаться!» или «бешеной собаке семь вёрст – не крюк!»

Продолжение следует

Один день из жизни Java-разработчика. Часть 1

Приветствую, уважаемые коллеги! После публикации «20+ лет спустя», некоторые читатели попросили написать продолжение истории. Про что же еще я мог бы рассказать? Вроде бы, тему о превращении «бородатого эникея» в Java-разработчика я раскрыл полностью. Подвести какие-то итоги можно будет не раньше, чем после года работы. И тогда я решил просто описать, как проходит мой обычный рабочий день. Под катом «Один день из жизни Java-разработчика».

  • ,

Как тревожен этот путь!

Всем привет!

Мою историю трудно назвать классической историей успеха из серии — «я никогда не занимался программированием и не верил, что у меня получится», или «у нас было в институте программирование, но я не написал ни строчки кода», или «… и вот в один чудесный день я приобрёл подписку на Javarush, дошёл до 22-го уровня, сходил на интервью и — о, май гат! — меня взяли на юниорскую позицию».

Моя история отличается от подобных success stories и в чём-то перекликается с историей «бородатого эникея», опубликованной здесь недавно, хотя и с некоторыми вариациями. Мне тоже за сорок и моя карьера развивалась через определенные этапы и вехи. Мне тоже приходилось заниматься всем понемножку — кодить, тестить, админить, внедрять в эксплуатацию, заниматься настройкой и сопровождением, с тем лишь отличием, что я никогда не носил ни бороды, ни усов. :)

Однако ж, мне есть чем поделиться и воодушевить тех, кто находится в начале своего пути. С чего начать? Начну, пожалуй, с того, что моя карьера в IT началась давно, ещё в прошлом веке. Мне-таки удалось закончить универ. Тогда это называлось не Software Engineering и не Computer Science, а факультетом электроники и системотехники, кафедра прикладной математики, специализация — цифровые методы обработки изображений, где преподавалось много чисто абстрактных научных дисциплин, как то: математический и функциональный анализ, линейная алгебра и методы решения систем линейных алгебраических уравнений, алгебраические структуры и операции, численные методы решения дифференциальных уравнений, математическая физика, математическое моделирование оптических систем, комбинаторная логика, теория вероятностей и прочие непонятности. С высоты пройденного пути могу подтвердить, что 80% из того, что мы «проходили», потом не пригодилось в работе, хотя и было полезно для тренировки мозга. Мои однокурсники стали важными начальниками в IT и в сферах с ай-ти не связанных. Кто-то кардинально сменил профиль, кто-то занялся собственным бизнесом. Я же никогда не стремился занимать руководящие посты, хотя был один грешок перед айтишным божеством [если такой существует], когда я «смалодушничал» и попытался что-то кардинально изменить в своей жизни и заняться, может быть, чем-то другим. Так в начале миллениума, я попробовал свои силы в туристическом бизнесе в Питере, но довольно быстро понял, что это совсем не то, чем бы мне хотелось заниматься. :)

Моим первым языком программирования был Бейсик из школьной программы по информатике, где наивысшим достижением было вывести синусоиду на экран. В университете мы изучали PL-1 и Modula-2, конечно, MATLAB, ибо он идеально подходил для решения уравнений и математических задач. Программы компилировались и запускались на ЭВМ размером с большой холодильник. Когда появились первые персональные компьютеры с 286-м микропроцессором, это казалось каким-то невообразимым чудом техники. И на последнем курсе, мы писали лабораторки и курсовые работы на Си.

В те годы выпускникам было проще устроиться на первую работу. Мы проходили преддипломную практику на предприятиях и в научно-технических центрах. Мы писали свои дипломные работы там же и потом нас с распростёртыми объятиями брали на работу туда же. Так я попал на производство, где первые два года писал программульки на FoxPro 2.0 под DOS и отчёты для бухгалтерии. Годом позже мы перешли в графическую среду Windows, где приходилось пользоваться мышкой, что по-началу было непривычно.
Через два года я перевёлся в дирекцию по информационным системам, где занимался автоматизацией бухгалтерского учёта на том же предприятии. Там я научился программировать на PL SQL Oracle и на очень популярном в то время Delphi. Тогда же на предприятии появился Интернет, навигатор Netscape и это казалось ещё бОльшим чудом, чем когда-то персональный компьютер.

Примерно в то же время появились ультра модный объектно-ориентированный подход к программированию, проповеданный Гради Бучем (Grady Booch) и технология Java, как первая успешная попытка создания языка программирования, на котором приложения могли бы работать в различных средах. Впрочем, в то время Java критиковалась за медлительность и нестабильность.

Шли годы. Мне стало скучно, тесно и неинтересно в моем городе. Я переехал в Северную столицу, где найти работу было несложно с опытом программирования на PL SQL. За десять лет в Питере я сменил три компании. Наконец, в конце 2010 года я перебрался в Москву, куда я стремился с самого детства, но получилось окольным путём, через Питер. Казалось бы цель жизни достигнута! Но скоро только сказка сказывается.

Работа в Москве попалась интересная в одной маленькой конторе, имевшей свою сеть платежных терминалов наподобие Qiwi, и собственную информационную систему управления предприятием. Когда я устраивался туда, никто меня не мучал «тупыми» вопросами и тестами. Там состоялось моё знакомство с Java EE, там же я получил первый опыт в программировании web приложений. Система была несложной, состояла из простых POJO объектов, JavaBeans, сервлетов и JSP. Никаких внедрений зависимостей, ни Spring, ни SQL инъекций, ни Hibernate, ни ORM, ни Maven мы не использовали, никаких систем контроля версий тоже. В отделе разработки ПО нас было трое программистов и один админ базы данных. Всё делалось на коленке. После этого, как мне тогда казалось, я мог смело позиционировать себя не только как Oracle, но и как Java разработчик, что, конечно, было нескромным преувеличением. Если бы меня попросили тогда объяснить многопоточность, перечислить методы класса Object или для чего используются дженерики и пр., я бы не смог дать вразумительного ответа, как впрочем и написать простенький итератор для коллекции. Oops, shame on me!

В силу разных причин, в том числе из-за врождённой склонности к авантюризму и нежелания сидеть всё время на одном месте, опуская прочие несущественные детали и подробности, скажу лишь, что я свалил за океан по программе skilled worker, которая выгодно отличается тем, что при первом же въезде в Канаду вы получаете статус постоянного жителя [permanent residence] со всеми правами, кроме права голосовать. Вы можете искать работу на месте, не обязательно иметь work permit, который вас привязывает к одному единственному работодателю. Так я оказался в поисках работы на другом конце света…

Продолжение

История трудоустройства

Всем привет!

На этой неделе заканончился мой испытательный срок и я решил написать свою историю трудоустройства.

И для начала расскажу как все начиналось. В 2008 году я поступил в вуз, на физтех. На первом курсе у нас был С++ и скажу честно, первые полгода я не особо понимал программирование. Но уже во втором полугодии я вник в азы и на экзамене в конце года получил 95 баллов из 100. И на этом вроде как история программирования закончилась. Но до тех пор, пока я в 2013 не вернулся в Россию…

Это был обычный день и я как и все листал ленту в ВК и нечаянно наткнулся на рекламу JavaRush. Что-то типа – лиши мозг девствености, научись программировать. Меня это действительно заинтересовало и я начал учить Java. Так как от С++ не особо отличалось, я быстро прошел первые 9 уровней и летом 2013 попытался устроиться хотя бы стажером. Откликов на мое резюме было и вовсе мало, если не сказать что их не было. Тогда я сам нашел вакансию стажера(тестировщика) в Яндексе и получил тестовое задание(проверить через Junit тесты, что данные 3 точки на плоскости представляют из себя вершины прямоугольного треугольника). Успешно его пройдя мне позвонили и… разъяснили, что (далее цитирую) – Нам нужно потратить на вас полгода, чтобы вы стали специалистом, так что до свидания.

Скажу честно, я сильно разочаровался в этой компании и забросил всю эту идею на полгода. Через следующие полгода я возобновил поиски, но они ничего не давали. Наверно потому что в моем резюме стояло 2 поля – С++ и Java. И так продолжалось до 2016. Время от времени я что-то учил, решал задачи на JavaRush и кстати купил подписку в том же году(под новый год по акции 2013) и дошел до 15 уровня. Еще я нашел курс по андроиду – как сделать свою первую игру(так как я владею английским языком было несложно найти такие курсы). Но все было бестолку, до марта 2016…

Посмотрев требования к вакансиям Java Junior я понял, что на одной Java не выйдешь и решил, что надо учить что-то еще. И я начал учить JavaScript, HTML, CSS, SQL. В этот период я работал репетитором, так что у меня было несколько часов по утрам и по вечерам. Которые я тратил на изучение языков, чтение книг(Путь программиста, чистый код, идеальный программист, Шилдт – Java 8 полное руководство, Что нас на самом деле мотивирует, Сила воли). И говоря простым языком, я начал усердно трудиться. Каждый день я решал задачи на JavaRush, постил их на GitHub, проходил по главе из каждой книги по другим языкам и по главе из других книг.

После прохождения курса Первая мобильная игра, я написал свою игру Арканоид на андроид, потом появилась идея написать вторую игру. Позже я решил написать крестики нолики на Java для консоли, далее переписал ее на JavaScript и конечно же написал для андроид. Но всего этого было мало, очень мало…

Тогда я понял, что устроиться Java Junior слишком сложно для меня и я решил полностью уйти в Андроид. В начале я хотел уйти в геймдев. Но неожиданно понял, что почти нет вакансий разработчика игр на андроид на Java. Изучил LibGDX, но и это не помогло…

Тогда я решил писать приложения на Андроид. В этом мне помогла книга HeadFirst Android и курс StartAndroid на YouTube(и еще 100500 англоязычных сайтов). Так как я ярый фанат Маяковского, посмотрел в Google Play какие есть приложения с его стихами. И не найдя ничего достойного, решил что могу сам создать достойное приложение. Именно с этого и началась белая дорога. Точнее, выкладывая на GitHub я начал получать приглашения на собеседования, но их не проходил, да и было их всего пару штук. Тогда я решил писать тестовые задания разных компаний и публиковать их на GitHub, также в мой собственный блог(johnnyblog.ru). Написав около 12 приложений(тестовых заданий и своих) я начал получать приглашения на собеседования, но их опять же было очень мало, по сравнению с отказами(за полгода мою анкету просмотрели около 500 раз)…

Я заметил, что в большинстве требований к кандидатам есть строка – наличие своих приложений на Google Play и как бы вы думали? Как только я опубликовал в магазине свои 2 приложения, предложений по работе стало гораздо больше. В общем я сходил на собеседования меньше 10 раз. На каждом собеседовании меня спрашивали из того, чего я не знал. Но зачастую дело и не доходило до приглашения на собеседование, отказывали просто узнав что я не являюсь гражданином РФ…

Итак, вроде как дела шли хорошо – я ходил на собеседования, получал отказы все чаще и больше (зачастую просто игнорировали и ничего не отвечали). Я планировал найти работу до конца лета. Но, увы, так и не нашел. И тогда я полностью разочаровался во всем и решил забить на поиски. И знаете, однажды мне на почту пришло письмо. Да да, именно то письмо, которое и стало началом моей истории. Я получил приглашение на собеседование. И знаете, если раньше я ходил на собеседования с мыслью, что – вот опять будут спрашивать какие-то каверзные вопросы и не возьмут, ну и Бог с ними, особо и не хочу я у них работать — то на этот раз я очень хотел, чтоб меня взяли на работу…

Итак, в назначенный день я пришел на собеседование. Если кому интересно, то спрашивали про многопоточность, коллекции, базовые методы класса Object. В большинстве своем я давал правильные ответы на вопросы и мне пообещали позвонить через день. И это был именно тот случай, когда действительно работодатель обещал и позвонил. Сказали, что я их устраиваю как кандидат. И вот через месяц после собеседования я вышел на работу на испытательный срок в 3 месяца. И на днях этот срок закончился. Скажу сразу, что я усердно трудился, зачастую перерабатывал, бывало что и выходил в выходной день. Но все это не зря. Труды дали свои плоды и теперь я работаю 5/2 (с 11.00 – 20.00) в офисе на Кутузовской, напротив Moscow City и пишу приложение Сбербанк Онлайн на компьютере iMac 27”, с 8 ядрами и 24 гигами озу.

upd. незамеченная история, дата публикации изменена для вывода в топ.
  • ,

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

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

Приветствую, уважаемые коллеги! Здесь, на javarush, периодически попадаются вопросы типа «мне уже 30 (35, 40 и т. д.) — смогу ли я стать java-разработчиком?». В свое время «success stories» с этого уважаемого сайта мне очень помогли развеять собственные сомнения и укрепить уверенность в правильности выбора. И сейчас я, наконец, решился рассказать вам историю «бородатого эникея», который «20+ лет спустя» и довольно-таки необычным путем, но все же реализовал свою детскую мечту. Осторожно, под катом много букв!