With love from Stepik: освітня платформа Hyperskill

Я хочу поговорити з вами про те, чому ми частіше робимо сантехніку, ніж пишемо про неї дисертації, про різні підходи до навчання програмування та про те, як ми намагаємося застосувати один з них у нашому новому продукті Hyperskill.

Якщо вам не до душі довгі вступи, переходьте відразу до параграфу про програмування. Але так буде менш весело.

With love from Stepik: освітня платформа Hyperskill

Ліричний відступ

Давайте уявімо якусь панночку Машу. Сьогодні Маша збиралася помити собі фруктів і спокійно подивитися фільм, але незадача: несподівано вона виявила, забилася раковина на кухні. Що з цим робити — поки що незрозуміло. Можна відкласти це питання на невизначений термін, але вільний час зараз, тому Маша вирішує розібратися з проблемою відразу ж. Здоровий глузд підказує дві опції: а) викликати сантехніка б) впоратися самостійно. Панночка вибирає другий варіант і приймається вивчати інструкції на ютубі. За порадою користувача Vasya_the_plumber Маша заглядає під раковину і бачить там пластикову трубу, що зміяється, з декількох деталей. Дівчина обережно відкручує одну деталь біля основи раковини і нічого не знаходить. Шматок труби нижче виявляється намертво забитий невідомою субстанцією, і навіть виявлена ​​на столі вилка не справляється із засміченням. Експерти з інтернету дають невтішні прогнози: деталь доведеться міняти. На карті Маша знаходить найближчий магазин, бере з собою злощасний шматок труби і купує такий самий, тільки новий. За порадою продавця Маша прихоплює і нове ситечко для профілактики. Квест завершений: раковина знову працює як треба, а його головна героїня тим часом дізналася наступне:

  • Труби під раковиною можна самостійно розкрутити та закрутити;
  • Найближчий магазин сантехніки за півтора кілометра від Машиної квартири.

Швидше за все, Маша навіть і не помітила, скільки нового дізналася і чому навчилися, бо її хвилював власний комфорт у майбутньому, а заразом кіноперегляд і помите яблучко. Наступного разу, коли виникне схожа проблема, дівчина вирішить її у рази швидше. Насправді, Маша не просто повертала світ у звичний стан; вона вчилася індуктивно, тобто на окремих випадках, і практикоорієнтованотобто роблячи речі, а не вивчаючи їх докладно і заздалегідь.

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

То який із підходів краще підійде? У випадку з раковиною та засміченням — перший, і ось з яких причин:

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

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

Програмування: вчитися чи робити?

Ми звикли думати, що щоб розвинутись і стати експертом у незнайомій галузі, насамперед потрібно вступити до університету чи хоча б записатися на курси. Ми справно слухаємо те, що розповідають, виконуємо завдання. Коли ж на руках виявляється заповітний диплом чи сертифікат, миттєво губимося, бо так і не зрозуміли, навіщо нам стільки інформації та як саме її застосовувати. У цьому немає проблем, якщо далі в планах писати наукові роботи та їздити з ними на конференції. В іншому випадку варто прагнути і навичок, тобто робити і знову робити конкретні речі, пробувати і помилятися, щоб надовго запам'ятати, як краще не чинити.

Одна із сфер, де «набита рука» чи «око-алмаз» йдуть поруч із широтою кругозору — програмування. Якщо ви поспілкуєтеся з досвідченими розробниками, то почуєте браві історії, в яких людина з юних років займалася математикою/фізикою/викладанням, а потім утомилася і перейшла в бекенд. Знайдуться і програмісти без вищої освіти! Насамперед у розробнику цінують не сертифікат, не диплом, а кількість та якість написаних програм, скриптів та сайтів.

«Але зачекайте!», заперечіть ви,» Гарно звучить – бери та роби! Я не можу запросто написати собі програму, якщо раніше не програмував(а)! Мені важливо розуміти, де писати, як у принципі розмовляти мовою програмування з компілятором. Це не телефон сантехніка у гугле знайти.».

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

Hyperskill: ми будували, будували і нарешті збудували

