This may depend on what you want to learn by it. Code Katas are not quizzes or puzzles. You can (and should) not only try to 'solve' it, but find a very good solution, following best practices of the programming language you are using. Maybe you solve it as best as you can for now and a few months later you learn something new and come back to it and optimize your code. Another way to use them is when you learn a new programming language. Having a small Kata like project with a problem space that you understand very good, thanks to earlier solutions in other languages, you can use this same project to test and enhance your learning of the new environment.
As examples you can start implementing a Sudoku solver in C++. When later you learn Ruby, you can take your knowledge and try to implement the same program, but now use all the features of Ruby (while learning them) and implement it, this time concentrating on the new language. (and maybe avoiding those boring tutorial problems)
Some time later you may by chance read an article or blog about Donald Knuth's 'Dancing Links' algorithm and find, that you can use it to write a far better program.
This way a single Kata may follow you over a long time period.
Since this answer has a few likes over a longer time period, I want to add one more detail (for now). There are other things I think can be regarded as code katas even if they are not about writing code. Setting up a development machine, for example with Ruby on Rails, some important libraries and gems, some database drivers and similar tools. Having done this more than once and seen different errors will make you far more comfortable with your everyday tool chain. Especially if you setup similar tools on slightly different systems like Linux and Mac OS X.