Ask HN: What's the Best Language for Learning Core Programming Concepts?
I'd say my most important revelation was discovering that there were underlying concepts I had to learn beyond practical concerns like "how do I do x in y language." These days, it seems to me like there's so many language options for beginners to choose from, and they might all lead you down different roads! e.g. Javascript will introduce you to closures, Haskell to far more advanced functional programming notions, and Java will send you down a pretty OOP heavy path. If you decide to pick up C you'll certainly learn about memory management, but if you stick to high level languages it might never cross your mind! You can write a fairly functional application today without even having a concept of memory addresses, concurrency, compilers, or even stacks and heaps...so much is abstracted away and taken care of for you. Sure, your app likely won't be optimized, but it will still work.
It seems like your choice of language can significantly influence the language spanning concepts you'll encounter. Granting that's the case (or maybe it isn't, let me know why not) what language do you think is best for exploring the conceptual trappings beneath all those functions, vars, and classes? All the substance beneath the sugar?