Well, you've said, sort of. It's very interesting, but if you are not introduced first to that process, it's a bit hard to understand. I figured out how some things worked, since I understand a bit of C (just the basics from university). I also understand ASM, I found it very funny when I had to program a microprocessor and the only differences are the instructions since it's a different architecture. My main problem is finding the values of the addresses of different data stored in the RAM :P
The only reason I want to learn C is to create an alternate intro (like ShinyQuagsire) and to load images into the game to represent my own interface for a PokéGear (I'm pretty sure someone had this project on his GitHub).
I'll be even happier if you can explain some things to me :P