>>929I can't really give you concrete resources, I studied most of these at university in my native language. But I'm sure it's not hard to find good books for everything, if you are in trouble you can always look up university courses, they often publicly list the textbooks they use, using those is a good start.
The topics I would cover:
- digital circuits
- coding theory
- embedded systems (FPGAs, Verilog/VHDL, etc.)
- embedded programming (RISC assembly, embedded operating systems, etc.)
- computer architecture (CPUs, memory, HDDs, periphery connections)
- operating systems
- networking
I think this would cover most of the "complete understanding of computers." Of course you don't have to go very deep into each, you could spend a lifetime studying any of these, just understand the general principles and main ideas.
For the programming part I could give something similar for the practical parts but I'm not that familiar with the actual theory behind it.