Решительно невозможно подготовить полноценного программиста в рамках чисто императивной парадигмы. Нет, я знаю, что формальные модели эквивалентны и всё такое. Но информатика есть раздел математики, а некоторые математические идеи императивно записываются на редкость коряво.
Начинающий программист вынужден приучиться мыслить алгоритмами вместо моделей. Алгоритмы! тьфу. По-настоящему грамотная модель не нуждается в каком-то там алгоритме. По-настоящему грамотная модель сама себе и алгоритм, и реализация, и родная мама.
===
Читаю знаменитую книгу Абельсона и Сасмана "Структура и интерпретация компьютерных программ". Считается классическим учебником по программизму; по этой книге учат первокуров в Массачусетсе.
Впечатления смешанные. Вроде бы - да, методически всё выверено и красиво.
Но, во-первых, всё это я уже знаю, что снижает субъективную ценность.
Во-вторых, всё это выглядит очень оторванным от жизни: сами построили песочницу, сами насыпали песка, сами в нём играем.
В-третьих, раздражает сюсюканье: "А теперь, дружок, мы научимся колдовать. Да-да, колдовать! Ведь лямбда-исчисление - это настоящая магия". Абельсон и Сасман, - да будет аллах с ними обоими, - выглядят какими-то усиленно молодящимися рыхлыми паяцами. Зачем? зачем настоящему специалисту этот нелепый обморок?
Я, наверное, чего-то не понимаю.
Вот
книга в русском переводе.
А вот
видеолекции.