4 ms·
Well, what you need to know as a developer of either is pretty limited. Understanding the basic existence of the following will get you a long way: cache hierar
by lazaroclapp 10y ago
Well, what you need to know as a developer of either is pretty limited. Understanding the basic existence of the following will get you a long way: cache hierarchy, branch prediction, instruction reordering, syscalls, interrupts, virtual memory and page mapping, the layers of the networking stack, etc. You might need to go in depth about a particular CPU/OS later during your working life, but most likely not, just know enough to have a semi-realistic picture of the layers below your own code. Those are all things that can be self-taught to some level, specially if you have the discipline to write some experimental code to test them in your system. For most developers, however, those are things that are easier to learn in a classroom than on your own time.
(Some of the theoretical parts are even more suitable for college and equally useful: complexity/computability theory, lambda calculus, graph theory, autómata theory, ML, etc)