Look at other implementations of similar algorithms (even in other languages)
Actually finish the project
Repeat
In addition to that, Codewars' Katas are a nice way of doing amusing little puzzles :)
Oh, and personally, I really recommend taking a look at principles which were incorporated into Rust, as Rust does not, like most modern languages, try to implement some fancy new feature, but instead relies on studies from the past 20 years and bundles them into one standard.
Marco Alka
Software Engineer, Technical Consultant & Mentor
In addition to that, Codewars' Katas are a nice way of doing amusing little puzzles :)
Oh, and personally, I really recommend taking a look at principles which were incorporated into Rust, as Rust does not, like most modern languages, try to implement some fancy new feature, but instead relies on studies from the past 20 years and bundles them into one standard.