* Solve problems
* Afterward, reflect on what went well and what didn't
* Write down what you should have done differently
* Solve more problems, keep those notes handy
* Repeat
Sorry, not based on CS/Math puzzles, but real-world software development and problem solving.