An interesting semi-related follow up from the former Fog Creek VP of Eng (now at Khan Academy): <a href="http://bjk5.com/post/3340326040/in-any-language-you-want-khan-academy-interviews" rel="nofollow">http://bjk5.com/post/3340326040/in-any-language-you-want-kha...</a><p>Not understanding the underlying fundamentals when programming in high level languages can be really dangerous, but generally it's not. I kind of view the ongoing development of Compilers, VMs, JITs, etc. as being somewhat parallel to that of processors. At one point, optimizing with machine code was crucial to obtain performant code, but with crazy-ridiculous superscalar processors and all of the things that come with it, all you can really do is code C, compile with -O2, and then guess and check on optimizations. I wouldn't be surprised if this was the case in most high-level languages before long.<p>Don't get me wrong, I first read this in High School and this was the essay that made me love C, and made me want to try to get an internship at Fog Creek. I just think it's starting to show its age.