Kata significa exactamente lo contrario de lo que deberías esforzarte.
Un ejercicio que consiste en una secuencia de los movimientos específicos de un arte marcial, utilizado en el entrenamiento y diseñado para mostrar habilidad en la técnica.
El término Kata (Origen: 1950–55; <Japonés: forma, patrón) como se usa en las artes marciales, y su pregunta es sobre la memorización de memoria de la memoria muscular como la escritura táctil .
En el Karate Kid original, encerar los autos, lijar los pisos, pintar la cerca , todos estos fueron Katas que se enseñaron, completamente fuera de contexto y en este caso sin explicación solo para proporcionar memoria muscular. No fue hasta que un sensei entró y le dio el contexto a estas actividades huecas que significaron algo.
Creo que lo mismo se aplica aquí, sin un mentor para poner las cosas en contexto volver a hacer la resolución de problemas mal en varios idiomas no es mejor que uno solo es. Sin el mentor que le diga dónde mejorar, son una pérdida de tiempo.
Es exactamente lo opuesto a la resolución creativa de problemas al aprender nuevas variaciones de expresiones idiomáticas y semánticas de un lenguaje o plataforma.
Si quieres poder escribir lo System.out.println()
más fácilmente posible, entonces practicar eso sería un Kata.
Si desea mejorar una solución a un problema en una implementación diferente , reducir los requisitos de tiempo y / o espacio o aplicar principios más idiomáticos, eso no es algo con lo que Kata lo ayudará.
Ya existe un término industrial aceptado para volver a implementar lo mismo una y otra vez después de que ya se esfuerza por lograr pequeñas mejoras incrementales y beneficios cuestionables de la perfección, ¡se llama Gold Plating !
Los términos que deberían haber utilizado son Refactorización cuando se aplican al mismo idioma / tiempo de ejecución / plataforma. Y portabilidad al mover un programa de trabajo a un idioma / tiempo de ejecución / plataforma diferente. Probablemente, Kata fue elegida erróneamente porque suena inconformista, genial y mística sin comprender completamente la semántica.
Resolver diferentes problemas difíciles con poca planificación, experiencia u orientación es lo que la mayoría de los desarrolladores, especialmente los desarrolladores junior, tienen que hacer todos los días.
Solo los académicos pueden hacer el mismo ejercicio una y otra vez solo para perfeccionar una solución específica. La habilidad de tener una carrera exitosa como desarrollador está en la adaptación , no en la repetición.
¿Quién dice que no hay personas inteligentes que no necesiten estudiar después del trabajo y puedan aprender todo lo que necesitan saber y, a veces, más en sus 8 horas en el trabajo?