Aprende 3 lenguajes en 2 meses ¿Te sumas al reto?
Antonio Leiva

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 Clic para tuitear

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!

 

Quizá también te interese…

Unidirectional Data Flow: Qué es y cómo funciona en Android

Unidirectional Data Flow: Qué es y cómo funciona en Android

Hay algunos conceptos que están empezando a resonar muy fuerte en Android, y Unidirectional Data Flow es uno de ellos. Como puede que sepas si estás apuntado a la newsletter, me he planteado escribir una serie de artículos sobre MVI (Model View Intent), y me he topado...

42 Comentarios

  1. Wilder Olmos (@WilderOlmos)

    ¡Muy buena idea Antonio! Me uno al reto.
    Los lenguajes son:

    Python: (este es un poco trampa, lo usan en mi trabajo y ya es hora de entender lo que hacen mis compañeros)

    Java para Android (ya se java, así que también es trampa pero supongo que enfocado a Android, cambia bastante).

    Clojure : No tengo ni idea de que va, se que es a tope funcional, así que para compensar los dos anteriores.

    ¿Qué te parece, está bien no?

    Un saludo Antonio y gracias por tus píldoras semanales

    Responder
    • Antonio Leiva

      Perfecto! No me parece mal hacer un poco de “trampa”. No es una tarea fácil 🙂

      Responder
    • Antonio Leiva

      Muchas gracias! Revisaré el enlace a mi vuelta

      Responder
  2. Angel

    Vamos a intentarlo!
    Scala
    Kotlin
    Swift

    Responder
  3. Fran

    Me apunto al reto con:
    Go
    Swift
    Ruby
    A ver que tal sale. 🙂

    Responder
  4. Zuriel (@ZurieLeader)

    Me uno al reto 😀
    [{“programming_language”:”scala”},{“programming_language”:”elixir”},{“programming_language”:”python”}]

    Responder
    • Antonio Leiva

      Genial! Bienvenido al reto!

      Responder
  5. Richnet

    Quisiera
    Java
    C#
    PHP

    Se puede?

    Responder
    • Antonio Leiva

      Claro! Puedes elegir los que quieras

      Responder
    • Antonio Leiva

      Genial!

      Responder
  6. Roger

    Se ve super!!:
    – Python.
    – Go.
    – Swift.

    Responder
  7. zx

    C#
    java
    HTML
    ojala y lo logre…..

    Responder
  8. Oscvic

    Llego tarde, pero por suerte ya había empezado:

    Python
    Groovy
    new Question(“¿Clojure o Ruby?”).NecesitoAyuda(“:'(“);

    No me peguéis 🙂

    Responder
    • Antonio Leiva

      Jajaj los dos son buenas opciones. A lo mejor Clojure es buena idea, para tener un lenguaje más funcional.

      Responder
  9. svzosorio

    Me uno al reto, aunque creo que me demoraré unos días más

    – Scala
    – Go
    – Swift

    Responder
    • Antonio Leiva

      No pasa nada! El caso es acabarlo, cuándo sea importa menos.

      Responder
  10. Diego

    ¡ Vamos allá!
    – Javascript
    – Python
    – R

    Responder
    • Antonio Leiva

      A por ello Diego!

      Responder
  11. Alberto Domínguez

    Puedo unirme yo también? aunque sea un poco tarde, de momento sigo de vacaciones jejejeje

    Me gustaría aprender:

    Typescript (Que se complementa con Angular2)
    Angular2 (Ya tengo algunas nociones básicas)
    NodeJS

    Tomo nota de los koans de Gerson Sosa para Typescript, muchas gracias

    Reto difícil, pero bueno, a ver que se puede hacer.

    Responder
    • Antonio Leiva

      Perfecto! Claro que sí, no hay prisa con este tema, lo importante es conseguir el objetivo más que cuándo conseguirlo.

      Responder
  12. Antonio Herazo

    Acepto el reto !!!
    Quiero aprender
    Python
    Java para Android
    SQL
    No entiendo mucho como es la dinámica para empezar el reto !
    Quién me ayuda ??

    Responder
    • Antonio Leiva

      Esto fue un reto que hice hace un par de veranos, pero por supuesto lo puedes hacer a tu ritmo sin problema.

      Responder
    • Antonio Leiva

      Hola Ezequiel. Este reto se hizo hace un par de años para verano. Pero no dudes en llevarlo a cabo cuando a ti te venga bien, siempre es un buen momento para hacerlo!

      Responder
    • CarlosDnl

      Java
      Javascript
      Dart

      Responder
  13. Sebastian Cifuentes

    Hola, buenos días me voy a unir al reto con todos los ánimos de aprender y ampliar mis conocimientos.
    Los 3 lenguajes son:
    – JavaScript
    – JAVA
    – PHP

    Responder
  14. Apolinar

    Hola que tal, estoy interesado en unirme al reto junto con todos ustedes
    Los dos lenguajes que me interesan son:
    C++
    JAVA
    Espero ser atendido gracias

    Responder
    • Antonio Leiva

      Hola! Este reto fue lanzando hace unos 3 años, pero nunca es tarde para ponerse con ello. Mucho ánimo!

      Responder
  15. Jhon

    Hola, me gustaría unirme al reto.

    Tengo muchos deseos de aprender.

    Los lenguajes que elijo son:

    Java
    C#
    JavaScript

    Estoy seguro que lo lograré.

    Responder
    • Antonio Leiva

      Este reto fue lanzado hace varios años, pero sin problema puedes hacerlo por tu cuenta. Mucho ánimo!

      Responder

Enviar un comentario

Los datos personales que proporciones a través de este formulario quedarán registrados en un fichero de Antonio Leiva Gordillo, con el fin de gestionar los comentarios que realizas en este blog. La legitimación se realiza a través del consentimiento de la parte interesada. Si no se acepta, no podrás comentar en este blog. Los datos que proporciona solo se utilizan para evitar el correo no deseado y no se usarán para nada más. Puede ejercer los derechos de acceso, rectificación, cancelación y oposición en contacto@devexperto.com.

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Acepto la política de privacidad *