• ,

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

Для справки:

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

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

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

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



Поскольку изначально в Квебек я не собирался, а думал осесть где-то в Онтарио, мой французский остался на том же уровне, что и был на момент интервью в Москве. Этого, как вы понимаете, было недостаточно для работы во франкоязычной компании. К счастью, в Монреале полно 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, mis 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, bien! Я получаю иммиграционную визу, по которой я должен въехать в Канаду не позднее 23 мая 2009 года и понимаю, что не готов ни морально, ни вербально, ни финансово к такому серьёзному и ответственному шагу. Однако, после стольких усилий и затрат, отступать было бы проявлением малодушия. Я решил взять отпуск просто съездить посмотреть и заодно навестить моих друзей в Торонто, которые уехали раньше и уже получили гражданство. По программе skilled worker, как я упоминал выше, при первом въезде вам сразу дают статус постоянного жителя и чтобы его не потерять достаточно жить в Канаде два года из каждых пяти. То есть теоретически у меня было ещё три года в запасе, чтобы окончательно решить надо оно мне это счастье или «нас и здесь неплохо кормят». На тот момент мне уже было 38 лет. Не даром говорится, бойтесь своих желаний — они могут сбыться! Короче, я возвращаюсь в любимый Питер.

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

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



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

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

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

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

Всем привет!

Мою историю трудно назвать классической историей успеха из серии — «я никогда не занимался программированием и не верил, что у меня получится», или «у нас было в институте программирование, но я не написал ни строчки кода», или «… и вот в один чудесный день я приобрёл подписку на 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, который вас привязывает к одному единственному работодателю. Так я оказался в поисках работы на другом конце света…

Продолжение

История успеха спустя 1.5 года от начала обучения.

Осторожно! Много Букв!



Для начала расскажу немного о себе.
Мне 25 лет. До того, как начать изучать Java учился на математическом факультете, на прикладной математике. Казалось бы, с программированием у меня должно быть если не отлично, то по крайней мере хорошо. Но это был не мой случай, т.к. все предметы, где мелькало программирование — я саботировал и сдавал как-то на удаче, сам ничего не писал. Так вот и получилось, что я от программирования был далек. Ясное дело, что с образованием математика в нашей стране много не заработаешь кроме как программистом. Поэтому и выбор пал именно на это. И так совпало, что решил учить Java. Это не было связано с каким-то анализом рынка или поиском по количеству рабочих мест, востребованности на рынке труда. Просто так совпало. И когда решил узнать как это делать — то наткнулся на JavaRush. Как-то не хотелось учиться только по книгам, но и на очные курсы я смотрел нехотя, т.к. денег стоят они много, а реально профита мало. Поэтому JavaRush для меня был лучшим решением. Пройдя первые 3 уровня, я понял что курс мне нравится и что можно покупать подписку. Тем более, что я попал на акцию и приобрел за пол цены. Было это в конце августа / начале сентября 2015 года.

План обучения.
Прочитав что нужно делать, я решил составить план того, как я должен учиться, чтоб добиться цели и закончить курсы, потому как времени на медленное изучение у меня уже не было. Задача стояла получить быстро знания, причем так чтоб не отвадить желание и чтоб мозгам было время отдохнуть. Потому что такая нагрузка, которую я хотел могла помешать мне.
Для этого решил:
  • Что нужно учиться пять дней в неделю(пн-пт).
  • В выходные дни я буду заниматься чем угодно, только не этим.
  • Каждое занятие будет идти в общей сложности 4 часа, причем между каждым часом будет перерыв в 15 минут, для того чтоб пройтись, отдохнуть и сделать чай.
Итого 20 часов в неделю. Неплохо, да? К тому же иногда приходилось заходить в университет, т.к. я еще учился в магистратуре.
К декабре я уже был на 20 уровне и думал, что знаю очень и очень многою Но были у меня и кризисы, когда ничего не получалось и казалось, что дальше не смогу (см. моя статья помогите, нужна мотивация).


