Please keep in mind this is just for the sake of fun/learning.
I know I just hit the most sacred topic of all and will be punished for it in hell and stuff because it starts the resources vs time war. Ok before we proceed I need to give a little bit of background of myself. I'm a student that is freshly stumble into programming and loving it from java to c++ and down to c. As you could tell, I moved backward to the barebones and thought to go further down to assembly. But, to my surprise, a lot of people said its not as fast c and there is no use. They suggest to learn to either program a kernel or write a c compiler to which I thought could be fun. Nonetheless, the mystery remains... My dream is to learn to program in binary(machine code) or maybe program bare metal(program micro-controller physically) or write bios or boot loaders or something of that nature. I understand this might be dumb and crazy to most of the readers.... I'm always curious when I'm writing a simply program in c or use os to do things, why does everything looks magical even if I'm programming.. Like I never need to know anything about the hardware at all?
The only possible thing I heard after so many research is that hex editor is the most closest thing I could ever find in this age and era to machine language... Ok there are other things I'm unaware of to which google don't help.. Yet still, there are no guides nor there is a lot of resources if I want to learn to program in machine code?
This tread sounds similar to this: http://programmers.stackexchange.com/questions/110740/how-exactly-do-we-go-from-binary-hex-to-assembly-instruction-sets But the fact I want to "learn" then understand the theory...
Back to the question: is it possible to learn to code in machine code e.g. On a 8-bit microcontroller/microprocessor? And if so, where can I find relevant tutorials or information?