As I progress in my career as a software developer I often think about how I can continue to develop and enhance my skill set. I’ve realized that staying sharp and improving with regard to the basics – algorithms and problem solving – as well as learning and remaining proficient in different languages and frameworks can be a daunting task. It’s humbling to realize how much there is to know but it’s important to remember that even the best software developers don’t know everything and that we must always be willing to learn what we don’t know and re-learn what we haven’t used in a while. In fact, keeping a sense of curiosity and discovery may be one of the most essential things in a career where the landscape of technology and the skill sets needed to get the job done are continually changing. Not too long ago I began to investigate the concept of the Code Kata as a way to become a better developer. Learning on the job from day to day is valuable and necessary but for many reasons, it is not the optimal place to practice.