A fun way to practice and familiarize yourself with development tools, workflows, patterns and practices.
Wikipedia states that a code kata is an exercise in programming which helps a programmer hone their skills through practice and repetition.
The term was probably first coined by Dave Thomas, co-author of the book The Pragmatic Programmer, in a bow to the Japanese concept of kata in the martial arts.
As of October 2011, Dave Thomas has published 21 different katas.
"I may drive to work every day, but I'm far from a professional driver. Similarly, programming every day may not be enough to make you a professional programmer. So what can turn someone into a professional driver or programmer? What do you do to practice?" ~ Jeff Atwood
To me the idea is not to become better at writing actual code but rather to become more familiar with your development toolbox.
If you are writing production code, and are hindered by your IDE or find yourself grabbing for the mouse to do the same thing over and over again, or are new to a concept then a Code Kata could help you optimize your workflow.
It's a small, simple and fun exercise that you can do each day or weekly for about 10 to 30 minutes depending on what you want to gain from it and your own personal preference.
Here are some resources to help you get started with Code Katas:
CodinGame is a challenge-based training platform for programmers where you can play with the hottest programming topics. Solve games, code AI bots, learn from your peers, have fun.
Project Euler is a series of challenging mathematical/computer programming problems that will require more than just mathematical insights to solve. Although mathematics will help you arrive at elegant and efficient methods, the use of a computer and programming skills will be required to solve most problems.
Codecademy is a platform that allows you to learn new languages in an interactive tutorial based interface so that you don't have to install anything while you learn.
Jeff Atwood provides some alternate approachs to Code Katas through
The Programmers Stack Exchange community respond to a question titled Drawbacks of Code Kata. Some responses are along the lines of:
In 2014, John Sonmez wrote about his perspective as to why he doesn't do Code Katas. He makes some interesting points around achieving software development mastery although I don't think that is the goal of a Code Kata. Regardless, you may be able to extract some useful tips for mastery.