With the hindsight of plenty of time in the field, I find it remarkable how many fundamental concepts you still need to learn that they do not teach in current CS programs. In my area of work, massively parallel algorithms and distributed systems, the core theory, never mind practice, still has to be learned outside of school and the initial barriers are not trivial. (Small-scale parallelism and distribution is based on functional programming concepts and mutability. Large-scale parallelism and distribution is based on topology and Nash flows. Very different conceptual models.)
Totally OT, but
I don't suppose you have a reference to some introductory material on that (seminal paper, textbook, etc would be fine)? I've been getting massively more interested in distributed systems & reliability thereof.