Почему человек не может удержать в памяти все детали большого проекта?

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

  • Присоединяюсь к команде программистов, у которых довольно большой (но не огромный) проект. Я пытаюсь понять, как это работает, как каждая часть системы взаимодействует друг с другом. Я хочу увидеть, как это работает в целом, чтобы я мог сказать, что я понимаю, что происходит: что идет первым, что идет потом, не вдаваясь в подробности. Я хочу иметь этот образ в голове и обсуждать проект, не углубляясь в код, схемы, описывающие проект, или любую дополнительную информацию. То, что не позволяет мне сделать это, — я не могу вспомнить системные компоненты, их приоритет выполнения, который может меняться, и их взаимодействие друг с другом.

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

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

Вопросы

  • Как называется эта проблема, когда человек не может удержать в памяти все детали большого проекта?
  • Это провал памяти?
  • Проблема в недостатке интеллекта?
  • Уменьшит ли проблему что-либо из следующего: шахматы, покер, решение математических задач, ноотропы?
звучит как «видеть лес за деревьями» или «гештальт» всего этого. Большая картина". Во всяком случае, это все термины, которые мы используем в обществе. Не уверен в термине формальной психологии. Я думаю, что ваш вопрос мог бы быть более кратким и включать начальное исследование, как только мы его найдем.
О каких временных рамках здесь идет речь? Как давно вы в этом проекте? Если это большой и сложный проект, который создавался в течение нескольких месяцев или даже лет, я был бы удивлен, если бы кто-нибудь смог вспомнить все это за несколько дней или недель. Просто делайте заметки: нарисуйте структуру, запишите ключевые элементы и их функции и т. д. То есть создайте собственное руководство для этого проекта. Со временем вы вспомните все части, над которыми регулярно работаете.
@what Спасибо, я делаю схемы и рисую структуры, но я хочу оперировать всем этим в памяти и делать это быстро. Я, конечно, понимаю, что за несколько дней этого не достичь, но все же я хочу сократить этот срок, улучшить способность запоминать детали, предсказывать, какой эффект будет иметь изменение одного компонента и т. д.
Насколько хорошо код закомментирован? Если бы создатели не нашли время, чтобы поставить короткую заметку рядом с функциями, когда они были созданы, то сейчас самое время это сделать. Это послужит как способом ознакомиться с каждой функцией, так и дать полезные подсказки, когда ваша память действительно подводит вас. Если возможно, возьмите код с собой домой, домашние задания не заканчиваются сразу после окончания школы. Я думаю, что одна из проблем, с которыми вы сталкиваетесь, заключается просто в разнице в знакомстве. Другие члены команды, вероятно, были вместе с самого начала программы или, по крайней мере,

Ответы (3)

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

Эксперты против новичков

Было продемонстрировано, что структуры знаний у экспертов отличаются от структур знаний у новичков. В частности, знания экспертов гораздо более структурированы, и они способны сразу связывать понятия, которые новички не в состоянии увидеть. (У меня есть статьи, которые я могу процитировать, если хотите, но я просто пытаюсь направить вас на правильный путь).

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

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

Кратковременная рабочая память

Как упоминалось в предыдущем ответе, кратковременная память может хранить 5-9 дискретных «фрагментов» информации. Используя термины программирования, a chunkможет быть либо структурой, представляющей фактические данные, хранящиеся в рабочей памяти, либо указателем на место в долговременной памяти, где хранится концепция. Это помогает объяснить, почему эксперты могут работать намного быстрее, чем новички, потому что их рабочая память может использоваться гораздо эффективнее.

Люди полагаются на рабочую память, чтобы учиться. По мере того, как вы учитесь, новая информация включается в вашу существующую ментальную модель (это называется конструктивизмом). Это активный процесс, требующий повторной обработки информации в рабочей памяти перед ее сохранением в LTM.

Подразумеваемое

Приведенное выше исследование предполагает, что вам нужно разбирать систему по частям. Узнайте, что делает каждая часть, с помощью серии практических занятий episodes, а затем переходите к следующей части. Затем вернитесь и перезапустите этот процесс. По мере того как вы будете это делать, вы обнаружите, что все больше и больше знакомитесь с этой сложной системой.

Гораздо лучшее описание, чем мое, для краткосрочной памяти. Спасибо за Ваш ответ.
Спасибо! Обучение — сложный процесс, малопонятный, поэтому любая мелочь, при правильном использовании, должна помочь :)
rmayer06, спасибо за отличный ответ. Некоторые вопросы. 1. Не могу найти нормального перевода слова «практическая исследовательская деятельность», не могли бы вы пояснить, что вы имеете в виду? 2. >их [экспертов] рабочую память можно использовать гораздо эффективнее. Используются более эффективно — из-за того, что их «знания гораздо более структурированы»? Т.е. потому что у них больше опыта?
1. Практическое обучение с точки зрения предоставления учащимся очень структурированной проблемы/сценария и просьбы к ним ответить на конкретные вопросы (например, в лаборатории), некоторые называют это обучением, основанным на проблеме (см. статьи Hmelo-Silver). 2. Структуры знаний организованы более эффективно, и устанавливается больше связей с соответствующими понятиями, что облегчает запоминание.

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

Многие большие и сложные проекты по программированию представляют собой беспорядок. Их сложно понять и поддерживать/навигировать/отлаживать. Инженер Apple однажды пошутил:

«Если вы были настолько умны, насколько могли быть, когда писали программу, а отлаживать что-то в два раза сложнее, чем писать, то как вы собираетесь ее отлаживать?»

Крупные проекты возникли не за один день, а могут быть результатом «эволюции» в течение нескольких месяцев или лет. Таким образом, простые базовые компоненты обременены исключениями, особыми вариантами использования, подклассами, несколькими режимами работы и прецедентами, как вы сказали.

Кроме того, программисты вообще редко пишут полезную, понятную, актуальную документацию больших сложных систем (в конце концов на это уже не остается сил).

Оригинальному разработчику легче ориентироваться в таком проекте, не держа в памяти все детали, потому что программист знает, что искать. Имя класса, переменной экземпляра или метода приведет создателя к нужной точке проекта. Но как «новичок» вы не можете позволить себе роскошь помнить многие «ориентиры» внутри проекта. Поэтому вам требуется больше времени, чтобы найти решение или понять, что происходит.

Проблема, которую вы описываете, связана с кратковременной памятью . Психологам и нейробиологам хорошо известно, что большинство людей могут удерживать в кратковременной памяти 7 +/- 2 числа или слова. Для программиста я бы описал кратковременную память и процесс «припоминания», как процесс, аналогичный поиску в древовидной структуре.

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

Я полагаю, вы имеете в виду 5-9 дискретных «фрагментов» — они не обязательно должны быть числами или словами. Вот почему эксперты учатся эффективнее, чем новички (см. мой ответ ниже).
Вы правы, что-то вроде «Дискретные элементы/фрагменты», наверное, то слово, которое я искал.