I recently spent a week watching and working through a MIT course from the 1985 called Structure and Interpretation of Computer Programs. You may have heard of it. SICP is a course that teaches a Lisp dialect called Scheme. Why on Earth would I want to go on a 30 year old course in a language nobody uses? First of all, there’s plenty of reasons to suppose that Lisp has a very good future, but also the important thing about SICP is not what it teaches you about a language, but how it makes you think about programs.