3 ms·
There are a LOT of programmers who don't understand how the fundamentals are implemented, though. I'm not saying you need to use C (or machine language) for eve
by silentbicycle 16y ago
There are a LOT of programmers who don't understand how the fundamentals are implemented, though. I'm not saying you need to use C (or machine language) for everything, but having an idea how the whole stack fits together will show which operations are inherently more expensive, error prone, etc.
Two books I'd recommend: _Write Great Code vol. 1: Understanding the Machine_ by Randall Hyde, and _The Elements of Computing Systems_ by Nisan & Schocken (http://www.idc.ac.il/tecs/ http://www.idc.ac.il/tecs/). WGC1 is about things typically learned about the machine while learning assembly (but leaves assembly itself for later). TECS guides you through building a (virtual) computer, starting with simulated NAND gates and building up. (Admittedly, I just got that one and I'm only a few chapters in, but excellent so far.)
I think every developer would benefit from knowing at least one low-level language (such as C), and one very high level language (such as Prolog).
- happy4crazy 16y agoI'm also a few chapters into The Elements of Computing Systems, and I also think it's excellent so far :) I'm posting my project solutions to my github account, fwiw: http://github.com/happy4crazy/elements_of_computing_systems http://github.com/happy4crazy/elements_of_computing_systems