Переход на новый уровень.
Через три месяца после начала обучения, я побеседовал со знакомым на тему того, что я еще должен знать, чтоб устроиться на работу…
И тут понеслось: какие-то не знакомые слова, базы данных (о ужас!) и многое другое дали мне понять, что нужно ускоряться и делать еще больше. Ясно, что с грамматикой джавы мне не получить работу, я начал ускоряться в разных направления:
  • Купил себе книгу Head First «Изучаем Java». Ее рекомендуют на 4-м уровне в курсе. Но я как-то не внимательно читал и пропустил этот факт. Там рассказываются теже вещи, но под другим углом, что помогает понять их лучше и основательне. Советую.
  • Начал искать все тематические тусовки в своем городе и ходить на них, пусть даже я многого не понимал, зато со вмеренем понял, что это было не зря и они мне очень помогли. например так
  • Есть еще один ресурс, который нужно прошерстить от начала и до конца — это dou — сайт для программистов. Там можно посмотреть какие бывают ивенты, какие нынче зп в украиском ИТ, можно прочитать много очень полезных статей, особенно рекомендую Материалы по теме «Пособие для будущего Java разработчика» и Java Enterprise: что и как учить. Эти статьи будут помошником для вас и не будут давать расслабляться.
  • Нашел короткие и информативные видеоуроки на youtube по MySQL, советую.
  • Видеоуроки Головача тоже не остались без внимания. Их много, много воды, но разъясняет многие вещи достаточно хорошо.
  • Так же нужно понимать что такое HTML и CSS. Без этого никак, тут мне помогла в этом HtmlAcademy. Там можно проходить задания бесплатно.
  • Зарегистрировался в соц.сети linkedIn, где начал выставлять свои навыки и что я ищу работу(а вдруг повезет и меня найдут). Добавлял всех подряд в друзья расширяя круг своих друзей. Чтоб вы понимали насколько, то сейчас у меня больше 10 000 друзей в линкедине. Для начала это нужно. И это помогло, команда андроид фрилансеров искала новичка себе и мне написали. Я понимаю, что случай из ряда вон выходящий, но это случилось.

Первые неудачи
Конечно параллельно учебе, я начал искать интернатуру в компаниях так, чтоб со временем можно было работать. Меня пригласили на собеседование в интернатуру. Поговорив с HR-ром, ко мне позвали преподавателя по английскому, с которым я «пообщался». К этому моменту я вовсе был не готов и вышло, что я больше слушал, чем говорил. И на тему расскажи о себе, я что-то промямлил, но ничего особенного. А вот при общении с техлидом я отвечал на некоторые вопросы, на многие ответа не знал и на ответ, что обучаюсь в JavaRush, он сказал что передо мной был еще один студент оттуда. Я был на 27 уровне, а он уже на 34. Поговорив он сказал, что мне перешлют тестовое задание, по которому решат годен ли я. Я его как-то сделал, причем не весь функционал. Через некоторое время мне написали, что я им не подхожу… Обидно, но я решил извлечь опыт из этого и пошел дальше.

Первая работа.
Как я уже говорил, составив страницу в linkedin'е через 1.5-2 месяца мне написал некий андроид разработчик с предложением работать с ними. Ясное дело, что речь шла об минимальной зп. Мы пообщались при встрече и мне предложили работу. Понятно, что она была слабо оплачиваемая, но другого у меня не было и я радовался тому, что было. Начиная с конца января я начал работать на квартире одного из них на анроиде. Всё было новое, все другое. Но кое как и как-то я работал, что-то делал. Было страшно и всё не понятно, это были не задачки в JavaRush. Всё нужно было делать, читать, узнавать что и как. У меня был тестовый проект, который я делал и который мог стать чем-то большим со временем. И так прошло до мая. Потом как-то начал разваливаться наш коллектив, все это поняли и начали искать работу.