Ми довго думали над цією проблемою. Про те, як довго ми думали, красномовно свідчить дата останнього посту у нашому блозі. Після всіх суперечок та спроб інтегрувати новий підхід на Stepik у нас вийшов інший сайт. Можливо, ви вже чули про нього як про частину JetBrains Academy. Ми назвали його Hyperskill, вбудували туди project-based learning, прив'язали до нього базу знань з Java та заручилися підтримкою команди EduTools. А тепер докладніше.

With love from Stepik: освітня платформа Hyperskill

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

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

With love from Stepik: освітня платформа Hyperskill

Карта знань. На ній видно, які теми ви вже вивчили і як вони пов'язані одна з одною. Відкрийте будь-який симпатичний топік. Можете пробігтися по ньому очима, але радимо виконати і маленькі завдання, щоб переконатися, що інформація вклалася в голові. Спочатку платформа вам підкине тести, після них пару завдань на програмування. Якщо код компілюється і проходить тести, то порівняйте його зразком рішення (reference solution), іноді це допомагає дізнатися більш оптимальний спосіб реалізації. Або ж переконатися, що ваше рішення і таке прекрасне.

Нічого зайвого. Ми чекаємо і на "зелених" користувачів і досвідчених розробників. Якщо ви вже писали програми, не біда, ми не змусимо вас знову складати 2+2 або перевертати рядок. Щоб одразу потрапити на потрібний рівень, під час реєстрації вкажіть, з чим ви вже знайомі, і вибирайте проект складніше. Не бійтеся переоцінити себе: якщо що, завжди можна повернутися до забутої теми в карті знань.

With love from Stepik: освітня платформа Hyperskill

Інструменти. Це чудово — писати невеликі шматочки коду у спеціальне віконце на сайті, але справжнє програмування починається з роботи в середовищі розробки (Iінтегрований DРОЗВИТОК Enviroment). Досвідчені програмісти знають як як писати код, а й як конструювати графічний інтерфейс, збирати різні файли у проект, користуватися додатковими інструментами розробки, і частина цих процесів IDE бере він. Чому б не навчитися і цим скілам, поки ви освоюєте програмування? Тут приходить на допомогу JetBrains і спеціальна версія IntelliJ IDEA Community Educational із встановленим плагіном EduTools. У такій IDE можна проходити навчальні курси, перевіряти вирішені завдання та підглядати у підказки щодо проекту, якщо ви щось забули. Не переживайте, якщо вперше чуєте слово "плагін" або "IDE": ми розповімо, що це таке і як його встановити на комп'ютер або ноутбук із мінімальними стражданнями. Розбирайтеся з теорією, а потім переходьте в IDE та завершуйте чергову стадію проекту прямо там.

Дедлайн. Їх немає! Хто ми такі, щоб стукати по голові та вказувати, у якому темпі вам писати програму. Коли вам подобається писати код і хочеться доробити його до кінця, ви дописуєте його сьогодні чи завтра. Займайтеся розробкою на своє задоволення.

Помилки. Всі їх припускають, допустіть і ви на одному з етапів проекту, і тоді цей етап не пройде автоматичних тестів. Що ж, доведеться самотужки розібратися, що пішло не так. Ми могли б сказати, де криється помилка, але хіба це навчить вас уважно писати код? Читайте підказки від IDEA або теоретичний топік про Bugs, і коли програма нарешті запрацює, приплив дофаміну, швидше за все, не змусить себе чекати.

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

Можливість зростання. Припустимо, ви дивитесь на Hyperskill і не бачите там якоїсь важливої ​​теми чи корисного проекту. Повідомте нам про це! Якщо ваш бекграунд ширший і багатший на карти знань, то напишіть нам у форму Сприяти. Наша команда поділиться з вами власними tips&tricks, тому будемо раді допомогти вам перетворити ваші знання на корисний контент, зрозумілий користувачам різного віку та рівня. Можливо, ми заплатимо, але це не точно.

Ласкаво просимо: hi.hyperskill.org Заходьте, дивіться, пробуйте, пропонуйте, хвалить і лайте. Ми теж вчимося вчити вас.

Джерело: habr.com

Додати коментар або відгук