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.