This was quite interesting read. I have been going to school for software design, and I have noticed something about myself. My past self is a jerk.
So to combat this past self, I comment excessively. I know myself to have a very low balking point, and we humans hate to think. If you can ease some of that for your future self by explaining something and prevent you from balking and fixing your bad code, do that.
Remember to NOT HARD-CODE things. For maintainability, that is a nightmare and I will guarantee your future self will hate to hunt for some variables, testing an idea is fine, but love of god fix it or mark it clearly for your future self. Thousands of variables will happen, and that is why we have garbage collecting in our programming languages.
Also, OOP (Object oriented programming) exists for a reason. Repeating yourself is one of the worst things that you can do to your project, especially when you're looking through hundreds or thousands of lines of code. Break it up to pieces, document well, name stuff clearly.
Learning OOP principles is good for the long run, and DO NOT REPEAT YOURSELF. Write a function or a class, and then call that class or invoke that function. It saves a lot of time and nerves when something goes wrong. Comment things, don't trust your dumb brain to remember these things.