An effective way to test code is to exercise it at its natural boundaries
Trivia rarely affect efficiency. Are all the machinations worth it, when their primary effect is to make the code less readable?
Mechanical rules are never a substitute for clarity of thought.
Do what you think is interesting, do something that you think is fun and worthwhile, because otherwise you won't do it well anyway.
If you had done something twice, you are likely to do it again.
The most effective debugging tool is still careful thought, coupled with judiciously placed print statements.