Поиск новой работы.
Не зная как это делать, я решил что буду рассылать всем компаниям, которые есть в моем городе. А как узнать какие есть компании? В этом мне помогл тот факт, что я прошерстил dou вдоль и поперек. Там есть раздел компании и можно выбрать город, которому идет поиск. В описании есть почта (почти всегда есть), на которую можно писать. Чтоб всё выглядело хорошо, я написал свое резюме на английском языке, только так и надо. Конечно было много воды, воды, воды, т.к. писать особо нечего было, писал всё подряд. Также к каждому письму писал сопроводительное письмо(рекрутеры любят это), где я указал кем именно я хочу быть, а то часто выходит, что присылают резюме и не ясно на какую позицию претендуют. Сопроводительное письмо было также на английском. Совсем забыл, английский нужен ОЧЕНЬ сильно. Реально, если ты не можешь прочитать ответ на стековерфлоу, то ты не жилец и делать тебе в программировании нечего. Составил себе на речь на собеседование английского на тему: Tell me about yourself. Очень полезная вещь, я вам скажу.

Спустя некотое время я получил 4 приглашения на собеседование. Практика рассылки всем компаниям была оправдана, причем тем, у кого не было таких позиций — они обычно не отвечали вовсе. На собеседованиях было сложно, было стыдно, было не уютно, но я прошел их, в некоторых просто говорили, в других нужно было сделать пару заданий, например нужно было написать интерпритатор на джаве на язык BrainFuck. Задача оказалась интересной и я рад, что ее выполнил, хоть меня в ту компанию и не взяли. Искал я работу либо на Java либо на Android. Хотя хотелось больше на джаву, мобильная разработка мне не особо интересна. Зарплатные ожидания были минимальны, нужно было найти работу, всё остальное было уже не важно. Спрашивали меня на понимание Баз данных, о там как создать таблицы в для определенных ситуаций. Это всё касается SQL баз данных, про NoSQL никто не спрашвивал.

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

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

P.S. нужно стремиться, стремиться, стремиться и никогда не сдаваться!

P.S.S я весь курс не прошел до конца, остановился на 30-м уровне. А когда получил работу, то был на 27. И реально скажу, что начиная с 20-го уровня нужно искать работу и разиваться помимо Java. Освоить хотя бы издалека фреймворк для автоматизации проектов (Ant, Maven, Gradle). Вещь не сложная и очень нужная.

Всем, кому понравилась статья — ставьте "+", чтоб я знал :) Для меня это важно :)


См. также мои другие статьи:
Тестовое задание: «Написать Интерпретатор на язык BrainFuck»
Тестовое задание «Image Comparison»
Java — быстрее, сильнее и выше! Зарплаты украинских программистов.
История успеха спустя 1.5 года от начала обучения
Технические вопросы на собеседовании.
Как найти работу? Рассылка резюме
Профессиональное выгорание. Как устоять?
Английский для IT и для собеседования
Паттерн Command своими словами.
Паттерн Singleton своими словами.
Как создать исполняемый jar в Intellij IDEA / how to create jar in IDEA
Помогите, нужна мотивация!

Подписывайтесь на мой блог Паттерны Проектирования пишите в нем статьи!
  • ,

История успеха (спустя год)

Привет Зеппу и всей команде проекта Джавараш!

Рад сообщить, что история моя в плане освоения высот джавы продолжается и спустя год после окончания курса сделано следующее:

1. Успешно пройдя три месяца испытательного срока к НГ 2016 (на самом деле это был ежедневный ужас, особенно после затирания чьего-то чужого коммита или внезапных конфликтов при ребайзе в гите), я получил место разработчика в джава-отделе компании Симбирсофт (www.simbirsoft.com). Компания предоставляет услуги по разработке программного обеспечения на заказ и созданию команды для разработки ПО.
2. Сразу после этого принял участие в проекте (для нужд своей компании, пока еще) в основе которого был следующий стек технологий — Java 8, JavaEE, SSO, Hibernate, JSF, PrimeFaces, Liquibase, Postgres, Maven в качестве сервера приложений использовали Wildfly9 и после пары месяцев перешел на следующий проект
3. Где-то 4-5 месяцев был единственным разрабом бэкэнд части микросервиса, на основе вышеприведенного стека был «запилен» с нуля свое новое приложение отличием было то, что на фронтенде другим разрабом на AngularJs был написан виджет, «общающийся» с беком по технологии REST.
4. В октябре 2016 г. был успешно сдан экзамен Oracle Java 8 OCA.
5. После интенсивной подготовки к интервью получил место разработчика на внешнем проекте, с примерно таким стеком — Java 6, Spring, Hibernate, JSP, Liquibase, OracleDB, Maven, где и тружусь в данный момент времени. Спектр задач довольно широкий — от написания скрипта по апдейту структуры БД (Oracle), изменения верстки JSP для отображения новых полей, до создания новых сущностей и создания DTO для «протаскивания» новых полей на отображение со слоя DAO.

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

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

