Understanding Lower Levels of Computers
I'd suggest starting an Apple II emulator, grabbing one of the fine books on 6502 and Apple II programming available on PDF and learn what happens after your C compiler translates your code into what the lower levels of your computer actually run.
You could also play with a TRS-80 or MSX emulator, but I find the Z-80 a bit too complicated. If you are going to the lowest levels, the simpler, the better.
C has its value, but knowing how the bare metal behaves is useful too.