After years of trial and error, I did confirm that the best way to improve coding skills is to push yourself to build/expand projects of increasing complexity...

There's only one problem: it takes a significant amount of energy and uninterrupted time to actually code well.

Unless your program for a living (or have the financial/social means to delegate other activities), it can be hard to dedicate yourself to maintain such a habit.

(Writing as I try to untangle a project I wrote months ago.)