13.04.2012

Стэнфордские онлайн-курсы: а что у нас?

Недавно почти всех моих знакомых захлестнуло легкое такое безумие в связи с открытием онлайновых курсов в редакции преподавателей Стэнфордского университета. Я тоже поддался этому и зарегистрировался на восемь курсов, что понятно и ожидаемо, если вы знаете, что такое Стэнфорд. Он так или иначе фигурирует почти во всех достижениях ИТ, которые влияют на тот мир, в котором я живу. Потому огромным усилием воли я ограничил себя в записи только восемью курсами. В тот момент я представлял, что у меня вряд ли получится выделить время на все, но расчет был на то, что по факту разберемся. Так и получилось...

Начало курсов по разным причинам затягивалось, и так вышло, что начало четырех из них более-менее совпало. Вот тут я и вспомнил студенческие времена, и попытки выучить все за несколько дней. Одно могу сказать точно - в двадцать лет учиться было существенно проще. И самое тяжелое - это выделять на учебу время так, чтобы это не вредило всему остальному. По факту оказалось, что мне легче всего было жертвовать сном. И полностью прошел я только один курс по SaaS, за что даже получил pdf с сертификатом и подписями преподавателей. Мелочь, а приятно. Особенно если ни на что такое не рассчитывал.
В процессе всплыла одна тонкость. Курс оказался не стенфордским, а из Беркли, что, в общем, тоже очень даже ничего так. А другой курс по Model Thinking, который я еще не прошел, читает профессор из Мичигана. Так что изначальная инициатива Стэнфорда зацепила всех остальных, и стала от этого только лучше.

Но я хотел написать не об этом. После прохождения этого курса я понимаю, почему выходцы из американских университетов так любят стартапы создавать. В онлайн-курсах преподавалась та же программа, что и реальным студентам, в том же формате и с теми же требованиями. И вот тут мне очень тяжело не сравнивать с отечественными вузами.
Чтобы глубоко не закапываться в философию, я на примере SaaS курса покажу, как воспринимается студент в американском университете.
Вначале подача общей теории (что такое "софт как сервис", какие есть варианты архитектур), потом сразу же переключение в конкретную практическую реализацию Ruby on Rails фреймворка, а потом сразу же задание на добавление функционала в базовое веб-приложение. Это при том, что язык я не знаю. Основы Ruby и Rails даются на лекциях, а особенности можно найти в документации при поиске способов решении конкретного задания.
Для того, чтобы студент не напрягался, ему для скачивания предлагается готовая среда для разработки и тестирования, в виде образа виртуальной машины. Которую хоть и можно запустить локально у себя на компьютере, но предпочтительный вариант - Amazon EC2. Так что у студента есть возможность практически вникать в облачную инфраструктуру, а не только в теории. Для того чтобы получить исходный код веб-приложения для выполнения домашнего задания - надо забрать его с github, чтобы студент сразу приучался пользоваться системами совместной разработки и контроля версий.
Проверка домашних заданий - отдельная тема, учитывая то, что на курс зарегистрировалось почти 60000 человек. Так они сделали автоматизированную систему проверки домашних заданий, куда ты просто отправляешь свои файлики с кодом, по котрым прогоняется серия тестов и выставляет тебе за это баллы. Просто, но со вкусом. Приучает студента писать код  пользуясь заданными гайдлайнами, а не создавая  свой неудобоваримый стиль. В случае, если надо проверить не код, а само веб приложение, то тоже не проблема - нужен только адрес. Рекомендуют это делать на Heroku, что, к слову, тоже облачная платформа. И разворачивание последней версии с окружения разработчика в продуктив - всего несколько команд в консоли, чтобы студент не напрягался тем, что не касается темы.
А потом начинается то, ради чего этот курс создавался, как я понимаю. Ведь цель его - научить писать неглючный софт. А неглючный - это хорошо оттестированный. И студента учат писать/использовать пользовательские истории, чтобы софт изначально был для заказчика, а не для программиста. А потом заставляют еще и тесты писать раньше кода, потому как разработка через тестирование - это правильно и полезно.
В результате пяти недель студент не станет хорошим програмистом, но написать веб-приложение и разместить его где-то в облаке уже не воспринимается как проблема. А иногда для начала стартапа всего то и надо, что убедительный прототип. А еще у студента отложиться где-то там глубоко информация о том, как вести разработку, с контролем версий, тестами, пользовательскими историями...

Вот я это все пишу и вспоминаю,  чему и как учили нас в университете. Я понимаю, что с тех пор все очень сильно поменялось... Но все же: какой украинский вуз может предложить что-то похожее по уровню?



Комментариев нет: