I really want to be a programmer. But I am more interested in operating systems(I always get goosebumps thinking about coding an operating system), programming languages, compilers, emulation, AI, embedded systems, assembly, parsing, hardware, etc. Where do you even begin for that stuff?. (Those programmers seem like magicians). I could read a book for learning a programming language and I have. But after that, it seems like there is a wall that separates between being able to code simple programs (typical beginners book exercise) and being able to code something that helps people, something that makes you proud. If you could me help on what to do I would be extremely grateful.