1. Спасибо за подробный развернутый ответ. Оставлю тут то, что зацепило сильнее остального. M>Ну и касательно уровня абстракций. А кто сказал, что идти нужно снизу вверх? Почему программирование начинается с языков а не с квантовой механики? Программирование же просто несколькими уровнями выше в этой цепочке. И почему в той же школе (и еще раньше, в детстве) начинают с самых верхних (а не нижних!) уровней? Ну там "огонь — бо-бо" а не термодинамика+химия+биология (а там и электрические сигналы, и химия, и нейросети). Может быть, стоит начинать с удобного (и достаточно практичного) уровня? Ну пусть он будет местами неточным. Но зато результат будет раньше и не будет издевательства над мозгом невинных студентов.
M>P.S. Не нашел, куда вставить. Пусть будет здесь. Уровни "действия" у функциональщины более сбалансированы. "Цель" формулируется сознанием, действие (набор команды) выполняется подсознательно (там нет "последовательности действий, в норме это скорее механическая трансляция разных map/fold/filter/etc...)), проверка высокоуровневого ожидания (результат выполнния)- сознанием, проверка правильности моторики (набор map а не fold) — подсознанием. Все на своем месте. У императивщины детализация (которой в таком виде нет у функциональщины) идет на границе сознания/подсознания а весь результат обрабатывается сознанием.
2. У меня только одно возражение по поводу всего изложенного — личный опыт.
Когда я в 18 почти лет увидел первый раз компьютер — я абсолютно ничего не знал про все написанное вами.
Но писать в кодах для Минска-22 не составило никакого труда. Абсолютно никакого. Это же — чистая императивщина!
И никакого ломания мозгов и всей психологиии.
И у моих одногруппников — тоже.
О функциональщине я узнал много позже — когда уже стал читать серьезные книжки по программированию — курсе на 4-м.
А когда попробовал — мозги пришлось серьезно перестраивать.
Почему так?
Это же явно противоречит всему, что вами тут написано.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!