The fundamentals of CS courses in my undergrad program were taught in Racket (with HTDP). At the time this seemed very impractical, because I already knew Java and just wanted to write useful apps.

But as I've progressed in my career, I've come to appreciate how it helped me develop a strong foundation for reasoning about programs and their underlying logic (in any language) that continues to serve me to this day.

If I was approaching this outside of a structured curriculum, it would be hard for me to justify this long-term intangible benefit relative to being able to move quickly to write something interesting and useful. And I think writing interesting and useful programs is the best way to motivate oneself to keep programming. So I can't strongly advocate for this approach. But I do think there are some worthwhile benefits.

When I read things like the second paragraph above, I start to wonder if maybe I am actually a terrible programmer because I only ever learned what you might generously call “applied computer science” aka only the languages commonly used in typical workplaces (Java, PHP, Ruby, JS) and none of the CS classics. Does anyone else without the so-called ‘academic’ languages foundation ever feel this way when you see people on HN always writing about Lisp and its peers?

No, I say you won't get too much by learning LISP. I was attracted to LISP-related topic by similar arguments; looking back now, I found those argument at least not true for me.

You WILL get very interesting ideas and concepts, it's fun, basically, that's it.

+ You won't solve problem faster than your colleges with solid competitive programming background;

+ you won't be able to optimize the code and cut 30% of your company's server cost,

+ you won't feel comfortable to read real-world complex project code,

+ you won't get some domain-specific knowledge to solve problems you previously can't solve.

+ .....

It won't make you a better problem solver; at least its impact is way smaller than pick up go/rust/cpp/java and carefully try implement challenge like: https://github.com/codecrafters-io/build-your-own-x