Javarush - 30 уровней, что бы изменить жизнь. (спустя 15 месяцев)

Прошло 15 месяцев с создания моего топика успешного трудоустройства Javarush learn once — use anywhere.
За это время я успел научиться ещё большим вещам а так же сменить компанию.
Хотелось бы начать с того, что если вы считаете программирование легкой работой (не важно в физическом или ином плане), то вы серьезно ошибаетесь. Я принимал участие в хардкорных командировках (4 часа сна в день), когда продукт пилят «на коленках» у заказчика. Так же приходилось вести достаточно большое количество абсолютно разных проектов, выполняя роли не только разработчика, но и тестировщика, консультанта, саппорта и так далее. Я осознавал что данное положение дел было связанно с катастрофически малым размером компании. Спустя какое то время такого режима я начал понимать что выдыхаюсь, и кроме этого не смотря на поддержку менеджеров психологическую, мой финансовый доход не изменялся, я работал во все праздники, в огромном количестве.
Если вы считаете что стоите большего — гните свою линию. Я определенно благодарен своей первой компании, в таком сложно и тяжелом режиме я в коротский срок обучился многим новым вещам (некоторым Enterprise технологиям, устройству фронтенда, изучил кучу JS библиотек и несколько HTML фреймворков, углубил своё понимание Java). Но в какой то момент я решил что пора получать повышение, это было связанно с тем что я чувствовал сильное развитие в своих навыках а так же в том, что работать за те же деньги (это была действительно мизерная ЗП) в таких хардкорных условиях я больше не готов. Итак я поставил начальству вопрос о своем повышении, параллельно создав резюме и выложив его на HeadHunter.
Дальше началась череда самых разнообразных собеседований в других компаниях, текущий менеджмент не хотел что бы я уходил но так и не делал предложение. И вот абсолютно по случайным обстоятельствам, меня нашёл HR менеджер компании Wrike и предложил рассмотреть вакансию QA-Automation Engineer. Я успешно прошёл собеседование (чуть лучше / чуть хуже чем в других компаниях).
Я был впечатлен скоростью работы HR, не успев и пройти 200 метров от офиса мне позвонили и сказали что готовы в течении часа прислать оффер. В результате меня оценили на координально отличающуюся сумму зарплаты, а так же (как я уже понял потом) пригласили в одну из лучших компаний Воронежа с репутацией по всему миру.
Работа программиста не перестаёт удивлять меня. В Wrike я увидел новый, ещё более катастрофически больший мир IT, узнал о многочисленности видов IT специалистов, о координально отличающемся отношении к сотрудникам, передо мной открылись возможности совершенно другого масшатаба.
Сейчас моя жизнь «программиста» это свободный график, широкие возможности самореализации, прекрасный коллектив, интересные задачи и конечно же финансовая самостоятельность. Не сдавайтесь, развивайтесь и любите своё дело, работайте с полной самоотдачей, и вы обязательно попадёте в мир, который вас всегда будет удивлять.
Огромное спасибо Javarush! За 30 уровней, изменивших мою жизнь.
  • ,

Моя история трудоустройства (Продолжение)

Прошло 7 месяцев.
Бывает что за 7 месяцев в жизни мало перемен, много рутины, но у меня есть о чем рассказать, поэтому появилось продолжение. :)

Тут я описывал свои первые шаги, свою первую работу.
Коротко, тезисно, с чего начался мой путь as a developer:
  • делал задачки JavaRash
  • прошел 6-месячные дневные курсы
  • попал на стажировку, на SPING MVC
  • всем заявлял что ищу работу и хочу работать


Из чего состоит my-real-job:


#frontend-light
У меня есть макет того что надо сделать. причем он в обычном jpeg
Я пишу разметку… пишу каждому элементу css правила…
Визуалка — готова.
На JavaScript прописываю бизнес-логику. Визуалка оживает, по кликам совершаются соотвествующие action.
Задача тестируется, делается reopen фиксятся баги. Задача — готова.

