Coding Principle: Practice reshaping ideas with classes and functions
Occasionally, pick a feature that involves a fair bit of code to re-implement several different ways.
At first, write the code how you normally would. Then, try breaking it up into many well-named functions. Then, redo it with no new functions.
Is there a class or two that could capture the new ideas? See what that would look like.
Allow yourself to play around with the possibilities. Notice how each feels. Is it easier to understand? Is the code around it easier to understand? Which version makes it really clear where the boundaries between features are?