Structure and Interpretation of Computers
This is a good book which teaches you the basics of programming: data abstraction, recursion, evaluation and that kind of stuff
SICP uses the standarized Scheme programming language which is a simple programming language
x) (* x x)) ;; A simple function (define (fact x) ;; A simple recursive function (if (= x 1) 1 (* x (fact (- x 1)))))
This book is easy to understand provided you aren’t a complete brainlet and know the most basic high school maths.
You can read SICP here