Reading the book by Marijn Haverbeke. Each chapter has exercises and, this is just a file containing them.
One of the most interesting parts about coding is that given a specific task, there are multiple ways to accomplish that task. There may be better ways than others. For example running a recursive function is slower than running a loop. However, there are times where running a recursive function makes more sense than running loops. Both accomplish the same thing, one is faster than the other but, they each play their own purpose.
I have created a file simply to house the answers I created for the exercises. Some I have done multiple ways, some similar in style but, using functionality taught in a given chapter.