Kata signifie exactement le contraire de ce que vous devriez rechercher.
un exercice consistant en une séquence des mouvements spécifiques d'un art martial, utilisé dans l'entraînement et conçu pour montrer une habileté technique
Le terme Kata (origine: 1950-1955; <japonais: forme, motif) utilisé dans les arts martiaux, et votre question concernent la mémorisation par cœur de la mémoire musculaire, comme la dactylographie au toucher .
Dans le Karaté Kid original, cirer les voitures, poncer les sols, peindre la clôture, c’étaient tous des Katas enseignés, complètement hors contexte et, dans ce cas, sans explication, uniquement pour fournir de la mémoire musculaire. Ce n'est que lorsqu'un sensei est entré et a donné à ces activités creuses un contexte qu'elles ne voulaient rien dire.
Je pense que la même chose s’applique ici, sans un mentor pour mettre les choses en contexte, refaire le problème en résolvant le problème dans plusieurs langues n’est pas mieux qu’un seul. Sans le mentor pour vous dire où améliorer, c'est une perte de temps.
C’est exactement le contraire de la résolution créative de problèmes en apprenant de nouvelles variations d’idiomes et de sémantique d’un langage ou d’une plate-forme.
Si vous voulez être capable de taper le System.out.println()
plus facilement possible, pratiquez alors un Kata.
Si vous souhaitez améliorer une solution à un problème dans une implémentation différente , réduire les contraintes de temps et / ou d'espace ou appliquer des principes plus idiomatiques, ce n'est pas quelque chose que Kata vous aidera.
Il existe déjà un terme industriel accepté pour ré-implémenter la même chose encore et encore après que cela fonctionne déjà, en essayant d'obtenir de petites améliorations incrémentielles et des avantages discutables de perfection, ce s'appelle Gold Plating !
Les termes qu’ils auraient dû utiliser sont le refactoring lorsqu’ils sont appliqués à la même langue / exécution / plate-forme. Et le portage lors du déplacement d'un programme de travail vers une autre langue / exécution / plate-forme. Kata a probablement été choisi à tort parce que ça a l'air hipster, cool et mystique sans comprendre complètement la sémantique.
Résoudre différents problèmes difficiles avec peu de planification, d'expérience et de conseils est ce que la plupart des développeurs, en particulier les développeurs débutants, doivent faire tous les jours.
Seuls les universitaires ont la possibilité de faire le même exercice encore et encore juste pour affiner une solution spécifique. La compétence pour réussir une carrière de développeur réside dans l’ adaptation et non dans la répétition.
Qui a dit qu'il n'y a pas de gens intelligents qui n'ont pas besoin d'étudier après le travail et qui peuvent apprendre tout le besoin de savoir et parfois plus en 8 heures de travail?