Kata significa l' esatto contrario di ciò che dovresti cercare.
un esercizio consistente in una sequenza dei movimenti specifici di un'arte marziale, usata in allenamento e progettata per mostrare abilità nella tecnica
Il termine Kata (origine: 1950–55; <giapponese: forma, modello) come usato nelle arti marziali, e la tua domanda riguarda la memorizzazione automatica della memoria muscolare come la tipizzazione tattile .
Nell'originale Karate Kid, incerare le macchine, levigare i pavimenti, dipingere il recinto erano tutti i Katas a cui era stato insegnato, completamente fuori contesto e in questo caso senza spiegazioni solo per fornire memoria muscolare. Non è stato fino a quando un sensei è entrato e ha dato a queste attività vuote il contesto che hanno significato qualsiasi cosa.
Credo che la stessa cosa si applica qui, senza un mentore per mettere le cose in contesto ri-fare la soluzione dei problemi di sbagliato in più lingue non meglio di uno solo è. Senza il mentore che ti dice dove migliorare sono una perdita di tempo.
È l'esatto contrario di risolvere i problemi in modo creativo imparando nuove varianti di idiomi e semantiche di una lingua o piattaforma.
Se vuoi essere in grado di scrivere System.out.println()
nel modo più semplice possibile, allora esercitarti sarebbe un Kata.
Se vuoi migliorare una soluzione a un problema in una diversa implementazione, ridurre i requisiti di tempo e / o spazio o applicare principi più idiomatici, non è qualcosa con cui Kata ti aiuterà.
Esiste già un termine industriale accettato per reimplementare sempre la stessa cosa dopo che ha già lavorato per piccoli miglioramenti incrementali e discutibili benefici 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 di lavoro in un'altra lingua / runtime / piattaforma. Kata è stata probabilmente scelta erroneamente perché suona hipster, cool e mistica senza comprendere completamente la semantica.
Risolvere diversi problemi difficili con poca pianificazione, esperienza o orientamento è ciò che la maggior parte degli sviluppatori, in particolare gli sviluppatori junior, devono fare ogni giorno.
Solo gli accademici riescono a fare lo stesso esercizio più e più volte solo per affinare una soluzione specifica. La capacità di avere una carriera di successo come sviluppatore è nell'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 più nelle loro 8 ore di lavoro?