JavaRush — обучение программированию на Java онлайн
Привет! Хочу рассказать о проекте, который я и мои друзья развиваем уже больше года. Это JavaRush — обучение программированию на Java форме онлайн игры.
JavaRush — это онлайн сервис для обучения программированию на Java. Игра сделана по мотивам вселенной Футурамы. Цель игры — прокачать персонажа (робота Амиго) с 1 до
Вы берете задание, выполняете его и получаете награду. Думаю вам это и понятно и привычно. Задачи будут самые разнообразные: чтение кода, решение задач, видео-уроки, просмотр Футурамы, исправление ошибок в коде, добавление новых фич и многое другое.
Чтобы курс не растянулся на 5 лет, я выкинул из него все полезное и оставил только самое необходимое. Я пересмотрел и проанализировал много вакансий — в курс включены все темы, которые нужно знать новичку Java Junior Developer, чтобы устроиться на работу.
Полный курс из 80 уровней содержит 900 мини-лекций и 2500(!) практических задач. Задачи небольшие, но их много, очень много. Как раз тот минимум, выполнив который, вы получите столь ценный опыт. Также есть работа в парах, различные игры, большие задачи, реальные проекты и другие виды практики.
Курс разбит на 2 части по 40 уровней. Вы можете перейти на следующий уровень, только если решили большую часть задач текущего уровня. Начиная с маленьких и легких, и заканчивая большими и очень полезными. Каждый, дошедший до конца, получит
Задачи можно решать прямо на сайте. Это очень удобно и эффективно. Только что в лекциях вы разбирали новую задачу, а теперь прямо тут же должны сделать свою по аналогии. Для тех, кто хочет решать задачи в IDE, есть плагин, который позволяет получить задачу за два клика, а сдать на проверку — за один.
Кстати, думаю, многим из нас знакома ситуация, когда сдаешь задачу/работу на проверку, а результатов пришлось ждать неделю, т.к. проверяющий занят? В JavaRush вы узнаёте результаты компиляции и проверки задачи меньше чем через секунду, после нажатия кнопки «Выполнить/Проверить»
В ВКонтакте есть группа посвященная проекту. В ней вы можете обсудить задачи, поделится достижениями с друзьями, посмотреть видео-уроки или попросить помощи. Так же мы организовали сообщество (info.javarush.ru), где можно сделать то же самое, а также почитать вопросы к собеседованию, попросить помощи в составлении резюме и многое другое.
В моих лекциях есть много ссылок на различные сайты, где вы можете почитать объяснения других лекторов. Моя цель, чтобы ученики поняли материал, а не слушали только меня. ИМХО, для того чтобы стать программистом вам нужны только мозги и компьютер. Это займет у вас от 3 до 6 месяцев, в зависимости от того, сколько времени вы будете уделять практике.
Вот еще пара скриншотов для любопытных:
Причины создания такого проекта (разрыв)
Я уже 10 лет работаю в ИТ-отрасли и заметил два интересных факта.
С одной стороны мы имеем ИТ-компании, которые нуждаются в высококлассных специалистах. Они готовы платить зарплаты, приближающиеся к мировым, обеспечивать ну очень комфортные условия труда, давать социальные бонусы и еще кучу всего. Все они в один голос твердят, что специалистов катастрофически не хватает. Они готовы брать зеленых новичков и давать им работу, где те смогут дорасти до профессионалов мирового класса, если не будут лениться, конечно. Попадание в хорошую компанию, фактически гарантия будущего стремительного роста.
С другой стороны мы имеем десятки отечественных технических вузов, которые готовят специалистов. Сильная математическая школа (наследие советского образования) делает свое дело — умных студентов действительно много. В этих вузах также учат информационным технологиям: программированию, сетям, базам данных, многим другим полезным вещам.
Но вузы не смотрят в сторону рынка. Учат не тому что востребовано, а тому, что могут. Это как в анекдоте, когда мужик ищет бумажник не там, где потерял (и он может быть), а там, где светло. И это приводит к тому, что между максимальным уровнем выпускника вуза и минимальным уровнем, который нужен для устройства на работу (и решения всех финансовых проблем на многие годы) есть разрыв.
Разрыв не большой, но его достаточно, чтобы 90% студентов технических вузов не смогли найти работу в ИТ. Вдумайтесь! С одной стороны, есть компании, которые готовы предоставить шикарную во всех смыслах работу десяткам тысяч выпускников, с другой стороны есть сотни тысяч способных выпускников, которые не могут найти работу и применение своим талантам. Проигрывают и те и те.
В нашем ИТ рулят самоучки. Спросите любого IT-шника, и он скажет вам, что-нибудь из серии «90% всего, чем я пользуюсь на работе, не преподавали в вузе», «ничего из того, чему учили, не пригодилось», «в первый год работы я узнал больше чем за 5 лет в вузе» и т.д. Именно самоучки смогли методом проб и ошибок преодолеть этот разрыв в знаниях и навыках.
Самоучки — тоже не выход. Многие из них идут вперед методом проб и ошибок. Человеку, еще не работающему в отрасли сложно судить, что учить, а что нет. Советы же на форумах, что учить, часто заключаются в предложении прочитать
Крупные компании пробуют учить людей сами, но тут тоже не все так идеально. Можно набрать группу из 20 человек и учить ее три месяца. Но на выходе половина отсеется просто из-за нежелания работать (разленили людей наши вузы). Вторая половина, почувствовав, что теперь востребована на рынке труда, начнет заламывать себе цену. Или попытается уйти в более выгодное место при первой же возможности. А ведь обучение вылилось компании в кругленькую сумму: надо и помещение предоставить и задачи подготовить, а еще и оторвать высококлассного специалиста от работы, чтобы учил.
Дешево и сердито
Все началось более восьми лет назад, когда я начал переучивать на программистов своих друзей. Сначала я учил по одному, затем по два и наконец, сразу по три человека. Если у человека было техническое образование, я мог научить его. Если не было, все равно это удавалось. Люди шли на собеседования, устраивались на работу и отлично самостоятельно развивались дальше.
ИМХО, 5 лет протирания штанов на гуманитарном факультете не делают человека гуманитарием, так же как и 5 лет в техническом вузе еще не делают человека технарем. Тут, кстати, больше от способностей учителя зависит, чем от способностей ученика.
Со временем я увидел систему в том, что делал. Мне нравилось учить людей, нравилось, что они становились программистами, и это кардинально меняло всю их жизнь. Мне понравились результаты моей работы, и я захотел переучить больше людей. Гораздо больше.
Тогда я решил сделать один раз шикарный онлайн курс, чтобы им могли пользоваться тысячи людей. Потом его можно потихоньку улучшать. Но это все равно лучше, чем тратить силы сотен преподавателей снова и снова.
У любого очного курса есть преимущество перед онлайн курсом — это его преподаватель. Преподаватель может адаптировать курс под студентов, а также, может отвечать на их вопросы. Хотя, справедливости ради, стоит сказать, что так делают далеко не все преподаватели. Очень часто на обычных курсах все скатывается к «сам дурак».
Поэтому, чтобы онлайн курс был эффективнее очных, пришлось добавить ему немало преимуществ. И судя по отзывам — мне это удалось. Вот некоторые из них: упор на практику, мгновенная проверка задач, обучение в игровой форме, поддержка, видео уроки, помощь по задачам, мотивационные лекции, плагин для IDE, сообщество (info.javarush.ru), вопросы к собеседованию, уроки по IDEA, реальные проекты и многое другое.
И хотя целью курса было преодоление разрыва между знаниями выпускника вуза и потребностями отечественного рынка труда, курс ориентирован на людей со школьными знаниями (паскаль), которые фактически никогда не программировали. В идеале любой человек, даже школьник, может пройти курс и стать программистом.
Вот несколько ключевых моментов этого курса:
Практика
Практика наше все. Я не верю, что можно стать программистом, не программируя. Слишком много я видел людей, которые могут отвечать на вопросы по Java, но не умеют программировать. Поэтому основной целью обучения я хотел сделать «наработку людьми практического опыта».
По моим самым скромным меркам, минимальная планка — это где-то
Начал я с самых легких задач — вывод текста на экран. Затем сложность задач постепенно возрастает. Как вес штанги в спортзале. Пройдет полгода, и вы не заметите, как уже жмете сотню с груди.
Всего в первых
Кстати, вы когда-нибудь пробовали уговорить взрослого человека решить 1000 задач? А если при этом вас не будет рядом, и он будет сидеть и решать их в одиночку? Да это же практически не реально! ИМХО, легче уговорить человека бросить курить, написав на каждой пачке сигарет «не кури».
По планам создать крутой онлайн сервис был нанесен серьёзный удар. И тут я вспомнил, как мои друзья часами просиживают в WoW, WoT, Lineage2 и т.д. (у меня много друзей). Вот эту бы настойчивость, да в мирное русло!
Решено. Надо делать курс в форме игры. Другого способа уговорить людей часами делать то, от чего им же потом будет большая польза, я не вижу. Если знаете — поделитесь.
Мотивация
Очень часто на форумах слышу: — Пробовал переучить друзей, но никто не заинтересовался, или заинтересовался, но лень заниматься. Запомните, научить человека чему-то, если он сам хочет, может любой дурак. Или, как говорят «если студент хочет учиться, преподаватель тут бессилен».
Представьте, что вы учите пятилетнего ребенка читать. А он не хочет. А с чьего-бы ему хотеть? Тогда ваша задача сначала заинтересовать его, затем начать учить, а потом все время поддерживать его интерес и мотивацию. С взрослыми надо обращаться абсолютно так же.
Любой предмет, в принципе, можно преподносить настолько скучно и заумно, что даже самый упертый студент плюнет, разуверится в своих силах или того хуже — решит, что «это не мое». Это школьника можно заставить делать домашние задания и т.п. А людей младше 7 и старше 17 нужно заинтересовывать и мотивировать. Самые классные преподаватели именно это и делают.
Осознав такую простую истину, я написал 15 «мотивирующих» лекций — статей, которые раскрывают глаза на мир ИТ, показывая чего можно достичь, если есть желание. Это действительно помогает.
Но и этого оказалось мало. Никто не любит скучные лекции. Тогда я решился сделать все обучение в форме игры. Сейчас в JavaRush — это на 30% игра, а 70% обучающий курс.
Монетизация
Не обошлось и без монетизации. Я, как любой айтишник, выкатил первые сроки чересчур оптимистично. Когда прошел год, и деньги закончились, я опомнился. Рискнул и прикрутил к JavaRush монетизацию. Не очень-то веря, что наши люди будут готовы платить деньги за «доступ к сайту». Выбор у меня был небольшой: надо было либо монетизировать курс или забросить его. А бросать было жалко — уж слишком хорошие были отзывы.
Я разбил курс на две части. Первые 40 уровней — это чистый Java Core. После него уже можно идти и искать работу. Знаю пару человек, которые нашли работу, не дойдя и до
Сделал первые 10 уровней бесплатными, а остальные доступными по подписке. Цену выставил в $30/месяц или $200 разово. Но в подписку за $200 входит еще участие в «реальном проекте». Это специальный проект приближенный к реальным условиям: Git, JIRA, код ревью, митинги и т.д.
Работа программиста окупит эти затраты с первой зарплаты, но каждый решает для себя.
На каждом уровне
Плагин
Решать задачи на сайте — это хорошо, даже замечательно. Но программистом так не станешь. Нужно писать большие проекты и делать это в IDE. Времена «проектов в блокноте» давно прошли. Поэтому я решил давать ученикам одни задания для решения на сайте, а другие (более объемные) для решения в IDE. Мой выбор пал на Intellij IDEA — это моя любимая среда разработки.
При решении задач на сайте у людей есть два преимущества: а) нет отрыва от контекста, б) мгновенная проверка задач. Качество и удобство обучения снижать я категорически не хотел, поэтому принял решение — написать плагин для Intellij IDEA, чтобы задачи можно было мгновенно получать и так же быстро сдавать на проверку прямо из IDE. Нажал кнопку — задача проверилась — что может быть проще?
Плагин пережил уже две новых версии IDEA, и хотя пришлось его частично переписывать, нынешний плагин отлично работает в IDEA 11- 13.
Благодарности
Да хранит бог все аутсорсинговые ИТ компании, благодаря которым такие программисты как я могут заниматься интересной работой, а не работать в банках, общаться с бухгалтерией или заправлять картриджи. Программирование — это не только мое хобби, но и хорошая интересная работа, за которую отлично платят.
Благодаря аутсорсинговым/аутстафинговым компаниям у наших программистов есть не только зарплаты, которые приближаются к европейским, но и опыт, который мы можем продавать на международном рынке. По крайней мере, те из нас, которые готовы оторвать задницу от дивана.
Если вы или ваши друзья хотите стать Java-программистом — жду вас на JavaRush.
Найкращі коментарі пропустити