It is indeed an awesome tutorial. I'm new to coding in general, and this is one of the first tuts I've looked into, and I find it really good. I understand most things.
However I've got a question. How sensitive is the game loading time and the time initializing the game once started compared to the length of the code? For instance, how much difference would it do if you put the final three waves that you looped, and made them in a separate function which you then later call on in the waves? That way you'll only have to write them once and then have them called on. Or does the calling itself take more time and recourse than the actual code itself? (Not that I think it does, but asking never hurts. :P)
Your English has a few mistakes here and there, but it's fully understandable and readable. No worries! :D