#frontend-uikit
Есть сайт, он написан при помощи фреймворка ui-kit.
Соответственно, я этого не знаю, я это изучаю, и делаю поставленную задачу не тем привычным мне способом, а с помощью чудо-удобного шаблонизатора ui-kit.

Кстати очень интересная вещь! Страница создается и стилизируется быстро (в 5 раз быстрее) разметка получается кросс-браузерная (стили и цвета можно настраивать на сайте).

#sql-procedure
Чтобы веб-морда работала — нам же нужен поставщик данных. Конечно, у нас есть сервер, кто-то его написал, и как любой сервер он умеет общаться с DataBase.
Изменилась бизнес-логика, где то надо поменять таблицы, где-то всем элементам добавить что-то, где-то образовалась совершено другая связь many-to-many.
Конечно, у меня опыта в sql почти нет, простые CRUD писал и собственно все,
но есть stack overflow, есть результат, есть компилятор который ругается на ошибки, и в итоге задача тоже сделана.

#frontend-less
Один из ребят в команде хвастался удобством этой технологии. Предпроцессор.
Поступила новая задача от бизнеса, мы ее оценили, предложили использовать Less
при написании css теперь множество возможностей: переменные, вложенности, миксины
Grant нам все компилирует, ужимает js, ужимает css.

# asp.net
Опа. А оказывается, какие-то страницы — непросто html страницы, а c# компилируемые aspx.
(то о чем была стажировка jsp, jsf) ну не джава, ну c#
а все равно логика такая же.
List, Dictionary, Map, Select, FirstOrDefault…
зная, как писать логику на java или javascript задавал вопросы гуглу — и преобразовывал это в рабочий С# код, отвечающий требованиям задачи.

_________________________________________________________________

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

Математический расчет индикаторов делается xx секунд — когда-то это устраивало бизнес-требования, теперь надо быстрее. Покопались в лишних сортировках, протестировали, стали выполнять расчет в одном цикле а не в разных, — решение в 10-30 раз быстрее.

У нас была DB MSSQL услышали о Redis почитали док, пообщались с другими developers — внедрили и у себя.

Бывает что руки опускаются, огонек в глазах меркнет, задачи очень тяжелые,
Но помогает большими буквами надпись --> «Так будет не всегда».
И правда, если стараться — решение приходит, из гугла, от совета товарища, или своими мозгами.
Кстати когда все идет очень хорошо — надпись убирать далеко — не надо. :)

Что еще? Спорт. 
Что еще? Друзья, семья, отдых, путешествия. Полноценно нужно жизнь, и гулять, и тусоваться.  
Что еще? Уважение к коллегам. Быть ресурсом. Задавать вопросы. Быть любознательным. Любить свое дело.

 
И поменьше тратьте время на чтение таких историй.
Тяжело — почитал, закрыл… и вперед.
Стань примером нового успешного трудоустройства.

И да поможет тебе javaRush, что бы набить руку и набраться опыта

Два года спустя... (продолжение "истории успеха")

Всем привет!)
По просьбе администрации сайта пишу краткое продолжение к моей «истории успеха» опубликованной уже почти два года назад «Как я стал программистом, или «Через тернии к звёздам» =)».
Основных причин на то две:
  • Я по прежнему считаю что именно этот ресурс сыграл ключевую роль в моём «войти в айти» )
  • Я по прежнему считаю что мотивация — это так же один из ключевых факторов в этом деле, а один из лучших мотиваторов — это такие вот истории успеха реальных людей, которые были в такой же точно ситуации как и ты, джаварашевец. Ибо по себе помню и знаю, что временами просто руки опускаются… и у многих уже больше не поднимаются, это действительно непростой путь, но оно того стоит)

