SICP is a “Why” book, one of the few timeless texts on the topic. It’s subsumed by studying any healthy functional programming language to a sufficient extent (idiomatic use of control operator libraries, not just syntax), but it’s more straightforward to start with reading the book.
Videos of the lectures that go with that book are also freely available online. I remember seeing two different versions.
Installing MIT Scheme might be an obstacle for someone new to computer programming. It might be easier to start by installing DrRacket and the SICP Collections.
Composing Programs might also be worth mentioning. It’s a Python-based textbook in the spirit of SICP and covers some of the same ground in a more approachable way, but perhaps in less depth.
SICP is a “Why” book, one of the few timeless texts on the topic. It’s subsumed by studying any healthy functional programming language to a sufficient extent (idiomatic use of control operator libraries, not just syntax), but it’s more straightforward to start with reading the book.
Videos of the lectures that go with that book are also freely available online. I remember seeing two different versions.
Installing MIT Scheme might be an obstacle for someone new to computer programming. It might be easier to start by installing DrRacket and the SICP Collections.
Composing Programs might also be worth mentioning. It’s a Python-based textbook in the spirit of SICP and covers some of the same ground in a more approachable way, but perhaps in less depth.