newsmode
search
Меню
arrow_back Назад

You Don't Really Need Another MOOC

auto_awesomeКраткое саммари

Автор статьи Eugene Yan утверждает, что после одного-двух онлайн-курсов (MOOC) отдача от дальнейшего прохождения резко снижается в соответствии с принципом Парето. Просмотр видеолекций — это пассивное потребление, а не настоящее обучение; к тому же новые курсы нередко становятся формой прокрастинации или самосаботажа. Вместо этого автор предлагает сойти с «проторённого пути» и учиться через реальные проекты с грязными данными, ошибками CUDA и бесконечным гуглингом. Ключевая идея — just-in-time learning: достаточно знать ровно столько, чтобы начать, а остальное осваивать по мере необходимости. К обучению стоит применять принцип YAGNI — не изучать то, что вы не собираетесь использовать прямо сейчас. Практические проекты формируют навыки, которые невозможно получить ни в одном MOOC: умение формулировать задачу, отлаживать код, адаптироваться и доводить дело до конца.

Вам на самом деле не нужен ещё один MOOC

[ learning ] · 9 мин. чтения

Не поймите меня неправильно, я люблю MOOC. Они отлично подходят, чтобы освоить новый язык программирования (например, Python, Scala), фреймворк (например, Spark, TensorFlow) или предмет (например, статистику, машинное обучение). Структурированная среда обучения, отличные преподаватели и упражнения (с решениями) ведут нас оптимальным путём к освоению новых концепций.

Но в большинстве случаев это нам не нужно. Если вы уже знаете машинное обучение, прохождение очередного модного MOOC не поможет применять его эффективнее. Ещё один туториал по Python не поможет писать код лучше. Большинство MOOC следуют принципу Парето и дают студентам те 20%, которые обеспечивают 80% результата. Поэтому после первого-второго курса прирост знаний резко замедляется. (См. также мнение Susan о убывающей отдаче.)

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

«Я не могу начать создавать это, пока не закончу специализацию на MOOC.» «Моё резюме не рассматривают, потому что у меня нет сертификатов по Spark и PyTorch.» «Я недостаточно изучил deep learning, поэтому завалю собеседование.»

Просмотр видеолекций — это не обучение, а пассивное потребление. Иногда нам кажется, что прохождение MOOC или чтение технической книги от корки до корки равноценно освоению материала. Но как часто мы потом буксуем, пытаясь применить знания на работе? Дети не учатся кататься на велосипеде по обучающим видео. Точно так же нельзя научиться программировать или применять технические знания, только смотря ролики.

Сойдите с проторённого пути

Большинство хороших MOOC или туториалов предлагают практические задания. Однако эта практика лежит на проторённом пути (happy path). Можно скопировать код — и он заработает. Это логично: материала много, и тратить время на отладку, подготовку данных или решение проблем методом проб и ошибок нецелесообразно. Иначе студенты потеряют терпение и процент завершения курсов упадёт.

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

Именно уход с проторённого пути продвигает наше обучение за пределы класса. Это особенно справедливо для data science и машинного обучения, потому что:

Реальные данные грязные и неструктурированные, тогда как большинство MOOC и YouTube-курсов начинают с чистых, подготовленных данных. Большинство необходимых навыков — технические. Поэтому практика написания кода (читай: отладки) необходима для их освоения. Экспериментирование — основа нашей области. Нужно пробовать разные подходы, терпеть неудачи и учиться за рамками того, что реально преподать в MOOC или онлайн-туториале.

«Я слышу — и забываю. Я вижу — и запоминаю. Я делаю — и понимаю.» — Конфуций

Мы сходим с проторённого пути, делая реальные проекты — с грязными данными, ошибками CUDA и всем прочим. Через проекты мы учимся формулировать задачи, применять алгоритмы неправильно (а потом правильно), гуглить сообщения об ошибках и итерировать, пока не заработает. Мы развиваем находчивость, упорство и умение учиться. Именно эти уроки ведут нас к мастерству.

Но я знаю недостаточно, чтобы начать личный проект!

Обучение точно в срок (just-in-time)

Достаточно знать ровно столько, чтобы начать; остальное вы освоите по ходу дела. Не нужно разбираться в генераторах Python, чтобы написать свою первую программу на Python. Не нужно знать Spark, чтобы обработать 2 миллиона строк данных. Не нужно знать TensorFlow, чтобы обучить свою первую модель машинного обучения.

Просто начните, и пусть трудности подсказывают, что учить дальше. Так вы сразу применяете полученные знания. Это закрепляет обучение, улучшает запоминание и повышает удовлетворённость. По аналогии с производством точно в срок, учите только то, что нужно для продвижения проекта. Технические навыки скоропортящиеся — если не применять полученные знания, они угаснут.

Применяйте YAGNI к обучению. Как в разработке не нужно добавлять функциональность, пока она не потребовалась, так и в обучении не нужно проходить каждый новый MOOC или читать каждый новый учебник. Нет смысла перегружать себя информацией и знаниями, которые вы не будете использовать.