Итак, вопрос — ответ:
Как вообще изменилась Ваша жизнь после того, как Вы устроились на новую работу и что Вы чувствовали в тот момент?
Нуу, изменилась конечно)… В первую очередь конечно поменялся извечный баланс время — деньги)
денег стало ощутимо больше, времени, как следствие, ощутимо меньше)… На «хлеб насущный» вообщем могу сказать что наконец — то таки стало хватать, но что то откладывать всё равно чего — то не получается) Хотя уверен, что если чуть чуть постараться, то получится и откладывать 200 — 500$ в мес (это при том что я один работаю в семье из 4 человек, жена имеет возможность спокойно заниматься детьми). Стабильность, уверенность в завтрашнем дне, или, по крайней мере хоть какая — то их иллюзия появилась)…
Каких высот в карьере Вы уже сумели достичь и какие еще горы планируете свернуть?
В настоящее время работаю уже во — второй компании, «Electric Cloud» называется, пять дней в неделю, 18 рабочих дней в году отпуск(плюс все гос. праздники естественно) График вообщем — то свободный, хочешь из дому работай, но я предпочитаю офис, там обстановка более рабочая… Чаще всего получается приблизительно с 12 до 19 — 20 работать. Компания американская, продуктовая, продукт непростой, огромная DevOps тулза для Continious Integration / Continious Delivery, что то типа дженкинса, только гораздо больше, и чисто коммерческий продукт. К тому же уже достаточно древний, легаси кода полно, и нужно его поддерживать, фиксить баги, иногда писать новые фичи, по этому зоопарк технологий такой, что мама не горюй, и со всем в большей или меньшей степени приходится иметь дело, Java8, GWT, JS, PHP, Perl, HTML, CSS, Spring, Hibernate, JUnit, Mockito, Maven, Perforce и это только основные… Первые несколько месяцев прозревал просто, потом уже как — то пообвыкся =)
Ежедневно скрам апдейты (методология разработки такая типа), разок — другой в неделю митинги по вечерам с нашим американским тимлидом (он индус =))
Время от времени посматриваю на хорошие вакансии, в интересующих меня конторах. Очень редко, но всё же бывает, хожу на собеседования. Главное что я понял, что найти место с хорошей зарплатой пожалуй даже проще чем место с хорошим проектом. А что бы и то и то было, так это уже ппц как постараться нужно, а хочу что бы моё следующее место было именно таким) А ещё я всё больше становлюсь уверен, что попал в эту профессию не по случайному стечению обстоятельств, а заслужил это своим трудом и настойчивостью, хотя некоторая степень удачливости, особенно поначалу, наверняка должна иметь место, и ещё я уже очень наврядли стану менять её…
Общего опыта «коммерческой разработки» в феврале будет два года, если оценивать мой уровень как это общепринято, то я бы наверное оценил его как Strong Junior — Regular Middle, но такая оценка тоже очень субъективна, но по крайней мере Senior я себя точно пока ещё не считаю))
Возможно Вы уже переехал в Калифорнию и работаете Facebook, Apple или Google? =)
Нет, не переехал)) Да и релокация меня никогда не интересовала, будь то Харьков или Львов, или Польша или Америка) Я Одессу люблю, и переезжать отсюда никуда не собираюсь, и считаю что и здесь можно неплохо зарабатывать разработчиком…

Вообщем ещё раз спасибо Джаварашу, и всем кто верит в свои силы от души желаю достичь своей цели и надеюсь что мой пример этому поспособствует. Да, повторюсь, это на самом деле не простой путь, что бы вам кто ни говорил, и достигают своей цели наверняка очень немногие, из тех кто встал на него, НО, способны это сделать гораздо более многие, просто большинству чего — то в середине пути не хватает… мотивации, желания, настойчивости, веры в себя и в свои силы, многие придумывают сами для себя какие — то более или менее правдоподобные оправдания и цели уже не достигают…
Так что верьте в себя, не сдавайтесь на пол пути (небольшие передышки конечно не в счёт =)) и всё у вас получится!
Как говорили древние греки «Горшки тоже не боги обжигают» =) программистами не рождаются =)
И на последок дам пожалуй ещё один совет, для тех кто действительно хочет трудоустроится самая прямая дорога — это СОБЕСЕДОВАНИЯ, как сказал однажды кто — то на одной из IT эвентов на котором я оказался «я ни разу не встречал человека, который сходил на 20 собеседований и его никуда не взяли») а ТЫ на сколько собеседований уже сходил, А?) Я знаю что ты можешь ответить мне:
  1. Я ещё не готов, нужно ещё подучиться(...
  2. Та меня что то никто не зовёт(...
но это всё тоже гнилые отмазки! И я на это отвечу
  1. Я устроился на свою первую работу (на з/п 1100$) после 21 уровня! Правда у меня на тот момент уже был небольшой опыт по GWT, Hibernate и Spring, из «реального проекта» на Джавараш, сейчас это называется вроде как «Стажировка». Но об этом на собес почти не спрашивали… почти все вопросы, насколько я помню были по Java core и ещё немного SQL
  2. Плохо стараетесь) А так же зарегестрируйся на Линкедине, на Работа.юа, на Джине, та везде где только можно, отслеживай свежие вакансии, откликайся на них! «Стучитесь и вам откроют», завали все IT конторы в своём городе письмами со своим резюме, и долго ждать приглашения на собеседование не придётся. Вообщем тут тоже вариантов масса)
