
Когда-то давным-давно я зарегистрировался на courser-е и даже подписался на некоторые курсы, успешно их профукал и отложил всё это в долгий ящик. А вспомнил я о таком замечательном сайте спустя полгода, когда мне пришло уведомление по почте. Я открыл актуальные курсы и обнаружил что уже сейчас идёт Принстонский курс по алгоритмам и структурам данных и решил посмотреть, как это всё работает.
И я вот уже четвёртую неделю как я прохожу курс по алгоритмам и структурам данных от Принстонского университета и хочу поделиться мыслями по этому поводу.
Зачем мне обучение? Я и так всё умею!
Можно, конечно, процитировать Ленина, но я для себя выделил 3 основных причины:
Во-первых, можно хорошо подразмять мозги. Бытовуха прикладного программирования делает ваш мозг менее гибким, а вот решение интересных задачек позволяет мозгу развиваться.
Кроме того, на курсере можно подтянуть технический английский. Ранее я смотрел лекции TEDx, но IT-шные темы мне ближе.
Ну, а в-третьих, это просто очень интересно.
Как всё устроено?
На coursera – реальные преподаватели. Кроме того, что курсы составляются опытными преподавателями крутого университета, так вот эти преподаватели ещё и тусят на форуме и отвечают на вопросы во время курса.
Лекции записаны на видео, есть субтитры. Обычно к концу лекции предлагается пройти мини-тест на 1 вопрос, ответы на него не засчитываются в общий зачёт.
Недели обучения ограничены по времениЕсли вы планируете отъезд или свадьбу или ещё что-то, что может прервать курс – лучше отложите курс на потом.
Курс разбит на недели, недели чётко ограничены по времени к концу каждой недели необходимо сдать зачёт – лабораторную работу или тесты. По курсу есть электронные методички – PDF файлы, ссылки на сайты университета...
Многое в сдаче заданий автоматизировано – тесты на знания, конечно же, автоматические. Лабораторные работы проверяются автоматически – прям как на ACM олимпиадах.
Сравнение с нашим университетом
После наших университетов (хоть матфак ЧНУ мне всегда нравился) начинаешь понимать, что лучше учиться по виртуальным курсам Принстона или Стенфорда, чем по реальным у нас. Кратко, что мне понравилось:
- Алгоритмы «прибиты к жизни». Вы не будете «по бумажкам» учить все 20 вариантов сортировок. Среди примеров – реальные задачи, которые встречаются на практике – соц.сети, базы данных, поисковики,...
- Строгость. Строгое тестирование. Современный подход - код ревью и юнит-тесты.
- Современный подход к программированию – для подачи результата необходимо загрузить взаимосвязанные классы, предоставляются библиотеки уже разработанные университетом. Это позволяет научиться работать в команде и использовать уже готовые классы и экосистему.
- Над каждой лабораторной работой надо подумать. В первой лабораторной работе была «изюминка» – необходимо было использовать два объекта union-find для разных задач, хотя нигде об этом не говорилось – надо было догадаться самому.
Сравнение с о спортивным программированием
От спортивного программирования данные курсы отделяет более практический подход и меньшая требовательность ко времени.
Ещё в школьное время, когда готовился к олимпиаде по программированию, меня тренировала Татьяна Петрова Караванова – один из самых крутых тренеров по алгоритмам и структурам данных, которых я встречал в своей жизни. Вот тогда, правда упор всё-таки был на спортивном программировании, а не на прикладном.
Учиться? Или не учиться?
В самостоятельном обучении есть один большой нюанс – это всё вы делаете по своему собственному желанию. Если отбросить небольшие организационные моменты, то можно сказать, что университет получает очень крутых и мотивированных студентов, а студент (хоть из самых Задрыпанцев) получает доступ к крутым курсам передовых университетов. И это прекрасно, я считаю. За этим будущее.
Комментарии
Любопытно. Почему то всегда предполагал что онлайн курсы, даже по алгоритмам сводятся примерно к такому: "умножьте 2*2. выведите ответ." И казалось прикладной пользы от этого ровно ноль. Лучше в момент того когда что-то нужно загуглить, и тебе точно все расскажут. Хотя это не работает, когда тебе нужно выполнять работу архитекта, а ты с натяжкой синьйор.
Я думаю, всё очень зависит от конкретных курсов. Самые жЫрные - англоязычные.
Хотя в чём-то ты прав, но, ИМХО, знание существования конкретного алгоритма (не обязательно всё держать в голове) или структуры данных позволяет тебе эффективно искать решение (ты уже знаешь, куда копать) либо что-то новенькое придумать в каком-то проекте. Ну и, кроме того, это весело и интересно (основная причина, почему я их прохожу)!
Кроме того, есть курсы не только по алгоритмам и структурам данных. Мне вот ещё интересно машинное обучение. Кстати, скоро начинается стэнфордский курс по машинному обучению на курсере
Хоча я погоджуюсь, враховуючи рівень викладачів, це майже даром...
Я зустрічав й цілком платні курси й ще дуже цікавий підхід - просто послухати та здати курс - безкоштовно, а якщо хочеш диплом - за гроші. Я бачив, так робить Стенфорд.
Я ще не до кінця зрозумів концепцію, але, здається, якщо хочеш диплом - там треба перед кожною здачею робіт відправляти фотку себе з розгорнутим паспортом.
Вчора, до речі, випадково наткнулась на такий сайт:https://geekbrains.ru
Вже і раніше його бачила. Вроді ж аналогічна штука... Але викладачі не ті)))
Adding comments is temporarily disabled for unregistered users.