Обучение программированию на Java


    Я собираюсь переучить на Java-программистов миллион человек.
    Я собрал команду и сделал обучающий сервис, которым могу гордиться.
    Рад сообщить, что теперь стать программистом легко, независимо от образования и опыта.



    JavaRush — изучение программирования на Java в виде онлайн-игры




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

    Рад представить вам новые онлайн курсы обучения программированию на Java.

    1 Обучение сделано в виде онлайн-игры


    Вы берете задание, выполняете его и получаете награду. Думаю вам это и понятно и привычно. Задачи будут самые разнообразные: чтение кода, решение задач, видео-уроки, просмотр Футурамы, исправление ошибок в коде, добавление новых фич и многое другое.

    Возможно, вам даже придется писать программы для своего робота, чтобы сражаться со своими друзьями на «арене» или что-нибудь еще.

    2 Только самое необходимое


    Чтобы курс не растянулся на 5 лет, я выкинул из него все полезное и оставил только самое необходимое. Я проанализировал десятки вакансий на рынке труда. В курс включены все темы, которые нужно знать новичку Java Junior Developer, чтобы устроиться на работу.

    3 Я основательно подошел к вашему обучению


    Полный курс содержит 900 мини-лекций и 2500(!) практических задач. Задачи небольшие, но их много, очень много. Как раз тот минимум, выполнив который, вы получите столь ценный опыт.

    Также есть работа в парах, различные игры, большие задачи, реальные проекты и другие виды практики.

    4 Вы не можете пройти игру до конца и не стать программистом


    Курс разбит на 80 уровней. Вы можете перейти на следующий уровень, только если решили большую часть задач текущего уровня. Начиная с маленьких и легких, и заканчивая большими и очень полезными. Каждый, дошедший до конца, получит 500-1000 часов практического опыта. Серьезная заявка на победу. И на работу.

    5 Целенаправленная подготовка к собеседованию


    Последние 10 уровней посвящены написанию резюме, подготовке к прохождению собеседования и навыкам работе в команде. Будут добавлены видео-записи собеседований и их разбор. Ну и, конечно, типичные вопросы на собеседованиях с ответами.

    Также вам пригодится «план развития программиста на 5 лет» и «карта дальнейших возможностей программиста» на следующие 5 лет.

    6 Задачи можно решать прямо на сайте



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

    Лекции, разбор примеров, решение задач прямо на сайте, решение задач в IDE – разрыв между теорией и практикой тонок, как никогда.

    7 Мгновенная проверка задач (меньше секунды)


    Знакома ли вам ситуация, когда вы сдали задачу/работу на проверку, а результатов пришлось ждать неделю, т.к. проверяющий занят?
    В JavaRush вы узнаете результаты компиляции и проверки задачи меньше чем через секунду, после нажатия кнопки «Выполнить/Проверить»

    8 JavaRush любит, когда вы сидите в ВКонтакте во время учебы


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

    9 Охват материала


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

    10 Для того чтобы стать программистом вам нужны только мозги и компьютер


    Это займет у вас от 3 до 6 месяцев, в зависимости от того, сколько времени вы будете уделять практике.


    Краткое описание игры


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

    За решение практических задач, просмотр мультфильмов и многое другое вы получаете награду – несколько единиц «чёрной материи».

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

    Лекции


    Лекции я постарался сделать небольшими, интересными и наглядными. Вот пример одной из них:


    Практические задания


    Написать программу – это практическое задание средней сложности. Для его выполнения вы должны написать программу на Java. Для вашего удобства, а также упрощения проверки программы, код стоит писать только в месте, отмеченном комментарием «напишите тут ваш код»

    Также, в случае успешной компиляции, программа автоматически будет протестирована – правильно ли решена поставленная задача.

    Домашние задания нужно решать в Intellij IDEA. Я написал специальный плагин для IDEA, который даст вам возможность мгновенно проверять вашу программу на правильность. Он состоит всего из двух кнопок:
    Левая — показывает список доступных для вас задач:

    Правая – отправляет задачу на сервер на проверку:

    Также вы можете зарабатывать «черную материю» просматривая на сайте серии Футурамы:

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

    Чему вы учитесь



    Первые 40 уровней вы изучаете Java Core. Следующие 40 – основы таких технологий как JSP, Servlets, Hibernate, Spring. Изучение Java Core – очень детальное, все остальное — в той минимальной версии, которая может понадобиться Java Junior при устройстве на работу.

    Если в вашем городе есть крупные IT-компании, после 40 уровня можно попробовать устроиться к ним на стажировку. Если их нет или вам недостает опыта, вы можете продолжить изучение технологий Java, пока не дойдете до 80 уровня.

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

    Курс в разработке (сделано 25%)



    В настоящий момент курс находится в разработке. Уже сделано около 25% всей работы. Вполне достаточно, чтобы примерить на себя роль Java-программиста, оценить и свои силы и JavaRush. Пробуйте, может быть с этого маленького события и начнется череда волшебных изменений в вашей жизни.

    Планы на будущее


    Многие фичи уже сделаны, над многими еще идет работа, а остальное — скромно ждёт своей очереди. Будет добавлена анимация, обучающие игры, нелинейный сценарий развития. Полный курс будет включать 80 уровней, 900 лекций и две с половиной тысячи практических занятий. А также видеозаписи собеседований и их разбор. Образцы составления резюме и удобный сервис для этого.

    Многое будет зависеть от ваших отзывов и от посещаемости сервиса.

    Почему Silverlight?

    Игра написана на Silverlight. Обучающий курс изначально проектировался именно в виде онлайн-игры: много анимации, встроенные мини-игры, видео, мультфильмы и еще много чего. Так что выбор тут был между Silverlight (в котором у меня хороший опыт) и Flash (в котором опыта гораздо меньше).

    Простые задачи решаются на сайте, для всего остального есть MasterCard Intellij IDEA.

    Программирование – это просто и интересно.

    Оплата


    Сейчас сервис бесплатен. В то же время, для его успешного развития нужны средства. Законченный сервис лучше, чем заброшенный.

    Образовательные гранты

    Очень бы не помешали. Надеюсь, мое видение образования, описанное в статье «правильный университет» найдет свой отклик в сердцах единомышленников.
    Также, надеюсь на ваши отзывы. Чем больше восторженных отзывов получит проект, тем больше шансов, что какой-нибудь хороший фонд, заинтересованный в развитии образования, даст нам грант на развитие.

    Модель Freemium

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

    Или я слишком оптимистичен или слишком наивен, или одно из двух.

    В же чем прелесть эры онлайн-курсов?


    Они уничтожат индустрию, которую по ошибке называют высшим образованием. 

    А как же вуз?



    Чтобы устроиться на работу новичком Java-программистом, надо хорошо знать Java Core, основы базовых фреймворков (Hibernate, Spring, JSP, Servlets) и иметь опыт программирования хотя-бы несколько месяцев.

    Формально многому из этого вас в вузах и учат. По факту – почти ничему из вышеописанного.

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

    Java Junior Developer


    Так, скорее всего, обстоят дела, когда вы уже закончили вуз и только ищите работу:


    Все, чему вас не научил вуз, но что нужно в работе, вам придется выучить самому. Скорее всего по книжкам месяцев за 6-12. Если у вас есть друг-программист, который готов быть вашим наставником, этот срок можно сократить в 2-3 раза.

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


    Java Senior Developer


    Есть мнение, что чтобы стать специалистом в своем деле, нужно потратить на него около 10,000 часов. В году чуть более 2000 рабочих часов, так что это примерно 5 лет.

    А вот так будут обстоять дела у Java-программиста с 5 годами опыта работы:


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

    Процентов 80 из того, что вы учите в вузе, вам не пригодится никогда. Так, разминка для мозгов. Как шахматы, кроссворды или логические игры.

    Очень много придется учить самому. Люди ленивы. Если не будете лениться – будете зарабатывать $3К-$4К к пяти годам работы программистом.

    Вуз – хороший




    Объективность требует сказать, что вуз, на самом деле, неплохое место. Там можно расти над собой, заниматься интересными вещами, гулять, пока молодой. Это все тоже надо.

    К тому же вуз дает диплом, что может помочь при трудоустройству в гос. контору или при получении рабочей визы заграницу. Хотя наши негосударственные ИТ-компании обычно не обращают внимания на диплом. Не стоит забывать и про отсрочку от армии.

    В целом ситуация с вузом выглядит не так уж плохо. Не идеально, но и не плохо.


    Единственное, чего вуз вам скорее всего не даст – это профессию. Поэтому я и создал JavaRush – сервис онлайн обучения программированию на Java.

    Еще год назад такого сервиса не было даже в планах, и мне приходилось обучать одновременно всего по несколько человек. Сейчас JavaRush пользуются больше тысячи человек и где-то треть из них занимается каждый день.

    Так что, имеющие желание, но не имеющие возможности – пробуем.

    Повторюсь. В настоящий момент курс находится в разработке. Сделано около 25% всей работы (20 уровней из 80). Вполне достаточно, чтобы примерить на себя роль Java-программиста, а также оценить и свои силы и JavaRush.

    Всегда ваш, General

    P.S.

    Запрос прав при авторизации ВК
    Личные данные и друзья
    Надо для того, чтобы отображать на карте звездного неба прогресс вас и ваших друзей.

    Ваши аудиозаписи и видеозаписи
    Серии Футурамы залиты в ВК. Я показываю их прямо оттуда.
    (Чтобы не сильно нагружать мой сервер раздачей видео)

    Работа со стеной
    Чтобы вы могли приглашать друзей изучать Java вместе с вами.
    (Это можно сделать в разделе «Друзья» )

    И ничего более.

    Проверял работу только под Windows
    Похоже, что под Linux с Moonlight не работает.
    Под MacOSX еще никто не отписался.

    Сервис расчитан не на программистов
    Основная аудитория — это люди, которые хотят быть программистами, но которым еще не попался хороший учитель.
    Если у вас есть линукс и аккаунт на гитхабе, то вряд ли вам пригодится курс джава-джуниора.

    Почему выбран Silverlight
    1 Нет никакой связи между тем, какой язык мы учим и на чем написано приложение для занятий
    Если бы я писал обучающее приложение для iPad, я написла бы его на Objective C, а не на Java
    Если бы я обучал SQL, я тоже не стал бы писать клиента на SQL

    2 У каждого языка/фреймворка есть свое преднозначение
    У Java — это Android и Enterprise.
    А для RIA-приложений лучше всего подходят Flash & Silverlight

    3 У меня много опыта на Silverlight
    Из всех технологий, которые я знаю, я выбрал самую подходящую для онлайн-игры.
    Если бы я не знал Silverlight, но хорошо знал Flash, клиент был бы на Flash.

    4 На хабре много тру айтишников, которые принципиально используют Linux и не используют ВК.
    Если вы тру айтишник и у вас только Linux, возможно вы уже переросли курс джава-джуниора.

    5 Надо бы писать все на Java!
    Не слишком ли много требований для проекта, который начинался просто как желание помочь людям и хобби?

    6 Увидел что Silverlight и сразу закрыл
    Если технология используемая для создания клиента перевесила для вас все преимущества проекта, то может быть не очень то и хотелось?
    Кто хочет — ищет возможность (и я ее предоставил), кто не хочет — ищет причину.


    У кого проблемы с авторизацией — первый раз заходим по этой ссылке.
    Поделиться публикацией
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама
    Комментарии 289
    • +20
      Я, конечно, прямо сейчас перейду по ссылке, но все это звучит настолько круто, что невольно засомневаешься, а такое вообще возможно?
      Пойду убеждаться…
      • +8
        Я, конечно, по ссылке перешел, но увидел только невозможность авторизации через ВК и запрос секретного ключа, который нужно посмотреть в настройках… которых на сайте, конечно, нет О_о
        • +1
          Для людей, у которых на работе закрыт ВК, добавлен способ авторизоваться по секретному ключу.
          (Вы его получаете, только если раньше уже логинились через ВК)

          Если доступа к ВК нет, просто введите неверный ключ и автоматом зайдете в демо-режиме.
          • +1
            А если я не зарегистрирован в ВК? даже посмотреть нельзя?
          • +1
            На фейсбуке тоже не зарегистрирован и в твитере меня нет.
        • +44
          Курс разбит на 80 уровней


          Java Junior Developer восьмидесятого уровня?!
          • +26
            Хотел уже посоветовать другу, который собирается изучать java, пока не заметил, что ни у меня ни у него ничего не заработает — Silverlight-с… Удачи с продвижением сервиса. Идею поддерживаю, хоть инструменты для неё и подобраны не самым лучшим образом.
            • –9
              Moonlight не пробовали?

              • +7
                Не работает. Уже несколько человек в топике отписалось.
                • +4
                  Ну, вообще писать софт для обучения _Java_ на главном конкуренте этой платформы — в этом есть что-то эзотерическое :)
                  • НЛО прилетело и опубликовало эту надпись здесь
                    • +2
                      Надолго?
                      • +3
                        Ну, если судить по истории сотрудничества различных фирм с Микрософтом — до разорения Оракла или до его поглощения.

                        Хотя, руководство то у Оракла, в плане добычи денег из всего, очень грамотное, может и отмахается.
                        • +1
                          Oracle тоже не лыком шить, ещё неизвестно кто кого :)
            • +23
              Есть ряд таких очень интересных вопросов:
              1. Планируется ли авторизация НЕ через Вконтакте?
              2. Согласовано ли использование образов из Футурамы (и самих «серий Футурамы») с правообладателем? Ведь закроют же, если нет.
              • +16
                Круто!
                Но Вам нужно: 2) Silverlight 5 — это зачем??
                • +6
                  Игрушка на нём написана… Жаль. Хотелось бы поиграть… но держать для неё Windows очень не хочется.
                  • +4
                    Присоединяюсь. Ни на убунте, ни на маке я не могу посмотреть курс. Разочарован.
                    • +1
                      извиняюсь, ступил. на маке все ок. (на первый взгляд)
                      • +1
                        На Mac все работает отлично.
                    • +24
                      >Игра написана на Silverlight
                      Теперь чтобы просто посмотреть проект на своей ubunte мне придется стать шаманом.
                      • +13
                        Да ладно бы только linux, мы тут привычные и не такое запускали с помощью прямых рук и волшебных жестов. Вообще ни на чём, кроме винды не заработает.
                        Тем более что функционал игры вобщем-то без проблем реализуется чистым HTML5.
                        • –13
                          >> Вообще ни на чём, кроме винды не заработает.

                          Я понимаю, что вы из мира linux, Винда — гавно, сильверлайт — отстой, MS гариваду и всё такое, но SL прекрасно работает на Маках, например.
                          • –15
                            Есть такие люди, которые живут и работают только для того чтобы насрать на Microsoft. Это же так модно.
                            • +11
                              Последние 6 слов лишние.
                            • +3
                              Линуксоидам, как ни странно, пофиг, а вот у вас, похоже, зудит.
                              В этом сервисе печалит использование не-кроссплатформенной технологии и соцсети.
                          • +1
                            Не получится: Moonlight встал, игрушка начала включаться, теперь вижу только белый экран. Хотя можно попробовать потыкаться в настройки Moonlight.
                          • +57
                            Вам нужно:

                            2) Silverlight 5
                            3) Аккаунт ВКонтакте

                            How about no
                            • +6
                              Silverlight поставить ради такого ещё можно, хотя бы на отдельном браузере.
                              Но вот обязательность регистрации в социальной сети…
                              • +4
                                А я не хочу связываться с технологией, от которой сам производитель то ли отказался, то ли собирается отказаться (по крайней мере где-то я видел такую информацию).
                          • +14
                            Хм…

                            Приложению будут доступны Ваши личные данные
                            Приложению будет доступен список Ваших друзей
                            Приложению будут доступны Ваши фотографии
                            Приложению будут доступны Ваши аудиозаписи и видеозаписи
                            Приложению будет доступна работа со стеной.
                            • –1
                              Личные данные и друзья
                              Надо для того, чтобы отображать на карте звездного неба прогресс вас и ваших друзей.

                              Ваши аудиозаписи и видеозаписи
                              Серии Футурамы залиты в ВК. Я показываю их прямо оттуда.
                              (Чтобы не сильно нагружать мой сервер раздачей видео)

                              Работа со стеной
                              Чтобы вы могли приглашать друзей изучать Java вместе с вами.
                              (Это можно сделать в разделе «Друзья» )

                              И ничего более.
                              • +2
                                Что будет, когда серии Футурамы удалят по запросу правообладателя? И вы не уточнили пункт «фотографии»
                                • 0
                                  Если видео из ВК недоступно, то автоматом начинает тянуться с кэша моего сервера.

                                  С фотографиями не работаю вообще. Вроде и небыло такого пункта никогда.
                                  (Посмотрю по коммитам, когда появился. Возможно случайно добавил. )
                                  • +1
                                    Не боитесь что ваш проект вообще заблокируют, в связи с тем что по новому закону же даже ссылки нельзя на нелегальный контент давать?
                                    • 0
                                      А вы видите где-то ссылки в публичном доступе?
                                      • 0
                                        Там очень хитрая формулировка, под которую и ваши уроки могут попасть, если с их помощью пользователи смогут получить контент с контакта без разрешения правообладателя. Так что смотрите ящик, чтобы не пропустить уведомление об удаление такой информации.
                                  • 0
                                    Личные данные и друзья
                                    Надо для того, чтобы отображать на карте звездного неба прогресс вас и ваших друзей.

                                    Юзерпики друзей :)
                                  • НЛО прилетело и опубликовало эту надпись здесь
                                • +5
                                  Очень хотел посмотреть, но под Ubuntu не пашет. Поставил Moonlight (Silverlight под Linux), Firefox демонстрирует мне прелестный белый экран.
                                  • +5
                                    Интересно, сколько человек поставило moonlight для этого :)
                                    • +8
                                      Мне бы пришлось не только ставить moonlight, но и регистрироваться во вконтакте. Благо предупредили…
                                  • +8
                                    Я не сторонник Java, но проект впечатляет.
                                    • +3
                                      Для вашего удобства, а также упрощения проверки программы, код стоит писать только в месте, отмеченном комментарием «напишите тут ваш код»

                                      Думаю не очень хорошее решение. Полный набор кода включает не только зрительную память, но и моторную — конструкции из под пальцев вылетают. По опыту копипаста с дисков из книг — легко получается написать алгоритм задачи, но вот «обвязку» приходится гуглить. Думаю компромиссом было бы выводить картинку с заготовкой, с которой обучаемый должен перебить код ручками, а потом написать свой.

                                      А вообще классный проект. Жаль, что попробовать не получается — без установки moonlight даже зарегаться не получалось, установил — индикатор загрузки до 100% дошел и всё — белый экран :(
                                      • 0
                                        Реально программист на Java, работающий в нормальных IDE очень многие обвязки не пишет (импорты, пакет — автоматом, определение класса в большинстве случаев подходит дефолтовое, только extends/implements поправить, вот с переменными, методами — да, для новых приходится, переопределяемые — также легко инсертятся средствами IDE).
                                        • 0
                                          Ну так и «заставить» студентов так же поступать. Хотя для начала я бы всё равно наставал на ручном написании.
                                          • 0
                                            Объяснить что и как — да надо, заставить пару раз — да надо… Потом позже заставить повторить, ориентируясь на командную строку (джуниоры же хотят пройти сертификацию? Без прохождения оной не везде берут, в моей компании — если ты пришёл без сертификата, обязан в 3х месячный срок её пройти [одна попытка за счёт компании]).
                                      • +2
                                        Вы меня простите, но для чего вам при авторизации в ВК доступ списку друзей, фотографиям, аудиозаписям и видеозаписям и к стене?
                                        • 0
                                          Ответил выше
                                          • +1
                                            Спасибо. Смутил только этот момент. Всё что прочел в статье выглядит превосходно. Пойду пользоваться. Спасибо за Вашу работу
                                        • +19
                                          У меня нет аккаунт вконтакте. Как быть?
                                          • –26
                                            Ради такого сервиса не зазорно и зарегистрироваться.
                                            • +7
                                              Да это понятно, что зарегистрироваться можно. Просто странно, когда сервис рассчитан на программистов, просить для авторизации аккаунт от вконтакте. Я думаю, что у большего числа людей есть аккаунт в гитхабе. Ну, или можно было сделать свою регистрацию.
                                              • +3
                                                Сервис рассчитан прежде всего на тех, кто хочет стать программистом. Или им надо начинать с того, что зарегаться на гитхабе? :)
                                                • +6
                                                  Почему бы и нет? Хороший способ выучить git.
                                                  • +2
                                                    Насколько я понимаю, git будет изучаться в процессе.
                                                • +2
                                                  Я так понимаю, что сервис как раз и не рассчитан на программистов, и уж если у тебя есть аккаунт на гитхабе, то вряд ли пригодится курс джава-джуниора. :)
                                            • +23
                                              Прочитал статью, загорелся идее пройти курс, открыл сайт, увидел упоминание о Silverlight, закрыл сайт.
                                              • +15
                                                И теперь у нас будет миллион, переученных на программистов филологов, котороые толком-то и матрицы по-перемножать не могут, не говоря уже о более сложных алгоритмах, которые будут называть себя Java Junior Software Developer, просмотревшие все серии футурамы, но не знающие чем абстрактный класс отличается от интерфейса

                                                Программирование — не для масс, хороший программист не получится из человека, который просто будет знать синтаксис Java. Пока выглядит как ресурс для подготовки третьесортных кодеров на Java. Я все
                                                • +11
                                                  Имхо, захотят — всему научатся
                                                  • –10
                                                    Имхо, матан они точно не поднимут. Может, софтинку мелкую, говененькую таки сделают, но не больше
                                                    • +2
                                                      Так ли часто нужен матан среднестатистическому Java-разработчику пишущему всякий enterprise?
                                                  • +7
                                                    Кому захочет развиваться — изучат и большее.
                                                    • –11
                                                      Когда человек выбирает в своей жизни направление филолога, очень сомневаюсь что после пары лет обучения на него, он захочет менять специализацию, проходить курсы линейной алгебры, математического анализа и статистики. Не получаются программисты из таких людей, а если и получаются, то очень низкого сорта и недостаточно квалифицированные
                                                      • +6
                                                        Ну, во-первых, не все выбирают — многие плывут по течению. Во-вторых, прецеденты есть, даже на хабре люди писали про себя в подобном ключе. В-третьих, ну будет миллион пускай не программистов, а кодеров низкого сорта — чем плохо?
                                                        • –11
                                                          Я так понимаю, что вы поддерживаете «Программирования — для масс»?
                                                          • +13
                                                            А вы за «Образование только для Илиты»?
                                                            • +3
                                                              Да. Программирование не в меньшей степени может называться гимнастикой для ума, чем математика, имхо. Но от программирования практический любой может получить практическую пользу, даже не создавая продуктов за деньги. Хотя бы банально заскриптовать свои рутинные действия. Или грамотный баг-репорт отправить.
                                                        • 0
                                                          Так многие же просто математику и программистские абстракции не осилят… Ну куда лезти в программисты, если не можешь понять рекурсию? ООП (java-же)? А многие операции требуют приличных знаний математики (далеко не все, да).
                                                          • +2
                                                            Что значит «не можешь»? Может «плохо объясняют»? Ну и большинство из этих многих операций требуют приличных знаний математики, только если хочешь понять, что происходит. Формулу из ТЗ или вики переписать — особые знания не нужны. Знания математики нужны, скорее для оптимизаций, чем для собственно разработки (если не брать наукоемкие сегменты).
                                                            • –1
                                                              А вы попробуйте перепишите формулу из вики… я нарвался на пару формул матана… чтоб я ещё раз к ним полез %_%
                                                              Не знаю, плохо ли объясняют или как, но знаю, что некоторые люди рекурсию не понимают, при том что другие с этим же объяснением — понимают. А уж уметь использовать и понимать процессы, которые происходят в случае рекурсии…
                                                              • 0
                                                                Переписывал и не только из вики, а из книг из библиотеки. Какое-нибудь БПФ реализовывал, не понимая что происходит.
                                                                • 0
                                                                  А мне, чтобы переписать пришлось в формулу вникнуть и понять действие полностью… а я матан со школы недолюбливаю, с универа не люблю. Хуже у меня идёт только вычислительная математика — из-за проблем в отношениях с преподом я этот предмет практически не знаю.
                                                            • 0
                                                              Ну да… уравнения Шредингера решать решали, с тензорами n-ых порядков работали… а рекурсию мы, конечно, не поймем. Пичалька :(
                                                              • 0
                                                                Я так понимаю, что вы какую-то инженерную специальность имеете в виду? Инженеры с высокой долей вероятности — осилят, филологи с высокой долей вероятности — нет.
                                                                • +1
                                                                  Скорее даже обще-научную. Физика твердого тела, все дела.
                                                                  Просто вот вы в своем заявлении о «не осилят» никаких уточнений вообще-то и не делали. И серьезно, какие еще филологи, мы на хабре, статья тут же. Сколько филологов вообще ее тут прочтут?
                                                                  Плюс, с каких пор филологическое образование мешает понять рекурсию?

                                                                  Это я к тому, что давайте все же не делать таких неосторожных обобщений.
                                                                  • 0
                                                                    С тех пор, как складывается тип мышления далёкий от математики и абстракций. На самом деле само по себе образование мешает не очень, но его адепты в большинстве своём думают несколько иначе и им понять такие вещи сложнее. Зато некоторые из них, например, могут здорово разбираться с языками/ещё чем нибудь, что нам будет даваться тяжело/не даваться… Это не плохо, что они другие… просто они другие.

                                                                    PS ну я же не делаю абсолютных обобщений, я не просто так использую формулу «многие» — есть и те, кто сможет и их может быть даже немало.
                                                              • +3
                                                                Ну куда лезть в программисты, если не можешь понять рекурсию?

                                                                «Чтобы понять рекурсию, нужно сначала понять рекусию» (с) инет
                                                                А вообще, VolCh прав — много ли среди нас программеров таких кто изначально учился на программера? И кто не выучил уже потом несколько языков самостоятельно? Я бы вообще в качестве критерия пригоден ли человек к профессии программиста поставил основное — сам нашел себе задачу, сам решил ее, сам продал решение. Три С.
                                                                • +2
                                                                  После «сам продал» надо ещё минимум год поддержки (чтобы прочувствовал качество решения).
                                                                  • 0
                                                                    «Сам продал» я бы исключил. Хотя бы потому что в школе продавал результаты работы своей программы, а не программу :)
                                                                    • +1
                                                                      Это уже не программист получается, а помесь аналитика, разработчика, РП и продажника. А смысл?
                                                                • +1
                                                                  Зато они не пойдут в QA: ехидно потирает лапки:
                                                                  • +7
                                                                    Читать книги — не для масс.
                                                                    Точить сапоги — не для масс.
                                                                    Иметь компьютер — не для масс.

                                                                    Летать в космос не для масс.
                                                                • +2
                                                                  Идея отличнейшая! Дорабатывайте, фиксите и это будет очень круто!
                                                                  • +13
                                                                    Игра написана на Silverlight. Обучающий курс изначально проектировался именно в виде онлайн-игры: много анимации, встроенные мини-игры, видео, мультфильмы и еще много чего. Так что выбор тут был между Silverlight (в котором у меня хороший опыт) и Flash (в котором опыта гораздо меньше).

                                                                    Эм… Стесняюсь спросить, но про JavaFX уважаемый преподаватель не слышал? Оно, кстати, в отличие от Сервелата 100% кроссплатформенное.
                                                                    • +1
                                                                      "… Silverlight (в котором у меня хороший опыт) и Flash (в котором опыта гораздо меньше)..."
                                                                      А вот JavaFX у автора опыта нет, так зачем время терять на Джафакс?
                                                                      • +6
                                                                        Чтобы была кросс-платформенность, она того стоит
                                                                        • +7
                                                                          Присоединяйтесь к проекту и сделайте морду на JavaFX или на HTML5
                                                                          • 0
                                                                            К сожалению, я больше по части Qt
                                                                        • +4
                                                                          Если знает Java, то обучиться основам JavaFX-а — месяц-два максимум. А бонусов у технологи в разрезе задачи резко больше.
                                                                      • +1
                                                                        Надо было Javarama в таком случае называть, раз у вас тематика Футурамы присутствует.
                                                                        • +2
                                                                          Насчет Javarama не знаю, а вариант FutuJava действительно рассматривался.
                                                                        • +3
                                                                          Да, какой то косяк с Силверлайтом. win7x64+Chrome
                                                                          Тема Интересная.
                                                                          • 0
                                                                            Аналогично
                                                                            win7x64 + (Chrome|Firefox) — ничего нету.

                                                                          • +9
                                                                            Классная идея, удачи вам с продвижением, но очень уж меня смущает ваша позиция насчет ВУЗов. «Процентов 80 из того, что вы учите в вузе, вам не пригодится никогда. Так, разминка для мозгов. Как шахматы, кроссворды или логические игры.»

                                                                            У вас как-то выходит, что в ВУЗе учатся лишь для того, чтобы получить специальность, а получить специальность — это самое главное в жизни. Этак можно логически продолжить и сказать, что в детстве книжки читают исключительно для развлечения, просто потому, что пока не могут начать учить Java, родители не разрешают долго за компьютером сидеть, а в школу дети ходят, потому что без школы в институт не возьмут и специальность не получить.

                                                                            Я все таки верю, что институт не ради специальности существует, а ради того, чтобы давать образование. И понятие «образованный человек» совсем не синоним слова «специалист». На мой взгляд, человеческая культура создала много разных знаний и образование как раз позволяет человеку научиться хоть как-то ориентироваться в этих знаниях. А без этого не занять своего места в жизни, своего отношения к вещам, без чего и не стать личностью.

                                                                            Но это лирика, попробую проверить вашу систему на своей девушке, она давно уже хотела научиться программировать.
                                                                            • +9
                                                                              Интересно. Когда учился, пользовался бы с радостью.
                                                                              Но дизайн, silverlight и вконтакт портят идею…
                                                                              • 0
                                                                                Идея отличная, но с каким же скрипом работает Silverlight в браузере…
                                                                                • 0
                                                                                  У Вас работает?
                                                                                  Перепробовал все браузеры под MacOs — не работает :(
                                                                                  • 0
                                                                                    Запустить удалось только под хромом в win, установив плагин этого чертового silverlight и минуты 3 яростно нажимая f5, в линуксе у меня просто белый экран
                                                                                • +11
                                                                                  Вы одним махом убили всю прелесть java: кроссплатформенность. Я программирую на java, но с интересном бы посмотрел и на Ваш курс: одна и та же информация, поданная под другим соусом, лучше запоминается и усваивается. Но у меня есть только Ubuntu, на которой я могу писать на jave, но не могу посмотреть, что Вы там придумали. Это огромная печаль.
                                                                                  • +4
                                                                                    Влюбился по описанию.

                                                                                    image

                                                                                    только увы.
                                                                                    В контакте не зарегистрирован. Да и
                                                                                    Авторизация через ВКонтакте недоступна Вы можете войти используя ваш секретный ключ. (см. раздел Настройки)

                                                                                    Можно старые добрые логин/пароль?
                                                                                    • 0
                                                                                      Зашел на сайт, посмотрел. Вроде не совсем идиот, но первое же задание ввело в ступор- «введите код, аналогичный коду выше»
                                                                                      Аналогичный это как? С другими типами? С другими названиями переменной? Другим способом написания?
                                                                                      Где пример объясняющий «аналогичность»?

                                                                                      А идея классная. Собственно уже давно не секрет что учиться играя всегда интереснее чем просто учиться.
                                                                                      • +1
                                                                                        Кстати, если код предложен такой:
                                                                                        int a = 1; int b = 2; int c = a + b;

                                                                                        Такой вариант студента не сработает:
                                                                                        int a = 1; int b = 2; int c = a+b; // Без пробелов, например
                                                                                        • +3
                                                                                          Когда курс не до конца готов, рано автору предьявлять требования
                                                                                          в его оптимизации — подождите, дайте человеку
                                                                                          сделать полезное дело. =)
                                                                                      • 0
                                                                                        Mac OS X 10.8.4:
                                                                                        Пришлось установить Silverlight и Chrome. В Safari не работает :(
                                                                                        • 0
                                                                                          Работает и в Сафари, только первичную авторизацию надо сделать в Хроме, потом можно работать и в Сафари.
                                                                                        • +1
                                                                                          Чую в следующий раз когда буду менять работу, придется обойти кучу поваров и сантехников с сертификатом 80 lvl по Java…
                                                                                          • +12
                                                                                            Возможно я старомоден, но я считаю что без профильного образования все равно хорошим программистом очень сложно будет стать.
                                                                                            ВУЗ очень много дает нужного, я считаю что даже курс философии был полезен мне, как разработчику. Без полученных знаний по математике, терверу, алгоритмам и я не смог бы решить многих задач, встречающихся на работе. Все таки для меня язык это только инструмент, который сложно было бы использовать эффективно без достаточного теоретического базиса.
                                                                                            Но это только мое мнение, думаю у многих оно сильно отличается.

                                                                                            И по собственному опыту подбора джуниоров, для начала вполне хватает хорошего математического/алгоритмического базиса и вдумчивого прочтения 1-2 книжек по основным API языка, например Эккеля или Хорстманна.
                                                                                            • +2
                                                                                              Совершенно согласен, что лишних знаний ВУЗ не даёт, потому что знания вообще не могут быть лишними. Что-то пригодится сейчас, что-то попозже, что-то позволит составить картину в общем.

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

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

                                                                                              То есть, я себе представляю такую цепочку: новичок в программировании -> необразованный кодер с опытом -> образованный инженер -> образованный инженер с опытом решения реальных задач -> хороший программист.
                                                                                              • 0
                                                                                                Университет даёт базу.
                                                                                                Можно стать хорошим программистом и без университета. Но это требует бОльших трудов, и специалист получается с гораздо более узким кругозором. Он например как бог делает веб сайты, но стоит попросить сделать backend для игры, где не дай бог есть физика или рассчёт столкновений, и физика с математикой начинают больно бить за пропущенные знания. Вместо поиска нужных формул, для понимания процесса приходится разбирать всё начиная с векторной арифметики.
                                                                                                • 0
                                                                                                  Для кругозора достаточно двух-трех курсов, имхо. Как раз где проходят математику и физику, логику и теорию управления, экономику и… и даже не знаю, что ещё наверняка пригодится почти любому — сопромат/теормех?.. В общем, общеинженерная подготовка (то есть даже не обязательно айтишная специальность, главное техническая или физмат). Дальше идёт обычно специализация, по которой статистически работает меньшинство и вероятность встретить её в другой работе минимальна. Другое дело, что вроде как дают предметы, которые могут руководителю понадобиться, но мы же про программистов.

                                                                                                  Правда если бы было в мое время обучение 4 года, а не 6, то наверное стиснул бы зубы и не ушел после 3-го курса. Но ещё 3 года специализироваться на приборостроении, пускай и айтишном, я не смог — программирования всё меньше, а электроники всё больше.
                                                                                                  • 0
                                                                                                    а я вот волей судьбы сейчас работаю в приборостроении. И сильно огорчён что у меня в вузе были только основы электротехники. А не расширенный курс.
                                                                                                    • 0
                                                                                                      Так и я про то — большинству нет смысла учиться (из-за знаний) до конца, по крайней мере в рамках 5-6 лет обучения. 4 — отдельный разговор, я толком программ не знаю, много ли там специализации.
                                                                                              • +12
                                                                                                Вы обучаете Java и ставите фигурные скобки вопреки Code Convention. Ну-ну.
                                                                                                • 0
                                                                                                  Учится на Java-программиста не буду, но комиксы у вас просто шикарные.
                                                                                                  • –1
                                                                                                    У меня кнопка авторизации вообще не реагирует на нажатия.
                                                                                                    Win7, Chrome, Silverlight 5.
                                                                                                    • 0
                                                                                                      там popup, хром блокирует, сразу и не заметиш.
                                                                                                      • 0
                                                                                                        На глаз ничего не происходит. Т.е. вообще нет каких-либо всплывающих оповещений и т.п. эффектов.
                                                                                                    • +2
                                                                                                      теперь стать программистом легко, независимо от образования и опыта

                                                                                                      А ничего, что чтобы быть программистом, недостаточно знать язык программирования?
                                                                                                      • –1
                                                                                                        Т.е. фраз «вы получите 500-1000 часов опыта программирования», «детально изучите Java Core», а также «получите базовые знания по работе с фреймоврками» вы не видили?
                                                                                                        • +1
                                                                                                          Java Core и работы с фреймворками — тоже недостаточно.

                                                                                                          А 500-1000 часов опыта… вопрос как раз в том, опыта чего? Кодинга? Дизайна? Рефакторинга? Программист должен уметь все это.
                                                                                                          • 0
                                                                                                            Кодинг и рефакторинг точно присутствуют в первых 16 уроках.

                                                                                                            Мимотестировщик сервиса.
                                                                                                            • +1
                                                                                                              И в чем там выражается рефакторинг?
                                                                                                          • +5
                                                                                                            Может быть для этого и нужно образование, чтобы не писать "видили"?
                                                                                                        • +4
                                                                                                          Только залогинился и уже:
                                                                                                          image

                                                                                                          Когда я успел?
                                                                                                          • +1
                                                                                                            Ну это бонусом идет если ты хабраюзер ))
                                                                                                          • +12
                                                                                                            Так и не понял, почему для реализации курса по Java выбран сервелат оО
                                                                                                            Выше правильно писали, можно было бы сделать его кроссплатформенным, написав на Java.
                                                                                                            А так… сапожник без сапог какой-то получается :(

                                                                                                            Но в любом случае спасибо за проделанную работу.
                                                                                                            • +15
                                                                                                              private static String TEXT = "Kiss my metal shiny ass";? Кто же так пишет? Либо сделайте это final, либо не пишите капслоком. Скорее первое, так как какого-либо другого присваивания я в коде не вижу, и можно будет использовать конкатенацию во время компиляции.
                                                                                                              • –7
                                                                                                                И потом объяснять кроме того, что такое private, static еще и final.
                                                                                                                Поймите, что писать хороший код и писать код понятный людйм, далеким от программирования — это две разные вещи.
                                                                                                                Я вынужден отталкиваться не от того, что такое «правильно», а от того, что люди уже знают или могут быстро понять.
                                                                                                                • +7
                                                                                                                  Надо сразу правильно обучать. Вас разве в первом классе обучали тому, что земля плоская, чтобы потом сказать, что она шарообразная? Или подчёркивать определение тремя чертами, а не волнистой линией, потому что рука меньше устаёт?
                                                                                                                  • +4
                                                                                                                    Ну, меня в первом классе учили, что из двух нельзя вычесть три, потом что на ноль делить нельзя, потом что из отрицательных чисел нельзя корень извлекать. В общем полно таких примеров.

                                                                                                                    А по теме: не уверен, что с первых строчек кода нужно учить писать правильно без объяснений, а объяснять сразу что такое «private, static еще и final» с первого урока тоже, по-моему не стоит. Единственное нужно дать какую-то ремарку типа «пример учебный, на продакшене так писать нельзя»,
                                                                                                                    • 0
                                                                                                                      Так нужно начинать не с куска кода с импортами, различными типами и разными видами модификаторов переменных, а с объяснения того, что эти все понятия делают.
                                                                                                                      • +2
                                                                                                                        Объяснять — это нужно половину языка рассказать, прежде чем что-то сложнее простейшего hello world написать. Неакадемическое, а тем более игровое, обучение должно, имхо, подразумевать, что чуть ли не после каждого абзаца текста человек должен суметь написать программу чуть более сложную чем мог 5 минут назад. А тут объяснение одних понятий потянет за собой объяснение других (области видимости, наследования и т. п.) и мало кто продерется через простыни текста даже с картинками.
                                                                                                                        • +1
                                                                                                                          Добавить захотелось: варианта в принципе два — или давать «магию», не объясняя её, или давать необходимый минимум, только чтобы работало, а по мере ввода новых понятий объявлять старые практики некошерными.
                                                                                                                          • +1
                                                                                                                            Второй способ — это издевательство над человеком. Это регулярный подлом веры в то, что изучили.
                                                                                                                            • –1
                                                                                                                              С одной стороны. А с другой, можно подать как профессиональный рост.
                                                                                                                              • +3
                                                                                                                                Не надо никак это подавать, это надо взять и выбросить в мусор! Ну поймите вы — из-за такого подхода у людей случаются проблемы в изучении матана (деление на нуль), в изучении вышки (i)… Ну зачем сперва создавать в мозгу абстракцию, а потом её рушить?
                                                                                                                                Или вы поддерживаете тему (не так давно в интернете натыкался) наименования результата задачи по наименованию первого множителя? (суть — задачки по математике младшей школы, даны 5 людей, которым надо выдать по два литра молока, вычисление «5*2 = 10 л.» было названо ошибочным, так как «тут мы умножаем 5 человек на 2, получается 10 человек, а надо 2 литра умножить на 5 и получим 10 литров»… когда много проще было бы 5 л/ч * 2 ч = 10 л и результат от перестановки множителей независим… но надо же до… упростить!)
                                                                                                                                • 0
                                                                                                                                  Я нахожу разумными ваши доводы, но и свои тоже. Боюсь, что однозначного решения нет и по хорошему надо ориентироваться индивидуально. Скажем, сейчас бы я предпочёл «совершенный» вариант, потому что и теоретические концепции типа private и static знакомы, и чем они на практике помогают давно узнал лично, но когда только начинал изучать программирование, то скорее без объяснений они бы меня раздражали (как раздражало когда-то #include <stdio.h>), а с объяснениями может вообще отказался бы от программирования.
                                                                                                                                  • 0
                                                                                                                                    А вам про #include <stdio.h> не объясняли, что «это подключение стандартной библиотеки, которое необходимо для примера, подробнее к инклудам вернёмся позже»?

                                                                                                                                    PS ну и любопытство может сподвигнуть к самостоятельному поиску что такое эти самые модификаторы, что тоже неплохо (а можно и ссылку дать на информацию для желающих узнать раньше). Тем, кому такой способ не подходит, увы и ах… программисты должны иметь некоторую усидчивость.
                                                                                                                                    • +1
                                                                                                                                      Примерно так и объясняли (в смысле в книге было написано), а потом изучив вопрос я понял, что это неправильное описание — этот include библиотеку не подключает, он, грубо говоря, лишь сообщает компиляторы сигнатуры функций, а о подключении нужно заботиться самому при линковке. И жутко бесило, что два раза надо подключать.
                                                                                                                      • +3
                                                                                                                        Ну вычитать до отрицательного значения нам точно не запрещали, про деление на ноль толково объяснили, что делим мы на самом деле не на ноль, а на очень близкое к нему число, а вот с отрицательными числами под корнем — да, особенности раздела математики.

                                                                                                                        А в учебном примере нельзя писать неправильно. Опускать какие-то объяснения или не нарушающие логику данные — можно. Неправильно — нельзя. public final static TEXT можно было указать, что «так (чаще всего) определяются константы в Java, подробно рассмотрим значения этой записи позже» и всё. Пока человек не дошёл до темы — для него это просто стандартная конструкция, когда узнал, что значат модификаторы — он и сам разберётся (а можно на примере этой надписи разобрать) что же такая конструкция значит.
                                                                                                                  • –1
                                                                                                                    И нехорошо использовать throws в main, так как в самой программе ловить исключение некому, выше в стеке вызовов только сама JVM.
                                                                                                                    • +3
                                                                                                                      В данном случае это оправдано. Программа не должна «работать несмотря ни на что», это не ынтырпрайз. Завершиться в случае возникновения непредусмотренной ошибки тут — вполне ожидаемое от неё поведение.
                                                                                                                      • 0
                                                                                                                        return 1; или как там в Java делается?
                                                                                                                        • +2
                                                                                                                          Т.е., будете перехватывать все исключения, чтобы самостоятельно убить JVM? А смысл? Более того, параллельно задавив дебаг вывод. Или зачем-то делая его каждый раз вручную.
                                                                                                                          • 0
                                                                                                                            Я про замену throws в main. Не более, но и не менее.
                                                                                                                          • 0
                                                                                                                            В Java придётся писать тогда и public static int main, чтобы вывод дать, но это расходится с основными практиками Java — если алгоритм не может выполниться в каком-то узле, то останавливаем алгоритм и выдаём в лог максимум информации о происшествии, throws в данном случае перевешивает такой вывод на систему, избавляя нас от излишков кода и приучивая обрабатывать ситуацию там, где идёт управление — алгоритмом в main управляет JVM.
                                                                                                                            • 0
                                                                                                                              Если бы я Java знал, то в этом топике бы не был :(
                                                                                                                              • 0
                                                                                                                                Ну подобные темы поднимались и на хабре неоднократно и вообще в интернетах много обсуждений моделей исключений. Впрочем надо ещё смотреть код, в отдельных случаях перенаправлять исключение наверх — категорически неправильно, либо надо при этом использовать блок finally (например, чтобы правильно закрыть открытые внешние ресурсы, ибо сами они закроются только с завершением данной jvm, что в больших и долго исполняющихся приложениях очень плохо).
                                                                                                                                • 0
                                                                                                                                  Я же не про исключения вообще (наконец-то в PHP ввели finally), а про исключения на первом уровне. Считаю, что плохой тон бросать их в среду исполнения. Ладно не поймать с нижележащих уровней (и тут действительно среда должна кричать как только можно), но явно бросать их «в никуда» с первого…