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

(define (square 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