https://mitpress.mit.edu/sites/default/files/sicp/full-text/...
https://mitpress.mit.edu/sites/default/files/sicp/full-text/...
SICP is a fun way for a mathematically-strong person to learn a huge swath of computer science through experimentation and thinking about the results.
You have to not just _do_ the exercises but _understand the results_. It's not an easy on ramp.
You would be better off working through the Racket Guide [1] or one of the tutorials on their web site.
You can still learn those other languages, too. Learning enough about Racket to have some fun doesn't take that long.
The book hasn't aged all that well. But maybe that's just me. See https://www.cs.kent.ac.uk/people/staff/dat/miranda/wadler87.... for a more reasoned opinion.
The basics of computing are hard enough to learn when you aren't focused on type theory, lazy vs eager evaluation, etc at the same time.
See when that text was published. The author would probably argue for a slightly more modern language these days.
Racket's default #lang isn't even compatible with SICP -- for example its cons cells aren't mutable. (Though it's perfectly fine to use Racket tooling with SICP or other Scheme books -- just set #lang scheme instead of #lang racket).
https://blog.racket-lang.org/2007/11/getting-rid-of-set-car-...
If you want to learn programming with Racket as the language How to Design Programs is great: https://htdp.org/
Or if you want an online course How to Code 1 & 2 are exceptional: https://learning.edx.org/course/course-v1:UBCx+HtC1x+2T2017/...
I second this. Greg Kiczales is an awesome teacher (and award winning computer scientist).
We've had one lesson. So far the format of me skimming SICP and giving him little challenges til he gets the content is working out.
As an adult sure it's great. Just do it. It's more scheme than racket though, but that's plenty.
Racket macros are important too and you won't get that from SICP.
One does not (ever?) finish learning racket. Even its creators are still researching it.