I often say that one of the best ways to learn programming is to learn by doing, i.e. creating your own applications. I get a lot of questions asking me to define what applications you can create to improve your skills and to show off [...]