why did you say CS fundamentals when it's clear that it should be computer architecture and instruction sets and compiler engineering, which are a very narrow and specific parts of CS and in fact are never the parts that people refer to (DS & algo) when they say CS fundamentals.
They're pretty closely tied together. If you have a strong background in algorithms you should be able to understand ISA's and compilers more easily. In the end its just algorithms all the way down