Немного предыстории... Пол года назад когда я дошел до 19 уровня меня вкрай задолбали 3 вещи: 1)Бесконечные безсмысленно сложные бонусные задачи Боброва (в конце каждого уровня) на которые уходит слишком много времени. Тогда я решал все доступные задачи. Первые 10 уровней прошел вполне динамично и интересно. С 11 по 15… терпимо… Но потом бонусных задач ставало все больше и они ставали все сложнее и однотипнее и как буд-то без остановки. И чем дальше тем больше я подозревал, что польза от них в будущем при трудоустройстве и работе будет стремиться к нулю (об этом позже). 2)Скучные лекции Профессора с бессконечной вложенностью. Я старательно обрабатывал все вложенные лекции вложенных лекций... и доходило до того что на статьи Профессора я больше тратил времени чем на все остальное на уровне. Демотивировало еще то что, 25% статей (ИМХО конечно!) это неэффективная непонятная незапоминающаяся информация! Эти 25% статей или плохо/сложно написаны или очень не соответствовали уровню учащегося. 35% нуждались в коррекции, остальные – классные и полезные. Проблема в том что 40% качества не спасало, а потому чтение превращалось в нечто занудное «и лишь бы побыстрее пройти»…. В кратце: чтение убывало и мотивацию, и интерес, и время. 3)Осознание того что пройдя почти половину курса я до сих пор скорее всего не делал даже приблизительно то что делают реальные Java программисты в своих проектах. И по этой причине мне было до конца не понятно хочу ли я стать Java-разработчиком. Деньги для меня не главная мотивация. Мне важен интерес! Т.е. не было четкого понимания того как выглядит цель! Не понятно чем реально занимается Java разраб на работе, на сколько это интересно/скучно, потяну ли я реальную работу на проекте. Как я понял, большая сложность кроется в том что вариаций деятельности на работе прогера уйма и невозможно прям четко на различных примерах кода, ситуаций точно дать понять что там происходит-то в конце концов=) А учитывая что Джун, Мидл, Синьор вообще могут заниматься совершенно разным как я понял, то от этого и путаница в понимании стала еще больше. С этой проблемой много кто сталкивается! Я же предполжил что в компаниях не платят тысячи баксов за решение бонусных алгоритмических задач капитана Боброва где нужно дрочиться с массивами и индексами, создавая алгоритмического страшного монстра лишь бы валидатор принял... =) Ну это жесть! Рили. Не должно так быть. А потому я решил сделать перерыв и постарался попробовать хоть не много приблизиться к более реальным задачам. Примерно за пол года я: -С помощью Servlets и JSP и базы данных запилил в Maven-e свое первое CRUD Web-приложение (1 месяц) -прошел курс Udemy по Maven-у (1месяц) -изучил JDBC по видосам и по книге "Библиотека Профессионала - Хорстман" (1месяц) -прошел курс Udemy - SQL для начинающих с нуля до сертификата Oracle (1.5месяца) -прошел курс Udemy - Практический курс для новичков по SQL и PostgreSQL (1.5месяца) -Прочитал книгу Фридла «Регулярные выражения» (это того не стоило!)(1месяц) Спойлер: в комментах ниже поймете что тратить столько же времени на эти технологии было моим не лучшим решением! Это все конечно хорошо, но JavaCore никто не отменял;) И вот я такой красивый вернулся назад на Javarush... Начал проходить 19 уровень. Вроде все норм. Дошел до бонусных задач капитана Боброва в конце уровня. И тут НА-НА!!! Столкнулся с той же жестью из-за которой тогда ушел после 18 уровня. Сижу, решаю... Одна из таких задач - это «Знакомство с тегами», на решение которой у меня ушел целый день. Целый день на одну задачу! А впереди еще 14 и это только для одного 19 уровня. Прочитав комменты, некоторым вообще нужно было 2 дня на решение... Ну жесть какая-то... Некто скажет что «Знакомство с тегами» можна решить в 3 строчки с помощью jsoup. Но я понял так. Что не просто так разработчики не оставили подсказку про "jsoup" в условии. А так как разрабы вряд ли будут давать непосильные задачи, то значит хотели чтобы я прошел это опираясь на свои знания! Известная же практика: давать задачу которую ооооочень сложно решить на основании изученного, а в следующих уровнях уже обучить технологии с помощью которой эта задача решается в пару кликов. Этим повышается ценность будущих знаний. После я перепрошел задачу используя и jsoup. Но то было позже. Ну ладно... нужно решать дальше задачи! Вызов принят! Вызов то принят... но моих нервов хватило только еще на 2 задачи ("Свой FileWriter" и "Отслеживаем изменения"). С одной стороны я решил их. Молодец! Учитывая что 30-40% дошедших до этих задач вообще не осилили 2 из 3 (статистика), то я совсем красавчик! Самолюбие самолюбием, но я на эти 3 задачи потратил 2 дня, получил полное ощущение изнасилованного мозга, утратил силы, расшатал нервы.... Прочитав комменты ребят которые афигевают также от подобного я вспомнил весь предыдущий испытываемый до этого негатив от прохождения... И понял что должно быть какое-то решение! Ведь я не хочу снова испытывать подобное и уходить из Javarush-a! Суть проблемы Бобровских задач: Впереди еще 40-18=22 уровня. Примерно в каждом уровне бонусных задач около 15 штук. В среднем(ИМХО) одна задача с учетом «поесть/сходить в туалет» требует 4 часа жизни. Соответственно на день хватает сил на 2 такие задачи (8 часов учебы). Итого на решение бонусных задач грубо говоря уходит 22*15*4/8=165дней. Т.е. около 6 месяцев жизни!!! В то же время и без траты времени на бонусные задачи можна пройти все те же 40 уровней Javarush-a. При чем они так и называются "БОНУСНЫЕ", т.е. как я понимаю необязательные! Так а в чем тогда смысл? Да, я знаю что так тренируется навык преодоления трудностей, повышается закалка и тд и тп. ИМХО, но за первые 17 уровней тренируется закалка более чем (ИМХО)!!! Кроме того Бобровские задачи решаемые, но на это уходит слиииишком много времени. Есть еще несколько минусов Бобровских задач. Пришел к выводу что большое количество этих задач не помогают раскрыть тему уровня и не улучшают ее понимание, а построены в основном на очень спецефически-сложном алгоритме, который невозможно запомнить на будущее, т.к. каждый раз приходится придумывать совершенно дикого страшного монстра дабы принял Валидатор!!! Эталонного решения подобного курс не учит. А практика создавать франкенштейна - это плохой навык, который никто не одобрит на реальном проекте. Другое бы дело... если бы в каждой задаче тренировались шаблонные алгоритмы или шаблоны проектирования. Вот это было бы круто! А что имеем: вот возьми этот массив, переложи туда, а теперь сюда, а теперь через этот индекс, а теперь через инкремент, а теперь поменяй местами, а вот так, а этак... и тд… А время тикает и психика на исходе…А учитывая что все забывается а тем более вот такие алгоритмические монстры (нешаблонные), то на работе если и нужно будет подобное решать, то все будет как будто в первый раз! А какой тогда смысл, если КПД от них в дальнейшем --> 0. Предполагаю конечно что каждая задача несет свой смысл, но он плохо раскрывается. Мне это больше похоже на мартышкин труд, который очень демотивирует... И вишенька на торте: Наслушавшись/начитавшись в инете, просмотрев требования на вакансии Джуна для себя понял, что если хочешь попасть в более менее норм контору, то учить нужно дофига! И получается что 40уровней Джавараша это только 25% от тех знаний которые требуют с Junior-a. Еще нужно добротно изучить: -Курс по SQL 10% (потратил 2 месяца учебы) -Курс по какой-то СУБД 5% (потратил 1 месяц) -JDBC 5% (потратил 1месяц (привет Библиотеке Профессионала от Хорстмана)) -Курс по Maven 5% (потрати 1 месяц) -С помощью Servlets и JSP запилить в Maven-e свое первое CRUD Web-приложение 5% (потратил 1 месяц) -Курс по Spring (Core+Boot+MVC) 30% (предполагаю нужно 6месяцев) -Курс по Hibernate 15% (предполагаю нужно 2 месяца) -Еще 1 месяц чтобы подтянуть вопросы для собеседования и подготовится к собесу на английском. Вывод: кроме 40уровней Javarash нужно грубо говоря 1 год и 3 месяца на другие технологии. Спойлер: в комментах ниже поймёте что такое восприятие рынка и процентовки являются далекими от объективной реальности! А потому вопросы: 1)Зачем нужно тратить силы, энергию, нервы и 6 месяцев на те бонусные 300 задач капитана Боброва если все равно все забудешь и на собеседовании никто не будет о них спрашивать??? Справшивать ведь будут по технологиям на сколько я понимаю. 2) Может лучше 6 мес. потратить на Spring/Платную_Практику чем на задачки? 3)Те кто работает или готовится к собеcедованиям подскажите плиз как более эффективно проходить Javarush? На чем заострить внимание, а что устарело и больше не нужно? И т.д. 4)Да и вообще как правильно делать процентовки важности/усилий по необходимым для трудоустройства технологиям? В плане... где нужно норм курс пройти, а где достаточно инфы с ютубчика, где книгу почитать, а где без практики не обойтись... И т.д. Спасибо! P.S.: У меня есть два друга… Один очень одаренный но очень ответственный, а потому решая все задачи, разбирая все лекции по полочкам, дойдя до 24 уровня «психологически сгорел», стал воспринимать Джаву только через слова «боль», «мозговынос», закинул Джараш и теперь хоть и атеист но креститься при упоминании слова «Java». Второй не зацикливался на 100% прохождении задач и чтении всего и вся, дошел до 20 уровня, далее начал учить Spring и другие технологии… Сейчас высококлассный программист с 5 летним опытом который не испортил себе нервы и которому до сих пор не надоела Джава. Критикуешь - предлагай говорят! Ок! Предлагаю... Предложу свой вариант эффективного прохождения Javarush: 1)До 17 уровня решаю и читаю АБСОЛЮТНО ВСЕ, разбираясь до мелочей! Т.е. ставлю перед собой задачу не выучить Джаву а разобраться в ней! А это уже другой подход. 2)После 17 уровня (разбираюсь) решаю и читаю всё, КРОМЕ "Лекций Профессора" и "Бобровских задач" (смотри пункты 3, 4). 3)Лекции Профессора… Если попадется откровенный шлак – не читаю (таких можеть быть до 25%). Остальную теорию разбираю по полочкам с разных сторон пока все не станет ясно! Кроме того если что-то вызывает вопросы, то сразу же в идее проверяю свои сомнения. Навык по-быстрому проверять теорию на практике не только повышает ясность изучаемого но и лучше запоминается. А так как такая дополнительная "микро" практика дает личные "открытия" в понимании то и лекции стают менее унылыми и процес идет интересней! 4)Бобровские задачи… Я действую следующим образом: 4.1)Если я не до конца уверен в своих знаниях темы уровня а все задачи РЕАЛЬНО помагают лучше ее понять, то я прохожу столько задач по очереди пока не пойму что все понял. Когда понял - перехожу на следующий уровень. Однако если уже понял, но другие задачи интересные и не убивают зря время - решаю и их. 4.2)Если тему уровня я прекрасно понял, то среди всех бонусных задач выбираю 3 наиболее полезные для реальной жизни (они скорее самые сложные). Когда решил - перехожу на следующий уровень. Однако если остальные задачи интересные и не убивают зря время - решаю и их. Что дает такой подход? Меньше тратишь время на то что тебя убивает. Меньше тратишь время на то, чьё КПД со временем --> 0. Если же дошел до 41 уровня и полон сил и имеешь много времени, то можно пройтись по всем уровням, решив пару задач с каждого. Заодно и материал можно повторить и себя проверить! Также имею практику делать "ВЫПИСКИ" максимально короткие но эффективные в формате Word. Собираю всю информацию с разных источников по теме в одном месте. Структурирую, создаю полную картину для лучшего понимания. В процессе объединения всплывают очень интересные открытия, взаимосвязи, особенности что еще сильнее улучшает понимание информации. "Открытия" фиксирую. Понятное дело с картинками=) Зачем я создаю "ВЫПИСКИ"? Структурирование улучшает понимание изученного. Но есть и другая теория. Все забывается. И на момент трудоустройства в голове останется много обрывков информации. А если не структурировать то их будет еще больше. А потому выписки как выжимка лучшего быстро помогут пробежать по изученному ничего не упустив. Также имею практику делать заметки под названием "ЛАЙФХАКИ". Здесь я записываю то что не относится прям к конкретной теме. Это подобно папке для музыки под названием "Разное". Записываю какие-то фишки которые увидел в коде и которые хочу в дальнейшем сам использовать, но которые так сразу и не запомнишь. Или записываю какие-то классные решения/практики, которые можно шаблонно применять в будущем. Лайфхаки короч) РУКОВОДСТВО К ВОСПРИЯТИЮ ПРИЧИТАННОГО! Просьба не отвечать гениям которым все легко - у нас разный опыт, трудности, ощущения, восприятие! ВАЖНО!!! Этот пост не истина в последней инстанции и не руководство к действию! Этот пост я создал с целью получить помощь от других ребят для себя ЛИЧНО. Если Вы считаете что я написал какой-то бред, то знайте. Я СДЕЛАЛ ЭТО СПЕЦИАЛЬНО. Я действительно так думАЛ на момент публикации. А указал специально, чтобы другие легче смогли увидеть в чем мои заблуждения и где @ зарыта! ПО ЭТОМУ: 1)Если Вы поняли в чём моё заблуждение, то АРГУМЕНТИРОВАНО предложите альтернативный вариант видения. На высокомерную подачу - могу ответить довольно жостко. Кусаюсь=)) Дельным аргументированым советам всегда открыт и благодарен. Желательно прочитать до этого комменты дабы не повторяться. 2)Если же Вам проблемы описанные в посте довольно близки и наболели, то СВОЙ СУБЪЕКТИВНЫЙ ОТВЕТ КАЖДЫЙ ИЗ ВАС НАЙДЕТ В КОММЕНТАРИЯХ НИЖЕ! В комментах ребята дают дельные советы и делятся своим опытом. Важно понимать то что НЕТ ЕДИНОГО ПРАВИЛЬНОГО ЭФФЕКТИВНОГО СПОСОБА ОБУЧЕНИЯ ИЛИ ТРУДОУСТРОЙСТВА! Разные люди находятся в разных условиях, имеют разный жизненный опыт, разные способности, разное восприятие информации, разные предпочтения и вкусы, разные психические травмы и комплексы с детства. Мы все очень разные. А потому.... что приглянется в комментах для вас дельное, то и будет ваше! Простите за много текста. Подгорело! Ой! Накипело;) Спасибо за понимание!