Kata means the exact opposite of what you should be striving for.
an exercise consisting of a sequence of the specific movements of a martial art, used in training and designed to show skill in technique
The term Kata ( Origin:
1950–55; < Japanese: shape, pattern ) as used in martial arts, and your question are about rote memorization of muscle memory like touch typing .
In the original Karate Kid, waxing the cars, sanding the floors, painting the fence these were all Katas that were taught, completely out of context and in this case without explanation just to provide muscle memory. It wasn't until a sensei came in and gave these hollow activities context that they meant anything.
I think the same thing applies here, without a mentor to put things in context re-doing problem solving wrong in multiple languages is no better than a single one. Without the mentor to tell you where to improve they are a waste of time.
It is the exact opposite of creatively solving problems by learning new variations of idioms and semantics of a language or platform.
If you want to be able to type System.out.println()
as effortlessly as possible, then practicing that would be a Kata.
If you want to improve a solution to a problem in a different implementation, to reduce time and/or space requirements or apply more idiomatic principles, that isn not something that Kata will help you with.
There is already an accepted industry term for re-implementing the same thing over and over after it already works striving for small incremental improvements and questionable benefits of perfection, it is called Gold Plating!
The terms they should have used are Refactoring when applied to the same language/runtime/platform. And Porting when moving a working program to a different language/runtime/platform. Kata was probably erronously chosen because it sounds hipster, cool and mystical without completely understanding the semantics.
Solving different difficult problems with little planning, experience or guidance is what most developers, especially junior developers have to do every day.
Only academics get to do the same exercise over and over just for the sake of honing a specific solution. The skill in having a successful career as a developer is in adaptation, not repetition.
Who says that there aren't smart people that don't need to study after work, and can learn everything the need to know and sometimes more in their 8 hours at work?