Kata significa l'esatto opposto di ciò che dovresti sforzarti.
an exercise consisting of a sequence of the specific movements of a martial art, used in training and designed to show skill in technique
Il termine Kata (Origine:
1950-1955; < Giapponese: forma, modello) usato nelle arti marziali e la tua domanda riguarda la memorizzazione a memoria del muscolo come touch typing .
Nel Karate Kid originale, cerare le macchine, levigare i pavimenti, dipingere la recinzione questi erano tutti i Katas che venivano insegnati, completamente fuori dal contesto e in questo caso senza spiegazione solo per fornire memoria muscolare . Non è stato fino a quando sensei è arrivato e ha dato a queste attività vuote contesto che intendevano qualsiasi cosa.
Penso che la stessa cosa valga qui, senza un mentore che metta le cose in context rifare la risoluzione dei problemi sbagliato in più lingue non è meglio di un singolo. Senza il mentore per dirti dove migliorare sono una perdita di tempo.
È l'esatto opposto di risolvere creativamente i problemi apprendendo nuove variazioni di idiomi e semantica di un linguaggio o di una piattaforma.
Se vuoi essere in grado di digitare System.out.println()
nel modo più semplice possibile, esercitarti sarebbe un Kata.
Se vuoi migliorare una soluzione a un problema in un'implementazione diversa , per ridurre i tempi e / o i requisiti di spazio o applicare più principi idiomatici, isn not qualcosa che Kata ti aiuterà con.
Esiste già un termine industriale accettato per la reimplementazione della stessa cosa più e più volte dopo aver già lavorato per ottenere piccoli miglioramenti incrementali e vantaggi discutibili della perfezione, si chiama Placcatura in oro !
I termini che avrebbero dovuto usare sono Refactoring quando applicati alla stessa lingua / runtime / piattaforma. E Porting quando si sposta un programma funzionante in un'altra lingua / runtime / piattaforma. Kata è stato probabilmente scelto in modo errato perché sembra hipster, fico e mistico senza comprendere completamente la semantica.
Risolvere diversi problemi difficili con poca pianificazione, esperienza o guida è ciò che la maggior parte degli sviluppatori, specialmente gli sviluppatori junior devono fare ogni giorno.
Solo gli accademici riescono a fare sempre lo stesso esercizio solo per il gusto di affinare una soluzione specifica. L'abilità di avere una carriera di successo come sviluppatore è in adattamento , non nella ripetizione.
Chi dice che non ci sono persone intelligenti che non hanno bisogno di studiare dopo il lavoro, e possono imparare tutto ciò che è necessario sapere e talvolta di più nelle loro 8 ore di lavoro?