With love from Stepik: образовательная платформа Hyperskill

    Я хочу поговорить с вами о том, почему мы чаще чиним сантехнику, чем пишем про неё диссертации, о разных подходах к обучению программированию и о том, как мы пробуем применить один из них в нашем новом продукте Hyperskill.

    Если вам не по душе длинные вступления, то переходите сразу к параграфу про программирование. Но так будет менее весело.



    Лирическое отступление


    Давайте представим некую барышню Машу. Сегодня Маша собиралась помыть себе фруктов и спокойно посмотреть фильм, но вот незадача: неожиданно она обнаружила, забилась раковина на кухне. Что с этим делать — пока непонятно. Можно отложить этот вопрос на неопределённый срок, но свободное время есть сейчас, поэтому Маша решает разобраться с проблемой сразу же. Здравый смысл подсказывает две опции: а) вызвать сантехника б) справиться самостоятельно. Барышня выбирает второй вариант и принимается изучать инструкции на ютубе. По совету пользователя Vasya_the_plumber Маша заглядывает под раковину и видит там змеящуюся пластиковую трубу из нескольких деталей. Девушка осторожно откручивает одну деталь у основания раковины и ничего не находит. Кусочек трубы пониже оказывается намертво забит неизвестной субстанцией, и даже найденная на столе вилка не справляется с засором. Эксперты из интернета дают неутешительные прогнозы: деталь придётся менять. На карте Маша находит ближайший магазин, берёт с собой злополучный кусок трубы и покупает такой же, только новый. По совету продавца Маша прихватывает и новое ситечко, для профилактики. Квест завершён: раковина снова работает как нужно, а его главная героиня, тем временем, узнала следующее:

    • Трубы под раковиной можно самостоятельно раскрутить и закрутить;
    • Ближайший магазин сантехники в полутора километрах от Машиной квартиры.

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

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

    Так какой же из подходов лучше подойдёт? В случае с раковиной и засором — первый, и вот по каким причинам:

    1. Если важна только работающая раковина, значит достаточно знать только то, что касается именно этой сферы. Когда Маша поймёт, что знаний не хватает, она обязательно найдёт способ узнать больше.
    2. Энциклопедическая подкованность может не включиться в реальной ситуации, потому что не отработана привычка. Для того, чтобы научиться последовательности действий, есть смысл не прочитать о них, а выполнить.

    Давайте уже оставим в покое бедную Машу и перейдём к процессу обучения как таковому.

    Программирование: учиться или делать?


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

    Одна из сфер, где «набитая рука» или «глаз-алмаз» идут рядом с широтой кругозора — программирование. Если вы пообщаетесь с опытными разработчиками, то услышите бравые истории, в которых человек с юных лет занимался математикой/физикой/преподаванием, а потом устал и перешёл в бэкэнд. Найдутся и программисты без высшего образования! В первую очередь в разработчике ценят не сертификат, не диплом, а количество и качество написанных программ, скриптов и сайтов.

    «Но подождите!», возразите вы, " Красиво звучит — бери и делай! Я не могу запросто написать себе программу, если до этого не программировал(а)! Мне важно понимать, где писать, как в принципе разговаривать на языке программирования с компилятором. Это не телефон сантехника в гугле найти.".

    Горькая правда есть и в этом. Один незнакомый аспект тянет за собой другой, тот, в свою очередь, — третий, и скоро этот процесс превращается в шоу фокусника, который продолжает вытягивать связанные платочки и никак не достанет их из цилиндра. Процесс, честно скажу, неприятный, на 5-м «платочке» уже кажется, что глубина невежества близка к Марианской впадине. Альтернатива этому — те же лекции о 10 видах переменных, 3 видах циклов и 150 потенциально полезных библиотеках. Печально.

    Hyperskill: мы строили, строили и наконец построили


    Мы долго думали над этой проблемой. О том, как долго мы думали, красноречиво говорит дата последнего поста в нашем блоге. После всех споров и попыток интегрировать новый подход на Stepik у нас получился… другой сайт. Возможно, вы уже слышали о нём как о части JetBrains Academy. Мы назвали его Hyperskill, встроили туда project-based learning, привязали к нему базу знаний по Java и заручились поддержкой команды EduTools. А теперь подробнее.

    image

    Конкретная цель. Мы предлагаем “меню” из проектов (projects), т.е. программ, которые вы можете с нашей помощью написать. Среди них — крестики-нолики, персональный ассистент, блокчейн, поисковик и т.д. Проекты состоят из 5-6 стадий (stages); результат каждой из стадий — готовая программа. “Зачем тогда остальные стадии, если на первой уже получилось всё?” Спасибо за вопрос. С каждым шагом программа становится функциональнее или быстрее. Поначалу код занимает 10 строчек, под конец может не умещаться и в 500.

    Немного теории. Невозможно сесть и, не зная ни слова о программировании, написать даже Hello World. Поэтому на каждом этапе проекта вы видите, какие теоретические азы вам предстоит освоить и, главное, где их взять. Азы расположились тоже на Hyperskill в разделе “Карта знаний” (Knowledge Map). Если для первой стадии проекта учащиеся не обязаны читать данные из файла, пусть и не умеют дальше. Выучат потом сами, для общего развития, или понадобится на следующем этапе.

    image

    Карта знаний. На ней видно, какие темы вы уже изучили и как они связаны друг с другом. Откройте любой симпатичный топик. Можете пробежаться по нему глазами, но рекомендуем выполнить и небольшие задачки, чтобы убедиться, что информация уложилась в голове. Вначале платформа вам подкинет тесты, после них — пару задач на программирование. Если код компилируется и проходит тесты, то сравните его с образцом решения (reference solution), иногда это помогает узнать более оптимальный способ реализации. Или же убедиться, что ваше решение и так прекрасно.

    Ничего лишнего. Мы ждём и “зелёных” пользователей и бывалых разработчиков. Если вы уже писали программы, не беда, мы не заставим вас снова складывать 2+2 или переворачивать строчку. Чтобы сразу попасть на нужный уровень, при регистрации укажите, с чем вы уже знакомы, и выбирайте проект посложнее. Не бойтесь себя переоценить: если что, всегда можно вернуться к забытой теме в карте знаний.



    Инструменты. Это здорово — писать небольшие кусочки кода в специальное окошко на сайте, но настоящее программирование начинается с работы в среде разработки (Integrated Development Enviroment). Опытные программисты знают не только как писать код, но и как конструировать графический интерфейс, собирать разные файлы в проект, пользоваться дополнительными инструментами разработки, и часть этих процессов IDE берёт на себя. Почему бы не научиться и этим скиллам, пока вы осваиваете программирование? Тут приходит на помощь JetBrains и специальная версия IntelliJ IDEA Community Educational с предустановленным плагином EduTools. В такой IDE можно проходить учебные курсы, проверять решенные задачки и подсматривать в подсказки по проекту, если вы что-то забыли. Не переживайте, если впервые слышите слово “плагин” или “IDE”: мы расскажем, что это такое и как его установить на компьютер или ноутбук с минимальными страданиями. Разбирайтесь с теорией, а затем переходите в IDE и завершайте очередную стадию проекта прямо там.

    Дедлайны. Их нет! Кто мы такие, чтобы стучать по голове и указывать, в каком темпе вам писать программу. Когда вам нравится писать код и хочется доделать его до конца, вы дописываете его, сегодня или завтра. Занимайтесь разработкой в своё удовольствие.

    Ошибки. Все их допускают, допустите и вы на одном из этапов проекта, и тогда этот этап не пройдёт автоматические тесты. Что ж, придётся самостоятельно разобраться, что пошло не так. Мы могли бы сказать, где кроется ошибка, но разве это научит вас писать код внимательно? Читайте подсказки от IDEA или теоретический топик про Bugs, и, когда программа наконец заработает, прилив дофамина, скорее всего, не заставит себя ждать.

    Наглядный результат. Итак, вы дописали первый проект, что дальше? Пользуйтесь плодами трудов! Сыграйте с друзьями в крестики-нолики, заодно похвастаетесь успехами. Загрузите проект на GitHub, чтобы показать будущему работодателю, напишите описание самостоятельно, укажите там те знания, которые применяли. 4-5 сложных проектов, и вот, скромное портфолио для начинающего разработчика готово.

    Возможность для роста. Предположим, вы смотрите на Hyperskill и не видите там какой-то важной темы или полезного проекта. Сообщите нам об этом! Если ваш бэкграунд шире и богаче карты знаний, то напишите нам в форму Contribute. Наша команда поделится с вами собственными tips&tricks, так что будем рады помочь вам преобразовать ваши знания в полезный контент, понятный пользователям разного возраста и уровня. Может быть, мы даже заплатим, но это не точно.

    Добро пожаловать: https://hi.hyperskill.org/ Заходите, смотрите, пробуйте, предлагайте, хвалите и ругайте. Мы тоже учимся вас учить.
    Stepik.org
    Открытые бесплатные курсы на технические темы
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 43

      0
      При регистрации через аккаунт JB ошибка:

      Error 404
      image
      image


      UPD: с третьей попытки получилось
        +2
        Другие языки не предполагаются?
          +2
          Сейчас добавляем Kotlin и Python, а дальше — как пойдёт. Но, конечно, хочется :)
            0
            А какие сроки по Python?
              0
              В этом месяце новым контентом по Python вас обязательно порадуем. Уже сейчас выложили около 10 теоретических топиков, заходите пробовать!
                0
                А какие проекты планируете для Python и Kotlin? Аналогичные Java? Или будет какая-то специфика типа веб-программирования или приложений для Android?
                  0
                  Проекты уровня easy будут похожи во всех языках программирования. А вот чем дальше в лес, тем больше в специфику. Сейчас работаем над проектом на Java под Android, пока он хорошенький получается :)
              0
              Scala есть в планах? В насколько отдаленных, если есть?
                0
                В ближайших планах пока нет
                0
                На самом деле, было бы круто, если бы добавили ассэмблер и С/С++.
                Это низы низов, которые очень тяжко освоить на простых учебных заданиях некоторым людям, и подобные решения, ИМХО, очень сильно помогут разобраться в основах железоуправления =)
                Понимаю, что это не целевая ваша аудитория, и кол-во таких студентов (желающих потренироваться) будет стремиться к нулю на фоне «легких» Java и Python, но из этих единиц могут получиться шикарные специалисты на все руки =)
                  0
                  Согласна, приблизить пользователей к «железу» — идея хорошая. Будем работать! Но ничего пока обещать не могу :)
              0
              Опробовал первый урок на сайте. Методика чем-то напоминает курсы с основного сайта. По моему мнению, Stepik и Hyperskill дополняют друг друга, а не исключают.
                +1
                Да, конечно, структура похожа: немного теории, тестовые вопросы, задачки на код. Такой принцип мы стараемся соблюдать на обеих платформах. Просто в нашей задумке человек, который учится на Hyperskill, попадает в такой топик уже после того, как выбрал себе проект и читает теорию, чтобы этот проект завершить.

                Дополнять один сайт другим всегда можно! Тем более, что некоторым больше нравится видео посмотреть, а кто-то предпочитает читать
                0
                Можно ли вести несколько проектов одновременно?
                  0
                  Вы можете переключаться между проектами, ваш прогресс не потеряется. Однако основной проект с точки зрения платформы всё же один
                    0
                    ваш прогресс не потеряется
                    Но это не точно)
                    После одного из обновлений, потерялся код реализованных стадий:
                    Stages completed: 2 / 6,
                    Шаги Work on project. Stage 1/6 и Stage 2/6 помечены зелёным, но внутри стандартный шаблон из семи строчек.
                    ¯\_(ツ)_/¯
                      0
                      Это у нас баг случился :/ К сожалению, пока мы в режиме Early Access, такое будет происходить время от времени
                  +1
                  А как указать свой уровень, если логинишься через что-то, а не регистрируешься? Диалог со скриншота не показывался
                    0
                    Хм, это загадочно, я только что залогинилась через Google аккаунт и попала на страницу Onboarding. Мы передали команде разработки, что страница с выбором уровня не у всех появляется.

                    Скажите, а вы с помощью какого аккаунта залогинились?
                  0
                  А что ждёт сам Степик в будущем? Планируете его развивать? Или все силы бросите на новый проект?

                  p.s. Сама идея Hyperskill понравилась. На Степике хорошие курсы, но практика мала и примитивна, поэтому полученные знания применить для решения реальных задач сложно.
                    +1
                    Спасибо за отзыв!

                    Мы не бросим Stepik :) Он был и остаётся отличной платформой для открытых (да и закрытых) онлайн-курсов по разным темам, от высшей математики до иностранных языков. К тому же, многие курсы на Стэпике доступны и тем, кто не знает английский, и это тоже важно.

                    Hyperskill сейчас фокусируется на программировании, но при этом потенциально охватит более широкую аудиторию из разных стран. По крайней мере, нам хочется в это верить!
                      0
                      Планируете ли вы в дальнейшем версию сайта на русском языке (возможность переключаться между языками)?
                        +1
                        Сейчас не планируем
                          0
                          А в принципе вас интересует российский рынок? При введении подписки как-то будете учитывать платежёспособность региона пользователя?
                            0
                            Вчера у них как раз вывесили планы на подписку:
                            JetBrains Academy will remain in the Early Access Program (EAP) with free access until July 1, 2020.

                            If you register on the platform before July 1, 2020

                            You will continue to receive free access to all JetBrains Academy learning activities and resources until January 1, 2021.
                            You will get a 50% discount off a regular price of $49.90/month for the following 12 months after the free period ends, and will need to pay only $24.90/month for your subscription.
                              0
                              Да, я видел, потому и спрашиваю. Там ещё приписочка:
                              Prices in USD are given for reference only. Pricing will be available in other currencies starting July 1, 2020.

                                0
                                Будем надеяться. Хотя правда там не написано, что будут прайсы для других стран, только про другие валюты речь идет. Посмотрим в общем.
                                  0
                                  Прайсы для других регионов не выкатили, но сделали заметку, что они могут отличаться. Будем надеяться, что все же сделают более щадящую цену для нашего региона )
                      +2
                      Dreadasha, очень хорошо что на Hyperskill материал подается в текстовом виде,
                      а не как сейчас модно в виде видеозаписей.
                      Так-же огромный плюс, в том что много практики.
                        0
                        Спасибо! Мы ориентировались в том числе и на просьбы пользователей.

                        К слову, текстовый материал могут читать и люди, у которых медленный интернет. Они тоже имеют право учиться программировать!
                        0

                        Dreadasha, в связи с недавним сотрудничеством JetBrains и Anaconda (ссылка) планируется ли в разделах по python обучение по направлению data analis, data science, machine learning, deep learning и соответствующим python библиотекам и фреймворкам ?

                          0
                          Мы хотели бы привести Python к data science, но не в связи с сотрудничеством, а потому что нам кажется это важным
                            +1
                            Я рад, что для разработчиков платформы это важно ) Ждем с нетерпением, удачи в работе и спасибо за быстрый ответ )
                              0
                              Жду с нетерпением Big data!
                                0
                                Да, мы тоже очень хотим добавить! Но всё в своё время
                            0
                            В этот ваш Map я влюбился сразу — для ностальгических воспоминаний самое то! Сижу второй день, вспоминаю, приятное с полезным вполне себе сочетается.
                            Порадовали разделы devtools и essentials.
                            Что касается стрелок, мап не всегда помещается на экране и связи отслеживать проблематично.
                              0
                              Вы нас порадовали, большое спасибо :)

                              Оптимизацией knowledge map мы как раз сейчас занимаемся. Надеюсь, новая версия, которая появится через 2-3 недели, будет лучше помещаться!
                              0
                              Срочно требую мобильную версию. Всегда хотел выучить язык для написания своего Infinitode
                                0
                                Из всех курсов что проходил, ни разу не видел удобную мобильную версию
                                0
                                az1muth
                                Мобильную версию сайта или проект для разработки под Android? :)

                                Над первым работаем, но по мере сил, десктопная версия сайта сейчас в приоритете.
                                Проект под Android тоже делаем, но точных сроков я вам не скажу, чтобы ложных обещаний не давать
                                  +1
                                  Получается довольно продуктивно — сначала попробовать язык на Stepik, а потом, если зашло, то тренироваться на Hyperskill. Плюсую к важности текстовой подачи материала. буду ждать Python :)
                                    0
                                    Dreadasha, а планируется ли расширение «Dev tools»-контента каким-нибудь YAML, CI/CD, devops-фишками вроде Докера, k8s, Ansible,…
                                    ?

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

                                    Самое читаемое