Почему программирование такое сложное

Начала читать книгу «Ум программиста». Мне показалось интересным объяснение, почему читать и понимать код – это сложно.

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

Мы видим строчку кода Integer n. При этом из долговременной памяти извлекается информация, что Integer обозначает целое число, а также знания о целых числах. В кратковременную память записывается информация, что n – целое число. Дальше в коде с n происходят какие-то вычисления. Чтобы их понять, используется рабочая память.

Во время программирования возникают сложности с каждым из видов памяти:

🔺Недостаток знаний в долговременной памяти. Например, нет достаточных знаний языка программирования, используемых в коде алгоритмов, английского языка (для понимания названий переменных и функций, комментариев).

🔺Недостаток информации в кратковременной памяти. При чтении кода информация из уже прочитанных строчек (имена и значения переменных и констант, методы и все остальное, что нужно для понимания программы) хранится в кратковременной памяти. Но емкость этого вида памяти ограничена. Поэтому мы можем не суметь одновременно помнить все, что нужно для успешного понимания кода.

🔺Недостаток вычислительной мощности мозга. Читая код, мы пытаемся мысленно его выполнить. Этот процесс происходит в рабочей памяти. Здесь можно столкнуться с тем, что логика кода слишком сложная, чтобы наш мозг мог ее понять.

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