3 ms·
I think you could take the authors' example and use it to argue the other way. They say that, in this case, the important thing for a programmer to know is whic
by mannykannot 8y ago
I think you could take the authors' example and use it to argue the other way. They say that, in this case, the important thing for a programmer to know is which of two patterns of memory access is faster, not why it is so, and, up to a point, this is reasonable. If, however, you try to do a complete education along these lines, you will end up with thousands of rules to memorize, with little rhyme or reason, and all of them having a bunch of corner cases where they don't apply and priority rules about which takes precedence. In my experience, understanding why things are the way they are is the key to remembering how they are, and in recognizing which issues are relevant to a particular case.
This reminds me of an article I read recently about science's replication crisis: if you don't have a theory, it said, any outcome is plausible [1].
Of course, it would be difficult to understand hardware and OS design if you had no idea what they were used for, but I do not think that is an actual problem in current CS curricula.
[1] https://arstechnica.com/science/2019/02/the-replication-crisis-may-also-be-a-theory-crisis/ https://arstechnica.com/science/2019/02/the-replication-cris...