Так что кратчайший план действий такой:
  • закончил 20 — 30 левелов на джавараше, плюс подучил ещё хоть немного SQL, JDBC, если ещё и основы Спринга и Хибера есть, то ты вообще в шоколаде)
  • быстренько накатал себе резюме по примерам, зарегался на профильных сайтах, выложил его там, затем засыпал все IT конторы спамом со своим резюме, поверь, без обратной связи ты не останешься, многие просто отпишутся что будут иметь тебя ввиду, а некоторые обязательно пригласят на собеседование
  • руки в ноги, и бегом на трясущихся коленках по собеседованиям
  • и помни, что каждое собеседование, пусть даже и провалившееся значительно приближает тебя к цели! Ибо на каждом следующем ты уже будешь чувствовать себя гораздо спокойней, уверенней и подготовленней чем на предыдущем. А вопросов процентов 80% почти везде задают одни и те же)
Всё, всем пока, спасибо за внимание и удачи!)
  • ,

В продакшн

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

В ноябре 2015 на хабре увидел пост про javarush, приступил к обучению, в декабре того же года купил подписку со стажировкой за 152$, при этом мне очень повезло, тк была предновогодняя скидка так еще цену после покупки подняли на 40-50$, видать кто-то ошибся в вычислениях — хвала ему, ведь на paypal у меня было всего 160)

К стажировке решил приступить весною 2016, но к тому времени я был только где то на 20-х уровнях, недооценил сложность задач. Дальше было решено пройти стажировку летом, но опять же я был всего на 28, а там и тестовое задание еще не пройдено. В июле я таки дошел до 30 и приступил к тестовому заданию, в то же время я решил испытать себя на собеседованиях. Первое собеседование я вроде как прошел, но меня побоялись взять, тк у меня уже была работа, а на дворе кризис и мало ли что. На втором я просидел часа 4, через 3 недели позвонили и приняли меня с испытательный сроком на 3 месяца, прошел я его за 2. Стажировку отложил на весну 2017.

Ну и немного о себе. Мне 23 года, специальность ВТиПО, после обучения сразу же пошел работать в полиграфию, тк нужны были средства. Через 2 года работы я понял, что стою на месте и надо что-то менять. Сейчас я по настоящему счастлив и не считаю дни до пятницы.

пс: прошу прощения за топорную письменность, третий час ночи и усталость дают о себе знать, если где-то, что-то не дописал то спрашивайте)

