• 3.12

  • +4.20

Паровозик, который смог

Если быть кратким, то вот мой путь:
1 месяц – 20 лвл JavaRush
2 месяц – 30 лвл JavaRush
3 месяц – выполнение тестового задания на стажировку JavaRush
4 — 6,5 месяц – прохождение стажировки в T-Systems, изучение Enterprise стека
7 месяц – выход на работу
10 месяц – прошёл испытательный срок, полёт нормальный

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

Для начала, привет, меня зовут Вячеслав, мне 27 лет. Я не часто оглядываюсь назад, но раз уж дошли руки до этой статьи, то я предлагаю представить, что такая штука как “омут памяти” существует. Давай руку, погнали, окунёмся туда и посмотрим, как это всё было)
2 декабря 2016 года.
Смотри, вот он, я. Только недавно защитил кандидатскую диссертацию в институте гидротехники. Но что-то меня тревожит. Давай послушаем мои мысли в тот период:

“Институт разваливается на глазах, и мало кого реально волнует отрасль гидротехники. Почти весь отдел, в котором я работал, разбрёлся кто куда смог пристроиться. Я конечно молодец, что не стал оставаться, и тоже ушёл работать аналитиком в стартап, но через месяц он развалился из-за нехватки денег.
И вот я без работы, с весьма узкопрофильной специализацией, почти без шансов найти другую работу по специальности, чтобы она меня устраивала. Вернуться обратно в институт и проработать там до гробовой доски? Сомнительная перспектива. Вообще меня привлекает программирование. Я ведь даже пишу периодически простые программки на Python. Но чёрт, моих знаний явно не хватит чтобы стать прогером! Да и вообще, разве это реально, не имея профильного образования. А ведь мне уже 26...”

В то время я иногда задумывался о программировании, но на форумах я часто натыкался на советы гуру, по типу “это почти невозможно”, “с возрастом всё сложнее научиться думать как программист”, “надо раньше было учиться” и так далее. Но на всякий случай я написал своему другу-программисту вопрос, на каком языке он бы мне посоветовал писать, если я вдруг решу начать серьёзно учиться. Его ответ был: JAVA.

Гм, о Java я тогда знал только надпись “Powered by Java” на заставках в играх на телефоне. Что это за язык, для игр на мобилке что ли? Ну раз советуют, то ок, можно попробовать.

Я стал гуглить и наткнулся на истории успеха JavaRush. И я залип. Мой мир перевернулся. Это было то, чего мне не хватало для того чтобы поверить в свои силы. Вот они, реальные примеры реальных людей, которые добились своей цели!

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

Через пару дней я уже учусь на джава раше) Пока я ещё без понятия, сколько времени уйдёт на изучение. У меня осталась заначка с прошлой работы, да и родители помогают, так что можно полностью посвятить время обучению! Так 2 декабря стало отправной точкой – я точно решил, что стану программистом!

… Давай, доставай голову из воды, а то дышать уже нечем)) Перед следующим погружением в омут памяти я хочу сказать спасибо JavaRush! Несмотря на происки валидатора и порой игрушечность заданий, я считаю, что этот ресурс сыграл решающую для меня роль. Именно поэтому я считаю своим долгом написать эту историю – может она сподвигнет сомневающихся на то, чтобы перестать сомневаться.
Ну что, нырнём ещё разок? Давай глянем, как проходили мои суровые будни в течение первых 2 месяцев изучения Java!

*Бульк*

Вот я завожу будильник на 8. И так каждый день. Встаю, делаю себе большую кружку ароматного чая и сажусь за JavaRush. И занимаюсь допоздна. Запасы денег таят на глазах. Надо изучить Java как можно быстрее! Вот мои главные друзья в тот суровый период каждодневного самообучения:


Ох уж этот капитан Бобров, всем своим видом он так и троллит тебя, да и задачки порой даёт ого-го. Тем не менее, задачи я прилежно решал и старался не пропускать их. Были и взлёты, когда на 20 уровне казалось, что готов идти минимум миддлом на работу, так и падения. Прекрасно помню, как не мог осилить бонусные задачи на каком-то из уровней. Бился два дня, был раздражительный, не мог ни о чём другом думать. Но в итоге таки решил их!

Время пролетело быстро, и вот они, плоды моих трудов – 30 лвл взят ровно через два месяца с момента начала обучения! Я слышал о стажировке JavaRush и решил попробовать, что же это такое. Для этого надо было решить вступительное задание.

Смотри, видишь, как округляются мои глаза? Это я увидел тестовое задание))
После 30 левела я думал что знаю про джава всё что можно! А все эти базы данных, вэб, какие-то html и прочее – этим наверное занимаются специально обученные люди. И тут я понял, как я ошибался)
Послушаем мои тогдашние мысли:

Что? Какой maven, какой tomcat? Что это??? Что значат все эти слова? Я думал что уже рукой подать до того чтобы стать прогером, а тут ещё столько всего учить!



Да, это была суровая реальность. Тогда я понял, что прошлые задачки джава раш были цветочками. Ведь там всё разжёвывалось и вкладывалось в рот, а тут я предстал перед лицом огромного океана энтерпрайз-технологий, меня вывезли на 100 метров от берега на лодке и бросили в воду. И я начал барахтаться.
Я помню того монстра, который получился на выходе тестового задания. Я карпел над ним 3 недели. Как бы я удивился, если бы мне сказали, что через пару месяцев я смогу сделать это задание за 1 вечер и в 10 раз лучше? На память я сохранил скриншот UI моего первого вэб-приложения:

Ммммм, мякотка!

