edmt / ejercicios

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Ejercicios de programación

Éste es un repositorio inspirado en CodeKata y forma parte de una iniciativa de amigos de aprender juntos un nuevo lenguaje de programación.

Se espera que los ejercicios propuestos se practiquen usando el lenguaje de programación Rust, pero cualquier alternativa es bienvenida, pues comparar las soluciones también es útil para aprender. Los ejercicios propuestos no requieren experiencia previa, incluso se recomiendan para quien esté aprendiendo a programar por primera vez.

Una kata de código es un ejercicio de programación que ayuda al programador a mejorar sus habilidades a través de la práctica y la repetición.

En la industria del software tomamos desarrolladores capacitados en la teoría y los arrojamos a las profundidades, trabajando en un proyecto. Eso es como tomar un grupo de niños en forma y decirles que tienen 60 minutos para vencer a un equipo profesional de fútbol americano. En el software, hacemos nuestra práctica en el trabajo, y por eso cometemos errores en el trabajo. Tenemos que encontrar maneras de dividir la práctica de la profesión. Necesitamos sesiones de práctica.

La Kata

¿En qué consiste una buena sesión de práctica? Se necesita algo de tiempo sin interrupciones, y una cosa sencilla que quieras intentar. Tienes que intentarlo tantas veces como sea necesario y acostumbrarte a cometer errores. Tienes que buscar retroalimentación para que así puedas mejorar. Es necesario que no haya presión: por eso es difícil practicar en un ambiente de trabajo. Ayuda mantener el ambiente divertido: haz pequeños progresos cuando sea posible. Reconocerás una buena sesión de práctica porque saldrás de una sabiendo más que cuando entraste.

En karate, una kata es un ejercicio en el que repites una forma muchas, muchas veces, haciendo pequeños progresos cada vez. La idea detrás de una kata de código es similar. Ejercicios cortos, tal vez de 30 minutos ó 1 hora de duración. Puedes ser programados de muchas maneras. Algunos no son conclusivos, y se tratan más bien de pensar en cuestiones más allá de la programación. Probablemente éstos no tengan una única respuesta correcta.

El punto de una kata no es llegar a una respuesta correcta. El punto es todo aquello que aprendes mientras tanto. El objetivo es la práctica, no la solución.

Dave Thomas (2014).

Reglas

  • Los ejercicios deberán estar organizados en directorios numerados en este repositorio.
  • Para compartir los ejercicios, publica un Pull Request con tu solución nombrando un directorio con tu nombre de usuario y dentro los archivos de la solución en algún lenguaje.

Ejemplos:

  • /ejercicios/0/bitdmt/solution.rs
  • /ejercicios/0/danioso/solution.py
  • /ejercicios/0/urielable/solution.java

En el caso de Rust, puede que quieras incluir un directorio src, test y el archivo Cargo.toml.

Para saber más sobre cómo ejecutar tu solución con y sin la herramienta cargo, consulta aquí:

Índice de ejercicios

Referencias

Dave Thomas (2014). CodeKata. Julio 2020, de Dave Thomas. Sitio web: http://codekata.com/kata/codekata-intro/

About