Мотивационый топик об очередной истории успеха.

    Одним чудесным вечером, заступив на очередную ночную смену я задумался о дальнейшей своей жизни. Кем я буду через 5, 10, 15 лет? Кем я вообще хочу быть? На дворе была весна 2015. Кризис в разгаре. З/п, которая была очень даже неплохой для моего региона стала вдруг недостаточной для меня. Кроме того я не видел для себя прогресса на этом предприятии. Работал я тогда инженером-программистом с обязанностями эникейщика на средней руки заводе. От программирования в моей работе было только то, что моя деятельность была завязана на корректировку некоторых параметров в рабочей среде. Не добавляли позитива как перманентный пофигизм руководства на чаяния сотрудников, так и задержка з/п этим же руководством. Одним словом, я понял, что нужно что-то менять. И я сказал себе, что через год меня на этом предприятии не будет. После этого я начал активно искать применение своей неуемной жажде перемен. Собственно, с выбором дальнейшей профессии вопросов не возникло. Я хотел быть программистом. Но была проблема. Я не знал ни одного языка на хоть каком-нибудь приемлемом уровне. Нужны были курсы, и курсы онлайн, поскольку моя работа не позволяла мне записаться на какое-либо живое обучение. Выбор пал на Javarush. Я просто набрал в гугле «обучение java» и где-то в самом верху была ссылка на этот ресурс. Ну что же, Javarush так Javarush, сказал я и принялся постигать основы.
    Тут нужно сказать, что в школе, да и в университете я никогда не был успешен в программировании. Мне были непонятны концепции этого предмета и я не сильно горел желанием в них разбираться, хотя я окончил довольно успешно математическую школу и технический ВУЗ. Но получилось так, что некоторое время назад у меня был опыт любительского программирования на php, в ходе которого у меня в мозгу словно тумблер щелкнул. Раз — и я понимаю, что могу программировать. Тогда я почерпнул все базовые понятия, такие как циклы, массивы, переменные и т.п.
    И вот я прошел все первые 10 уровней дней за пять. Настало время двигаться дальше. Препятствие в виде платной подписки было успешно преодолено при помощи очередных скидок. Оформил я себе тогда продвинутую подписку с возможностью стажировки, которая, если забежать вперед, мне не понадобилась. Проходя свой путь к вершине, я часто ругал составителей задач, неясные и нечеткие формулировки, свою криворукость. Набрел на непонятный тогда для меня github и подсматривал там решения, когда уже становилось совсем уж тяжело и непонятно, что же не нравится валидатору. Но со временем приходила уверенность в своих силах. И даже когда речь заходила о достаточно тяжелых для понимания вещах, таких как многопоточность, я чувствовал в себе силы для взятия и этих вершин. И вот прошло несколько месяцев. Я достиг 26 уровня. И тут мне на глаза попадается информация от одной довольно известной IT компании о наборе на внутренние курсы по специализации java developer, по окончании которых меня могли взять на должность джуниора. Это был мой шанс. Я связался с рекрутером компании и меня пригласили на собеседование. Надо отметить, что брали на курсы только тех, кто обладал уже довольно большим багажом знаний о базовых принципах java и количество мест было ограничено, поэтому собеседование проходило в 2 этапа.
    Первый этап я прошел достаточно легко, показав, что ООП для меня не просто три буквы, а нечто большее. Второй этап был несравненно сложнее. Меня собеседовала группа опытных девелоперов в течение часа. Я не буду углубляться в то, какие вопросы мне задавали, но скажу, что знание основ ООП — must have, причем знание на уровне автоматизма. Мне сказали что результат будет известен через несколько недель и не дали никаких комментариев по моему уровню знаний. Я вышел из офиса на ватных ногах и с мыслью, что все пропало.
    Прошло 2 или 3 недели и у меня зазвонил телефон. В трубке раздался голос рекрутера компании, который сказал: «Мужик, ты принят, приходи завтра с документами». Я тот час же понесся на работу… увольняться.
    По обучению на курсах, могу отметить только то, что практически всю необходимую информацию для джуниора можно получить на javarush.
    И вот я — junior java developer, сижу в кресле перед столом с 2мя мониторами. На одном мониторе я пишу этот пост, а на другом, как показатель моего первого успешного шага в профессии, висит консольное окно с выполняющимся скриптом по сборке проекта, а на заднем фоне темно-серое окно Intellij Idea.

P.S.
    Если вам говорят, что вы в ваши 27 лет уже слишком стары, чтобы начинать свой путь в программировании, шлите таких советчиков далеко и надолго. Мне уже за 30. Многие лиды в компании младше меня. Но все это неважно. Я считаю, что лучше стать сеньором к 40 годам, чем не стать им вовсе. Если вам нравится этот путь, идите по нему. Читайте, изучайте, пишите код. Все в ваших руках!

P.P.S.
    Спасибо javarush, за то, что дали мне площадку для старта в моей карьере программиста.