Hi r/scheme, my little brother (11) is interested in programming. Since he doesn’t know what he wants to make yet, I feel like scheme could be a good first language to learn the basics, paired with “The Little Schemer”, a book I worked through when I was younger that I feel like he’d like and would teach him some solid CS foundations. Any input on this?
Scheme was my first general programming language and was a pleasure to learn CS concepts with, admittedly I was much older though.
Don’t want to hijack the thread, being a Scheme fan myself. But I second Smalltalk (Pharo or Squeak) as an alternative to consider in case Scheme is discarded for some reason. It shares many characteristics with Scheme/Racket, like a minimal, elegant syntax, user-friendly IDE and was also created for educational purposes.
Advantage of Scheme is that you usually get exposed to different programming paradigms, whereas Smalltalk is OOP. But basic functional concepts like lambda (blocks in Smalltalk parlance), map (collect:), filter (select:), fold (reduce:) etc. also play an important role in the language. In Scheme you apply functions to arguments, in Smalltalk you send messages to objects. Two beautiful, powerful approaches easy to learn.
One thing to consider is appropriate literature. For Racket there is also “Realm of Racket”, never read it, but could be worth a look, specially due to its focus on games. I started with SICP, best CS book I’ve ever read, but definitely not for that age. Regarding Smalltalk, no idea, I learned it by doing (daily job) and reading the docs, but for sure there are good books available, giving its age and early focus on education.