Параллельно я изучал SQL, алгоритмы и структуры данных, потому что это были обязательные требования во всех вакансиях.

Что ж, успехи были налицо, и я решил составить резюме. И о чудо – через пару дней меня позвали на моё первое IT-собеседование!

В целом оно прошло норм, но меня смутил древний стек технологий компании, да и коллектив состоял не из молодёжи, а из людей 40+. Я представлял себе свою новую работу по-другому. Параллельно с этим собеседованием я подал заявку на стажировку в T-Systems, решил тестовые задачи. И о чудо, меня позвали на очное тестирование и собеседование! Кому интересно, здесь я написал статью об этом собеседовании — info.javarush.ru/GuitarFactor/2017/03/13/%D0%98%D1%81%D1%82%D0%BE%D1%80%D0%B8%D1%8F-%D0%BE%D0%B4%D0%BD%D0%BE%D0%B3%D0%BE-%D1%81%D0%BE%D0%B1%D0%B5%D1%81%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F-%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D0%B5%D1%81%D0%BD%D1%8B%D0%B5-%D0%B2%D0%BE%D0%BF%D1%80%D0%BE%D1%81%D1%8B.html

В скором времени пришёл ответ, что меня берут на стажировку в T-Systems! Мои денежные запасы на тот момент уже почти иссякли, и встал выбор – ломиться в первую компанию с древним стеком, но начать работать уже сейчас, либо пойти обучаться 2,5 месяца в T-Systems и иметь лучшие перспективы. Это был очень сложный выбор! Но я выбрал второе.

Давайте-ка вынырнем из омута памяти обратно и подышим! К тому моменту, на котором мы остановились, я взахлёб изучал Java уже 3 месяца. Было ли что-то, о чём я жалею? Пожалуй, да. Если вы в похожей ситуации – не повторяй моих ошибок!:
1. Не учитесь целыми днями. Несколько раз я рисковал перегореть морально и физически
2. По возможности не бросайте работу ради обучения – я до сих пор расхлёбываю финансовые последствия долгого периода тунеядства
3. Нагружайте себя физически! Я целыми днями сидел за компом и прибавил в весе, стала болеть спина. Хотя раньше занимался спортом. Старайтесь удерживать баланс!

Ну что ж, мы уже на финишной прямой рассказа, давай нырнём в омут последний раз и узнаем, чем же всё в итоге закончилось!

Началось обучение. Тонны новой информации, я сижу за проектом сутки напролёт! В моей группе есть очень сильные ребята, с IT-бэкграундом, изучающие джава уже несколько лет. Я пыжусь изо всех сил, чтобы не отставать от них. Со мной в группе ещё один парень с JavaRush, стараемся помогать друг другу с проектом. А проект, ни много ни мало – многопользовательское вэб-приложение + ещё одно поменьше, которые получают сообщения друг от друга по JMS, тянут данные по REST и всё такое. Честно сказать, это был апофеоз) Всё что было раньше мне показалось цветочками. К финальной защите проекта я находился в состоянии зомби и молился только о том, чтобы уже просто начать работать, как обычные люди, а не сидеть по 12 часов в день, изучая всё что только можно.

Видимо, мои молитвы были услышаны) Показ прошёл очень спокойно, но судьба приготовила для меня ещё один трудный выбор.

После показа мне почти сразу поступило предложение войти в состав весьма специфичного проекта, сразу же на миддла, с окладом значительно превышавшим мои ожидания. Но проект был весьма специфичный – надо было ворошить портянки из xml, конвертить их с помощью xslt преобразований и так далее. Это удовольствие весьма сомнительное, я понимал что это полный ад и не знал что делать. Обрекать себя на каждодневную боль и получать никому не нужные знания, либо отказаться и рисковать вообще не получить больше офферов. Но я рискнул и отказался (куратор заверил, что офферы ещё будут). Так и случилось, и я попал на должность Junior Developer, с меньшим окладом, зато в человеческий проект, со спрингом и хибером. Разумеется, навыки по этим технологиям куда востребованнее, чем xslt)
Всё, хэппи энд, выныриваем обратно!

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

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

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

В общем, проблем много, но я не жалею о том что сделал.

И если бы не истории успеха здесь, на JavaRush, всех этих событий никогда не случилось бы в моей жизни. Поэтому спасибо, JR!

Специальное послание для тех, кто стоит на перепутье и сомневается, как я в своё время: просто начните заниматься! Программирование в 95% случаев – это не rocket science, и я убеждён в том, что каждый может получить работу девелопера! Через 3 месяца, полгода, год, два… Другой вопрос, что действительно хорошим разработчиков может стать не каждый, но это уже совсем другая история…)

Спасибо что прочитали этот довольно спонтанный рассказ, желаю всем удачи, верьте в себя!

История одного собеседования: интересные вопросы

Недавно мне довелось посетить собеседование на позицию стажёра в одной из крупных IT-компаний.
Это было моё первое IT-собеседование и, на мой взгляд, оно выдалось интересным. В общей сложности меня “допрашивали” больше 3 часов (этому предшествовали ещё домашние задания и тест в офисе на компьютере).
Хочу отдать должное собеседующему, который не ставил крест, когда я отвечал на вопрос неверно, а с помощью своих наводящих вопросов заставлял меня вдумываться и приходить к верному ответу.

Ниже я представлю несколько “зарисовок” – на мой взгляд, достаточно интересных вопросов, некоторые из которых дали мне более глубокое понимание отдельных аспектов в Java. Возможно, кому-то эти вещи покажутся очевидными, но думаю, найдётся те, для кого это будет полезно.

Тестовое задание на стажировку JavaRush: Полезные ссылки и хинты

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

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