You think you had it rough, at 15 I taught myself C/C++ Win32 programming with COM and early DirectX versions from textbooks and online tutorials. I'm thankful now though, as most modern frameworks are a breeze to learn by comparison. Looking back it was a bit like learning to swim by jumping in the deep end of the pool. It certainly gave me the confidence that I can figure stuff out, even in a new domain. And it's given me some valuable lessons in what makes a good vs bad API design.