Немного странный вопрос. Известно, что самый лучший способ учить программирование - это чтение теории с дальнейшей практикой в виде написания кода. Таким методом изучаемый материал запоминается на ура. Но как же тогда подойти к запоминанию чисто теоретического материала, который "пощупать ручками" не получится? Например, изучение компьютерных сетей, или архитектуры компьютера. Можно просто прочитать книги по ним, тот же самый Таненбаум. Дело в том, что информация при таком раскладе быстро забывается. Как же быть в таком случае?
Подниму интересную тему. Когнитивная способность к непростому запоминанию информации, а к запоминанию её на длительный промежуток времени, развиваема только путём тренировок либо необычным (для человека) методом запоминания информации. Тренировки-учение стихов (или других форм литературных произведений) как классическая тренировка памяти. Также можно подключить другие цели-это запоминание номеров домов на дороге домой/на работу и ещё какие-то вариации. Необычные методы запоминания информации-это сегментарное разделение массива данных на определенные куски, запоминание их-потом объединение в более большие объёмы. Это подразумевает под собой любой нестандартный поведенческий паттерн в изучении области знаний.
Только практика, со временем запоминаются ф-и и тп. Заучить, не равно понимать, развивай понимание как устроенны программы, и тебе не нужно будет запоминать все ф-и языка программирования, всегда можно нагуглить, так же легче переходить на другие яп, изучив предварительно синтаксис, а вот если не развиваешь мышление программиста(понимание устройства программ), то тут не поможет запоминание.
Когда-то давно я хотел выучить PHP и 2 года тянул кота за яйца а потом я купил принтер, распечатал листов 10-12 с нужными мне функциями, базовыми, повесил на стене и очень быстро так запомнил. Ну и есесно нужно много практики, я прям каждую функцию пробовал вплоть до самых элементарных. И еще важно никуда не спешить, я изучал от корки до корки начиная с установки пхп, его конфигурации, вариации версий. Тогда еще пхп 4 было и входило пхп5, изучал в чем их раница.
Summarize concepts in your own words and test yourself regularly (active recall). Use spaced repetition and apply ideas through tools or scenarios when possible.
Теория плохо усваивается не из-за отсутствия практики, а из-за отрыва от реальных задач. Даже "сухие" темы вроде архитектуры компьютера становятся живыми, если запускать эмуляторы CPU или исследовать работу кэшей в отладчике. При изучении сетей можно поднять свой сервер, играться с iptables и анализировать трафик в Wireshark. Не надо просто читать Таненбаума — надо с ним работать, как с интерактивным руководством.