Ya te dije que no te ibas a aburrir en mi ausencia estas semanas. ¿Qué te parece participar en este reto? Durante los meses de julio y agosto, vamos a aprender 3 lenguajes de programación nuevos.

Las reglas y la mecánica son muy sencillas.

¿Cómo lo vamos a hacer?

La idea es aprender un lenguaje cada 15 días, con 15 días de descanso para tus merecidas vacaciones, que imagino que te tomarás en algún momento de estos dos meses.

Te recomiendo lenguajes que tengas muchas ganas de aprender, no te dejes llevar por su posible utilidad real. Lo que quiero es que te lances a ver qué pasa,  qué conseguimos de todo esto.

La mecánica de aprendizaje va a ser muy sencilla, mediante Koans y Katas.

¿Qué son los Koans?

Los Koans son ejercicios sencillos que te ayudan a aprender un lenguaje. Normalmente la dificultad estriba más en entender cómo funciona el lenguaje que en resolverlo. Suelen ir acompañados de un test que validará que el código que escribimos para resolver un problema es el adecuado.

Utilizarás los koans para dar ese primer paso rápido que necesitas para poder manejarte un poco con el lenguaje.

Aquí tienes los koans de algunos lenguajes:

¿Y qué son las Katas?

Son ejercicios un poco más complejos que te ayudan a dominar ciertas habilidades de programación. Es muy habitual hacerlos mediante TDD, y te servirá para afianzar los conocimientos.

Este ejercicio lo utilizarás para coger un poco de soltura con el lenguaje mediante la solución de un ejercicio algo más complejo, así que resolverás el mismo ejercicio tres veces, una vez con cada uno de los lenguajes seleccionados.

Te propongo que utilices la Kata de la bolera, aunque si ya la conoces y prefieres utilizar alguna otra, lo dejo a tu elección.

¿Cómo participar en el reto?

Para hacer pública tu participación y obligarte moralmente, escribe un comentario en este mismo hilo con los 3 lenguajes que te has propuesto aprender. Si dejas un enlace a los koans para que otras personas lo puedan utilizar, muchísimo mejor.

Además, te animo a que lo compartas por las redes sociales

Me uno al reto de @devexperto1 : 3 lenguajes de #programacion en 2 meses Click Para Twittear

Una vez que termines las katas en los distintos lenguajes, crea un Pull Request en este repositorio con las Katas solucionadas, incluidas en una carpeta con tu id de Github, y un README dentro de esa carpeta explicando los tres lenguajes que elegiste, qué Koans seguiste y, si hace falta, alguna instrucción más para ejecutar las Katas.

Si sólo consigues acabarlo en uno o dos lenguajes, no te preocupes. Hazlo también.

Los beneficios

Aprender lenguajes nuevos te abre muchísimo tu mentalidad. En otros lenguajes encontrarás diferentes formas de resolver los mismos problemas, que te ayudarán incluso en en el lenguaje que estés utilizando en tu día a día.

Además, aprender nuevos lenguajes es una forma de enriquecerte como profesional. El quedarnos encajados utilizando siempre un mismo lenguaje hace que no seamos capaces de desplegar todo nuestro potencial.

También te ayudará a ver cuáles son las tendencias en los lenguajes nuevos que están surgiendo, y a entender cuál puede ser la evolución de aquí a unos años.

¿Funcionará?

¿Es posible aprender tres lenguajes en dos meses? Sinceramente, no tengo ni idea. Lo que está claro es que no vamos a llegar a dominarlos.

Pero al menos te darán una base para conocer las fortalezas y debilidades de esos lenguajes, y de si podrías aplicarlos para solucionar algunos de tus problemas en tu día a día. Terminar el reto, aunque interesante, creo que no va a ser lo más importante que vas a sacar de este ejercicio.

Este es mi reto

Estos son los tres lenguajes que yo elijo:

  • Ruby
  • Go
  • Clojure

Son tres lenguajes por los que tengo mucha curiosidad y que hace tiempo que quiero aprender, pero por falta de tiempo siempre lo voy dejando.

Además, son tres lenguajes lo suficientemente diferentes, y que se complementan muy bien. Tengo un lenguaje interpretado (Ruby), uno muy enfocado a programación funcional (Clojure), y Go, del que sinceramente no sé apenas nada, pero entiendo que se acerca más a un lenguaje compilado clásico.

Quiero que me cuentes tu historia

Estoy deseando saber qué tal funciona este reto para ti. Si te animas a hacerlo, estaré encantado de que me cuentes por correo electrónico cómo vas progresando con el reto, si te atascas en algún punto, y por supuesto que me cuentes tu historia una vez lo termines.

Si el reto tiene éxito y juntamos unos cuantos casos de éxito, me encantaría publicar un artículo con vuestras experiencias, así que no dudes en escribirme al final del reto para contarme qué te ha aportado.

¡Disfruta de tu verano programando!