Как стать автором
Обновить

Комментарии 11

Авторы многих известных книг, например, таких как Совершенный код, Чистый код и проч. ссылаются на исследования, согласно которым человеческие возможности весьма ограничены. Часто приводятся сведения о "магической" цифре 7, как предельному числу объектов, которые человек еще может держать в голове. Следствием этого являются рекомендации и даже регламенты, например, предельному количеству аргументов функции (!) или количеству непосредственных подчиненных одного начальника. Макконнелл в Совершенном коде выводит "Главный технический императив разработки - управление сложностью" исходя из того же принципа - ограниченности человеческого ресурса.
Хороший код от кода "с душком" тем и отличается, что минимизирует уровень сложности, необходимый для его понимания и сопровождения. Ту же цель преследуют подходы, например, предметно ориентированное проектирование (DDD), принципы, парадигмы, например, функциональная (ФП).

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

"Код, который умещается в голове" от Марка Симана тоже можно порекомендовать. Одна из тем, к слову, тоже пресловутое число 7. В целом книга понравилась.

Хорошая статья-напоминание, для тех кто знает об этом. Правда тут старую истину заново переоткрывают, изменив немного форму. Как говориться, то же блюдо, но под другим соусом.

Считаю, что если бы вы каждый день минут по 40 решали задачи математические (разные, уравнения, примеры, задачи, геометрические, стереометрических и т.д.) - вы бы увидели такой же эффект. Даже лучше. Математика серьезно расширяет вашу оперативку, т.к. надо держать в голове промежуточные вычисления.

И что удобно, вы сами контролируете объем того, что надо держать в голове. Например, вначале вы решаете, разбивая все на отдельные действия. Минимальные кирпичики это сложение и вычитание, ну, ещё таблицу умножения тоже можно назвать минимальными кирпичиками. Затем, когда научились это быстро делать, вы усложняете. Берете примеры из 2, 3, 4, 5 значных цифр. И решаете, в уме раскладывая все на простые операции. Далее, вы ещё усложняете, и решаете уже целыми цепочками действий в уме. Например, делите трёхзначные число на двухзначное , получившееся число умножаете на трёхзначные, потом опять делите, потом возводить в степень и т.д. Все в уме.

Чем дальше вы продвигается по математике, тем там выше уровень абстракции. А ваш мозг все быстрее и эффективнее запоминает цифры, символы, условия и быстрее обрабатывает задачи. Главное - много регулярной практики.

У нас преподаватель в университете мог формулу, что мы минут 5 раскладывали на бумажке по отдельным действиям, разложить в уме почти мгновенно.

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

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

Верно, шахматы тоже отлично помогают с этим

Согласен с комментарием, но я мне кажется еще логичней тренировать не математику, а именно навык программирования, так как для автора именно он является основным.
Потратить это время на решение задач по программированию требующих большого объема "оперативной памяти" ИМХО будет максимально эффективной тренировкой.

Можно пойти дальше и сказать: просто больше работай - чем не тренировка) Дело тут в другом (не пытаюсь поставить под вопрос эффективность и полезность dual-n-back): работа не волк, а изучать новое и неистово самосовершенствоваться пресуще человеку как виду, подкрепляется дофамином и позволяет отвлечься от обыденности. В какой именно сфере - дело вкуса. Мне вот ближе иностранные языки и столярка. А щёлкать литкод итак судьба и эго заставят перед сменой работы.

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

Я вот совсем новичок в программировании, и мне пока ещё сложно увязать логику в нечто цельное даже в относительно небольших программах. Я пробовал брать чужие программы и изучать их. Вроде все понятно сначала, а потом бац, и понимаешь что нить потеряна. Перечитываешь ещё раз, идёшь чуть дальше и опять. А потом ещё и ещё))

Зато, если брать и изучать по кусочку, паттерны там и т.п. И потом практиковать их в большом количестве, самостоятельно, то становиться немного легче читать чужой код, да и самому писать что-то проще. Причем бывает такое, что один паттерн я могу дня 2-3 ковырять, минут по 40-80 в день, изучая теорию и исследуя возможные вариации его использования. Но это ещё даже не практика. Просто изучаешь. Практика, это когда ты этот паттерн раз 10-20 реализуешь в разных условиях.

Но это я, новичок. Насколько это полезно опытному? У опытного, скорее всего уже просто физическое ограничение, а не недосформировавшиеся нейронные связи. А вот физическое ограничение лучше сдвигать маленькими шажками. И математика в этой роли хороша. В частности, вычисления в уме. Или шахматы. Возможно, ещё и пасьянс.

Ещё слышал, что помогает навык составления блок-схем. Именно навык, типа читаешь код, и накидываешь на бумаге схематично работу, как будто конспект делаешь. Я когда учился, лет 16 назад, нам педагог по алгоритмам говорил, что без блок-схемы даже не садитесь кодить. И что это не просто ее желание, а необходимость. Что нужен навык, и благодаря ему появится такое мышление. Что со временем, даже просто читая чужой код, в голове будет выстраиваться нечто, типа логической схемы. Но тут я хз, я тогда был молод и глуп, не понимал многого. И такое мышление не развил. И насколько мне известно, сейчас большинство программистов так не делают, считая это двойной и бесполезной работой. Разве что, пользуются схемами от аналитиков, например. Или даже сами накидывают, но верхнеуровево. В общем, тут пусть более опытные спецы высказываются

Заниматься математическими упражнениями более продуктивно, чем упражнениями dual-n-back, потому что так мы будем тренировать и математику, и рабочую память. Безусловно это логичный и подтвержденный опытом вывод.
К сожалению, не нашел в сети с помощью быстрого гугления научных работ, посвященных методике развития рабочей памяти с помощью математики. Разве что можно упомянуть так называемую ментальную арифметику, позволяющую делать скоростные вычисления в уме.
Скорее всего, развивать рабочую память математическими упражнениями дольше, чем упражнениями dual-n-back. Но какими упражнениями? По какой методике?
В этой работе https://www.tandfonline.com/doi/abs/10.1080/01443410500341056 говорится о том, что тренировки рабочей памяти приводят к росту математических способностей.
Но, по моему скромному и непрофессиональному мнению, на малой дистанции примерно в полтора месяца можно резко повысить уровень с помощью dual-n-back, а затем поддерживать уровень математическими упражнениями. Но опять же, по какой методике?
Вообще можно из этих раздумий вывести темы для нескольких научных исследований)

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

Модно объяснить концепцию памяти человека через аналогию памяти компьютера.

Постоянная память - это память это жесткие диски

Кратковременная - это оперативная память

Рабочая или краткосрочная память - это регистры, которыми оперирует непосредственно процессор.

Данная игра яркий пример увеличения емкости кошелька Миллера. Он у нас в равен 7 плюс/минус 2 значения. Т.е. мы именно столько элементов последовательности мы можем удержать в голове здесь и сейчас без группировки значений.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории