Если быть кратким, то вот мой путь:
1 месяц – 20 лвл JavaRush
2 месяц – 30 лвл JavaRush
3 месяц – выполнение тестового задания на стажировку JavaRush
4 - 6,5 месяц – прохождение стажировки в T-Systems, изучение Enterprise стека
7 месяц – выход на работу
10 месяц – прошёл испытательный срок, полёт нормальный
Вот это да, как гладко всё выглядит на бумаге! Но за этими сухими фактами скрывается столько эмоций, сомнений, взлётов и падений, что сложно уместить их все в одной статье на форуме. Но я попробую!
Для начала, привет, меня зовут Вячеслав, мне 27 лет. Я не часто оглядываюсь назад, но раз уж дошли руки до этой статьи, то я предлагаю представить, что такая штука как “омут памяти” существует. Давай руку, погнали, окунёмся туда и посмотрим, как это всё было)
2 декабря 2016 года.
Смотри, вот он, я. Только недавно защитил кандидатскую диссертацию в институте гидротехники. Но что-то меня тревожит. Давай послушаем мои мысли в тот период:
Ох уж этот капитан Бобров, всем своим видом он так и троллит тебя, да и задачки порой даёт ого-го. Тем не менее, задачи я прилежно решал и старался не пропускать их. Были и взлёты, когда на 20 уровне казалось, что готов идти минимум миддлом на работу, так и падения. Прекрасно помню, как не мог осилить бонусные задачи на каком-то из уровней. Бился два дня, был раздражительный, не мог ни о чём другом думать. Но в итоге таки решил их!
Время пролетело быстро, и вот они, плоды моих трудов – 30 лвл взят ровно через два месяца с момента начала обучения! Я слышал о стажировке JavaRush и решил попробовать, что же это такое. Для этого надо было решить вступительное задание.
Смотри, видишь, как округляются мои глаза? Это я увидел тестовое задание))
После 30 левела я думал что знаю про джава всё что можно! А все эти базы данных, вэб, какие-то html и прочее – этим наверное занимаются специально обученные люди. И тут я понял, как я ошибался)
Послушаем мои тогдашние мысли:
Да, это была суровая реальность. Тогда я понял, что прошлые задачки джава раш были цветочками. Ведь там всё разжёвывалось и вкладывалось в рот, а тут я предстал перед лицом огромного океана энтерпрайз-технологий, меня вывезли на 100 метров от берега на лодке и бросили в воду. И я начал барахтаться.
Я помню того монстра, который получился на выходе тестового задания. Я карпел над ним 3 недели. Как бы я удивился, если бы мне сказали, что через пару месяцев я смогу сделать это задание за 1 вечер и в 10 раз лучше? На память я сохранил скриншот UI моего первого вэб-приложения:
Ммммм, мякотка!
Параллельно я изучал SQL, алгоритмы и структуры данных, потому что это были обязательные требования во всех вакансиях.
Что ж, успехи были налицо, и я решил составить резюме. И о чудо – через пару дней меня позвали на моё первое IT-собеседование!
В целом оно прошло норм, но меня смутил древний стек технологий компании, да и коллектив состоял не из молодёжи, а из людей 40+. Я представлял себе свою новую работу по-другому. Параллельно с этим собеседованием я подал заявку на стажировку в T-Systems, решил тестовые задачи. И о чудо, меня позвали на очное тестирование и собеседование! Кому интересно, здесь я написал статью об этом собеседовании - http://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 месяца, полгода, год, два… Другой вопрос, что действительно хорошим разработчиков может стать не каждый, но это уже совсем другая история…)
Спасибо что прочитали этот довольно спонтанный рассказ, желаю всем удачи, верьте в себя!
“Институт разваливается на глазах, и мало кого реально волнует отрасль гидротехники. Почти весь отдел, в котором я работал, разбрёлся кто куда смог пристроиться. Я конечно молодец, что не стал оставаться, и тоже ушёл работать аналитиком в стартап, но через месяц он развалился из-за нехватки денег. И вот я без работы, с весьма узкопрофильной специализацией, почти без шансов найти другую работу по специальности, чтобы она меня устраивала. Вернуться обратно в институт и проработать там до гробовой доски? Сомнительная перспектива. Вообще меня привлекает программирование. Я ведь даже пишу периодически простые программки на Python. Но чёрт, моих знаний явно не хватит чтобы стать прогером! Да и вообще, разве это реально, не имея профильного образования. А ведь мне уже 26...”В то время я иногда задумывался о программировании, но на форумах я часто натыкался на советы гуру, по типу “это почти невозможно”, “с возрастом всё сложнее научиться думать как программист”, “надо раньше было учиться” и так далее. Но на всякий случай я написал своему другу-программисту вопрос, на каком языке он бы мне посоветовал писать, если я вдруг решу начать серьёзно учиться. Его ответ был: JAVA. Гм, о Java я тогда знал только надпись “Powered by Java” на заставках в играх на телефоне. Что это за язык, для игр на мобилке что ли? Ну раз советуют, то ок, можно попробовать. Я стал гуглить и наткнулся на истории успеха JavaRush. И я залип. Мой мир перевернулся. Это было то, чего мне не хватало для того чтобы поверить в свои силы. Вот они, реальные примеры реальных людей, которые добились своей цели! Забегая вперёд скажу, что следующие 3 месяца я читал и перечитывал истории успеха почти каждый день, как только просыпался утром. Я поверил, что и я смогу. Через пару дней я уже учусь на джава раше) Пока я ещё без понятия, сколько времени уйдёт на изучение. У меня осталась заначка с прошлой работы, да и родители помогают, так что можно полностью посвятить время обучению! Так 2 декабря стало отправной точкой – я точно решил, что стану программистом! ...Давай, доставай голову из воды, а то дышать уже нечем)) Перед следующим погружением в омут памяти я хочу сказать спасибо JavaRush! Несмотря на происки валидатора и порой игрушечность заданий, я считаю, что этот ресурс сыграл решающую для меня роль. Именно поэтому я считаю своим долгом написать эту историю – может она сподвигнет сомневающихся на то, чтобы перестать сомневаться. Ну что, нырнём ещё разок? Давай глянем, как проходили мои суровые будни в течение первых 2 месяцев изучения Java! *Бульк* Вот я завожу будильник на 8. И так каждый день. Встаю, делаю себе большую кружку ароматного чая и сажусь за JavaRush. И занимаюсь допоздна. Запасы денег таят на глазах. Надо изучить Java как можно быстрее! Вот мои главные друзья в тот суровый период каждодневного самообучения:

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


ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
В некоторых задачах там такое условие, что непонятно что от тебя хотят, а в других условие очень не однозначное и решение сводится скорее к угадыванию.
Другие откровенно сложные исходя из того, что нет бекграунда в этой сфере.
Такие задачи, даже будучи продвинутым за 5-ть минут не решишь. Т.е. их или не решаешь вообще или разбираешься с уже готовым кодом. А это тоже время занимает.
Для себя я сделал файлик со статистикой решаемых задач. На данный момент решил около 800 задач (не с самого начала считал). Это почти все задачи решены по 30-й уровень включительно. Предположим в среднем одна задача 30 минут решается. Итого получается 50 дней по 8 часов. Т.е. просто решая круглосуточно задачи можно за два месяца пройти до 30 уровня. А теперь добавим ещё изучение теории, чтение книг, общение на форумах и тематических чатах. А ещё учтем, что не спящий сутками человек очень быстро становиться не эффективным. Т.е. получается, что человек изначально очень силен в программировании или же он просто проклацивает уровни и списывает задачи для галочки. :)
Я не супергерой, и не гениальный программист. Моя цель была — изучить самое важное как можно быстрее. Моей целью не было дотошно вникать в суть КАЖДОЙ задачи (тем более, как HOS верно написал, некоторые задачи действительно сводились к угадыванию того чего хочет валидатор).
Если я видел что задача интересная и полезная (или даже скучная, но нужна чтобы набить руку) — я её делал. В противном случае всё равно пытался решить, если был ступор — лез на форум или на гитхаб смотреть правильный ответ.
Задачи решены были не все, несколько недоделанных бигов и бонусов. Занимался я чаще даже больше чем по 8 часов в день.
Это я к чему: если вы хотите играть в первенство джава раш — кто доскональнее изучит все задачи до 30 лвл — на мой взгляд это тупиковый путь. И я сразу же от него отказался. Моя цель была — выцепить из курса самое важное и хоть как-то набить руку.
А скептически многие относятся потому, что воспринимают ваши слова иначе, чем на самом деле вложенный в них смысл. Успехов в работе! :)
Чтобы прояснить ситуацию — я участвовал в стажировке от компании, там и предоставляся ментор. Был сквозной проект на 2,5 месяца — написать 2 вэб-приложения с нуля. Никакого космоса там не было — классическая трёхзвенная архитектура, о которой мне сразу же рассказал ментор. Всё остальное — просто самостоятельно ковырял по туториалам. Стандартно — tutorialspoint, микйонг, видосы с ютуба.Таким образом за короткий срок удалось нахватать по верхам знаний обо всех технологиях.
Что-то стало проясняться только когда я попал на работу, прочитал книги по спрингу, хиберу и ознакомился с использовавшимися в проекте технологиями.
Могу посоветовать Java Persistance with Hibernate — отличная книга про хибер
Спринг — можно читать спринговские референсы, они написаны образцово-показательно, либо Spring in Action.
Потом переключился с core на «сопутствующие» вещи:
— SQL — стандартно, задачи на sql-ex + туториал на w3schools
— Алгоритмы — сначала на стек оверфлоу разобрался со сложностью алгоритмов, потом смотрел курс CS50 на JR. Там преподаватель просто великолепно объясняет, примеры, показанные с участием зрителей, надолго впечатываются в память.
Потом стал делать тестовое задание на стажировку, про ресурсы, которые мне помогли, я писал в этой статье (это можно расценивать как простенькое руководство к действию, когда надо что-то писать на энтерпрайзе, а ты не знаешь о нём ничего — ссылка
Ну а потом уже пошла стажировка с энтерпрайз стеком и там было бесконечное гугление и вопросы к ментору.
На работе чтобы пройти испытательный срок одно из условий было прочесть книги:
1. Ho, Harrop, Pro Spring 3 (ch. 1-5, 10, 12, 13, 17)
2. Manning, Java Persistence with Hibernate, Second Edition (ch. 10, 11, 3, 4, 5, 7, 8, 11, 14, 15)
3. Кайт, Oracle для профессионалов, (ch. 6, 7, 8, 11) — скорее специфика нашего проекта, так что этот пункт я бы не назвал обязательным
4. Макконелл, Совершенный код (ch. 5-9, 10-13, 14-16, 20-24, 31-32,
Кому нужно на английском: www.allitebooks.com/java-persistence-with-hibernate-second-edition/
Код: jpwh.org/examples/
Понятия не имею, как можно освоить алгоритмы, просто почитав про них, а не использовав их в каком-либо своем проекте. Аналогично и тем более — паттерны. Я лично подошел к ним только по истечении 2-х лет с момента старта.
Также я не представляю себе, как в принципе может идти развитие без своих собственных проектов — не тех, что за вечер пишутся, а тех, над которыми работать нужно, например, месяц. Все закрепляется на практике — и лучше задач реальных, решение которых будет кому-то полезным. Но на это нужно не 7 месяцев, вероятно
В общем — автору не верю. Извините, если все это правда, но слишком похоже на рекламу javarush.
А как вам эта история? Чувак вообще без высшего образования, будучи звукорежиссером, освоил курс меньше чем за три месяца)
Теперь попробуйте посчитать, за сколько бы я их прошел, занимаясь, как автор, полный рабочий день — по 8 часов (подсказываю — надо разделить 12 на 4).
И вообще — кол-во месяцев не показатель. Сравнивать надо по количеству потраченных часов. Автор за месяц потратил столько часов на обучение, сколько другие могут потратить за 3 месяца по простым причинам.
Кстати, в старой версии Javarush был журнал событий, с таймстампами всех сданных задач, попытках сдать задачи, новых уровнях и т.д. Жаль, что в новой версии это вырезали.
Если перейти к конкретике — да, я решал много задач в день, и сидел целыми днями. Если у вас есть цель, много терпения и усидчивость — в быстром прохождении уровней нет никакой магии.
Что так поразило в блоге про паттерны я тоже понять не могу) Каждый день в начале рабочего дня первый час я посвящаю изучению интересных мне вещей. Так вот, в течение некоторого времени я тратил по часу с утра на изучение одного паттерна по материалам 3-5 сайтов. Собрал у себя на компьютере самые удачные примеры кода по паттернам. Потом прочитал Head First Design Patterns (кстати, всем очень советую!). Скопив коллекцию примеров на компьютере я решил поделиться этим с коллегами. Что здесь невероятного, я не понимаю.
Что касается офферов — я думаю это стечение обстоятельств, с таким же успехом всё могло получиться не так радужно. Пожалуй, в чём-то мне повезло. Возможно, сыграло роль наличие кандидатской. Сказать сложно.
Ссылка на гитхаб — github.com/vyacheslavoleshko/
На блог с паттернами ссыль не дам, так как это закрытый блог для участников нашего проекта, там используются фрагменты кода проекта. Data privacy и все дела. Но кому интересно — хорошие примеры по паттернам, которые я насобирал, есть по ссылке на гитхаб.
P.S. SitaBurat, хочу заметить только одно. Не стоит писать о том, чего не знаете. Я про кандидатскую. Если вы думаете что это что-то на уровне магистерской работы в универе, это далеко от истины. А назвать гидротехнику непонятно какой отраслью это вообще невежественно. Как думаете, какие станции обеспечивают вам свет в квартире в часы пиковых нагрузок? Давайте отключим все ГЭС и узнаем.
P.P.S. Больше не буду отвечать сомневающимся — если вам что-то кажется невероятным, это не значит, что это и в правду невероятно. У кого есть вопросы по сути — буду рад помочь)
И все 100% задач решены вами? Или какой-то процент списан? Какой процент приблизительно списан?
Мне интересно, какой подход вы использовали для получения быстрого результата.
Поскольку по своему опыту могу сказать, что для решения некоторых задач приходится тратить слишком много времени и часто это совсем не оправдано много.
PS Как раз сейчас хожу по собеседованиям. Надо будет ещё раз пересмотреть ту твою статью, там довольно много полезной информации для того, что пройти собеседование.