One thing I already love about while True: learn() is that it gives you real world information along with the stuff that has been "gamified". You're learning through the game but also they provide real world info and resources for you to understand it further.
A lot of "programming" games don't really do that and sometimes it's hard to translate the game stuff into real world things - if you even can. Many programming games are fictional languages, but some teach real ones.
I suck at this for real.