I taught myself C++ programming high school and was building an x86 operating system kernel during my sophomore year for fun (going to a midwestern public school really was boring for me, I can tell you that), but 16 year old me still would have found this article very challenging to digest.