Насколько эффективен подход «усики знаний» к Comp. Sci?

15

Я читал это на Math SE. Основной вопрос:

Предположим, что кто-то хочет изучить что-то продвинутое; Один из способов сделать это - начать с основ и наращивать. Но «большая картина» может затеряться в этом процессе. Еще один метод (который я предпочитаю называть Recursive Wiki) - это взять бумагу и Google / Wiki термины, которые никто не понимает; Читай их. В них будут условия, которые являются новыми; Google / Wiki их, пока вы не достигнете "базового варианта" знания материала досконально. Работайте задом наперед, пока не разберетесь с документом. Повторите для других работ. Это позволит получить знания при сохранении мотивации. Но это может вызвать проблемы в основах.

Он основан на статье профессора Вакиля из Стэнфорда. Вот выдержка:

..... математика настолько богата и бесконечна, что ее невозможно систематически изучать, и если вы будете ждать освоения одной темы, прежде чем переходить к другой, вы никогда не получите ничего. Вместо этого у вас будут усики знаний, простирающиеся далеко от вашей зоны комфорта. Затем вы можете позже засыпать эти усики и расширить зону комфорта; это гораздо проще сделать, чем учиться «вперед». (Внимание: эта засыпка необходима .....

Общее мнение среди противников такого метода состояло в том, что для таких областей, как алгебраическая геометрия, в которых публикуются сотни статей за квартал, или для исследования теории струн, где, если вы попытаетесь создать математические основы, прежде чем коснуться теории струн, вы сможете 80 с болезнью Альцгеймера. Мой вопрос: это хорошая стратегия для изучения CompSci?

Поскольку Comp Sci является настолько междисциплинарным (и инженерам, как правило, необходимо знать и математику, и вычисления), достаточно ли такой рекурсивный способ обучения для академических исследований? Или традиционный режим слишком хорош для замены?

Например, мне нужно было знать о Translation Lookaside Buffer (TLB) с нулевым знанием операционных систем.

Мой рекурсивный путь (согласно википедии) был:

TLB> Кэш> (Назад) TLB> Таблица страниц> (Назад) TLB> Виртуальный адрес> (Назад) TLB> Перечитать. Выполнено

Я чувствую, что знаю, что такое TLB, и если я столкнусь с этим снова, я буду знать, что происходит. Я обманываю себя?

расследование
источник

Ответы:

8

Я не думаю, что вы обманываете себя обязательно, но вы должны быть осторожны, используя то, что вы узнали. В этом случае это относительно просто. Если вам нужно разработать свой код с учетом TLB-понимания, вы, вероятно, получили то, что вам нужно сейчас, и вы можете доказать это себе, написав программы. Тем не менее, если кто-то попросит вас спроектировать и внедрить TLB, вам может потребоваться провести дополнительное исследование.

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

Подход с усиками, безусловно, является хорошим методом для определенных видов обучения. Вы должны использовать его там, где это необходимо. Хорошая вещь о другом методе состоит в том, что вы узнаете много других вещей на этом пути, которые могут быть полезны в построении ваших идей и планов для решения проблем. Например, теперь вы знаете кое-что о TLB, но если вы не сталкивались и не учили себя о невременном доступе (скажем, случайный выбор примера), пока вы изучали TLB, вы, возможно, пропустили чрезвычайно важную часть знание об оптимизации систем памяти. Если бы вы начали с самого начала изучения систем памяти на чипах, вы, вероятно, столкнулись бы (хотя и поверхностно) с временным доступом, поэтому вы должны знать, что вам также следует помнить об этом.

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

Билл Барт
источник