Как стать экспертом в чём-то:1) итеративно берись за конкретные проекты и доводи их до конца вглубь, обучаясь «по запросу» (то есть не учи снизу вверх вширь)2) объясняй/пересказывай всё, что узнал, своими словами3) сравнивай себя только с собой вчерашним, никогда — с другими— Andrej Karpathy (@karpathy) 7 ноября 2020

Хочу уточнить: я не призываю прекращать изучать новое. Я говорю, что стоит склоняться к более фокусированному подходу.

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

Но, но… у меня есть причины для _____

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

«У меня очень мало времени, и на личный проект его нет. MOOC самодостаточны и требуют всего 2–4 часа в неделю.»

Да, MOOC отлично окупают вложенное время, когда нужно разобраться в теме. Но после определённого порога знаний вам понадобится практика, чтобы продвинуться дальше. Насколько мне известно, проекты — лучший способ для этого.

«Я пробовал делать личный проект раньше. Но столкнулся с кучей ошибок и постоянно гуглил — думаю, я ещё не готов и мне нужно пройти больше MOOC.»

Ошибки и поиск решений в интернете — это абсолютно нормально! Даже преподаватели, создавшие эти MOOC, делают то же самое. Именно так мы и учимся — пробуя, ошибаясь и преодолевая трудности.

«Личные проекты слишком сложные. Проходить MOOC проще.»

Именно поэтому вам и нужно делать личный проект. Та сложность, которую вы ощущаете, — это кривая обучения. Без неё обучения не происходит.

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

«Прохождение MOOC или магистратуры даёт мне сертификат, который украшает резюме.»

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

«Рекрутер сказал, что меня будут проверять на технические навыки и знания. Значит, мне нужно пройти ещё больше технических MOOC.»

В определённой степени MOOC и видео на YouTube полезны — особенно для вопросов, проверяющих ваши знания (читай: память), или задач, требующих знания трюка (например, задачи в стиле leetcode).

Однако на большинстве собеседований вам, скорее всего, дадут более размытые задачи: спроектировать data pipeline, нарисовать на доске API для машинного обучения или написать базовый k-nearest neighbors или decision tree. Такие задания оценивают вашу способность проектировать и разрабатывать поддерживаемые системы, продумывать крайние случаи и адаптироваться по ходу обратной связи. Практический опыт из проектов будет куда полезнее на таких собеседованиях.

«Какой личный проект мне делать?»

Начните с того, что вам интересно. Если тема не вызывает внутреннего отклика, вам будет трудно довести проект до конца.

Выберите что-то, что можно завершить за выходные в течение 12 недель, а в идеале — за 6–8 недель. Если дольше, задача не будет казаться достаточно срочной (и вы потеряете темп).

«Я знаком с веб-скрейпингом / Ruby / Excel — может ли мой личный проект быть про это?»

Конечно. Просто начните откуда-нибудь и развивайте проект по ходу дела.

Тем не менее, если вы делаете личный проект ради обучения, возможно, стоит намеренно выбрать что-то новое и незнакомое. А если ваша цель — портфолио (и трудоустройство), изучите требования вакансий и убедитесь, что проект их покрывает.

«Но я не могу придумать ни одного интересного личного проекта!»

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

Это также хорошая проверка вашего интереса к дисциплине. Если вы не можете придумать проект, который вас увлекает, действительно ли вы хотите связать с этим карьеру? (И ответ вполне может быть «да» — по таким причинам, как зарплата, престиж и т. д.)

«Помимо личных проектов, что ещё порекомендуете?»

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

• • •

В 2021 году вместо прохождения очередного MOOC или просмотра ещё одного плейлиста по машинному обучению на YouTube лучше учитесь на практике.

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

Обучение рождается из практики. Не из просмотра видео и не из чтения учебников. Начинайте делать прямо сейчас.

Думаю, нам стоит проходить меньше MOOC:• В большинстве случаев они нам не нужны• Просмотр видео MOOC — это не обучение• MOOC становятся поводом для прокрастинации или, что ещё хуже, самосаботажомВместо этого сойдите с проторённого пути и учитесь точно в срок 👇https://t.co/w8qAd639HM— Eugene Yan (@eugeneyan) 26 января 2021

Благодарности: спасибо Yang Xinyi за вычитку черновиков.

Если этот материал оказался полезным, пожалуйста, цитируйте его так:

Yan, Ziyou. (Jan 2021). You Don't Really Need Another MOOC. eugeneyan.com. https://eugeneyan.com/writing/you-dont-need-another-mooc/.

или

@article{yan2021mooc, title = {You Don't Really Need Another MOOC}, author = {Yan, Ziyou}, journal = {eugeneyan.com}, year = {2021}, month = {Jan}, url = {https://eugeneyan.com/writing/you-dont-need-another-mooc/} }



Присоединяйтесь к 11 800+ читателям, получающим обновления о машинном обучении, RecSys, LLM и инженерии.