Aprender a Programar Jugando

Standard

Hola a todos, en mi post anterior nos pusimos serios revisando los tipos de competencias que un buen programador debe de contar en su arsenal de conocimientos y habilidades. En este post vamos a enfocarnos en el aprendizaje continuo, pero jugando. 😃

Habiendo actualmente tantos recursos donde aprender como:

  • Libros.
  • Blogs.
  • Tutoriales.
  • Videos.
  • MOOC (Massive Online Open Courses)
  • Degrees y Nanodegrees. (De estos dos últimos hablaré en algún post a futuro).
  • otros…
Destaca uno en particular que son los juegos, que te ayudan a reforzar los conceptos de programación, inteligencia artificial (AI)  o herramientas, tratan de hacerlo divertido en el proceso y promueven que aprendas “ensuciandote las manos”.
Les voy a compartir tres juegos que he usado y estoy usando actualmente en tres plataformas y herramientas diferentes: VIM, R y Ruby.
zelda-nes
Zelda NES Screenshot (tomada de http://www.EmuParadse.me)

VIM Adventures

http://vim-adventures.com

VIM Adventures

Como les comentaba en mi publicación anterior (Matriz de Competencias…, sección de Programación, en IDE), el uso de VI o VIM (VI Improved http://www.vim.org) es un gran plus en tu caja de herramientas de programador. Puede parecer complejo al inicio, pero una vez que te orientas no puedes parar de usarlo. Esto parecen entenderlo la mayoría de los proveedores de IDEs y Editores de Texto, que ofrecen una versión de VI de sus editores de manera nativa o con plugins.

Habiendo entendido esto, una de los recursos que yo utilicé para familiarizarme con el funcionamiento y las combinaciones de teclas es con VIM Adventures, en el te van asignando misiones, para ir progresando tienes que aprender a usar las combinaciones de teclas que VIM ofrece. A medida que avanzas y cumples retos, vas as adquiriendo nuevas combinaciones que hacen que tus conocimientos en el uso de VIM se haga más completo.

vim-adventures-opt

Aunque VIM es un juego de pago, ofrece varios niveles de manera gratuita con los que puedes practicar.

SWIRL

http://swirlstats.com

swirl logo

Ahora, si estas interesado en Data Science, probablemente conoces o estas interesado en aprender el Lenguaje R, que es ampliamente usado para el procesamiento y análisis de los datos. Hay muy buenos tutoriales, cursos y degrees disponibles, este recurso/juego lo tomé de un curso de una especialización que estoy tomando, R Programming (https://www.coursera.org/learn/r-programming).

En este curso usan activamente la Biblioteca de Swirl, que está diseñada para aprender las bases del lenguaje de una manera más relajada. Técnicamente no es un juego, ya que todo es a través de consola, pero los comentarios y la retroalimentación que te da está divertida y se te van quedando los conceptos que te comparten.

Si quieres aprender a usarlo en la misma página de SWIRL vienen las instrucciones para instalar R en los diferentes ambientes (Mac, Linux o Windows), si ya tienes R, instalas la biblioteca es tan sencillo como seguir estos pasos:

1
2
3
4
5
6
## Te da la opción de donde bajar la biblioteca y la instala.
> install.packages("swirl")
## Agregas la biblioteca al workspace.
> library("swirl")
## Inicias el programa y a aprender. :)
> swirl()

swirl-terminal

Ruby Warrior

https://www.bloc.io/ruby-warrior#/

ruby warrior

Una manera de aprender Ruby es leyendo libros y haciendo tutoriales, probablemente con Rails, lo cual es bueno, pero tomar un reto e ir pasando los niveles de Ruby Warrior, estás más divertido y es uno de mis favoritos.

Ruby Warrior es un juego diseñado parar enseñar el lenguaje Ruby e Inteligencia Artificial de manera divertida e interactiva.

Tu juegas como un guerrero que va ascendiendo por una torre para alcanzar un Ruby al final de cada nivel. En cada piso necesita escribir el código de Script de Ruby para instruir al guerrero como combatir a los enemigos, rescatar prisioneros y alcanzar las escaleras, entre otras cosas. En el nivel básico los niveles son 2 direcciones y el intermedio 4 direcciones.

Para correr este juego lo puedes hacer desde la página de bloc.io o lo puedes hacer desde tu terminal.

Si ya tienes Ruby instalado tienes que instalar la gema de rubywarrior, y luego ejecutar rubywarrior para que te pregunte para darte de alta como guerrero y empezar a resolver los retos.

gem install rubywarrior
rubywarrior

Terminal Nivel 9 Básico.

rubywarrior-terminal

Bloc.io Nivel 9 Básico.

rubywarrior-blocio

Pudiera pasar escribiendo sobre Ruby Warrior más tiempo, de hecho pudiera tener un post dedicado nada más a este juego, es muy divertido y bastante retador, se los recomiendo bastante.

Anexo

En esta publicación quise incluir solo juegos que ya había usado, pero les comparto otra publicación donde se listan otras opciones que se ven interesantes y que valen la pena intentar.

12 Free Games to Learn Programming.

Nota

Todos los screencast se grabaron con Recordit, es una herramienta fácil de usar y te genera videos basados en GIFs. (http://recordit.co/)

Para poder subirlos al blog, use una herramienta online para ajustar los tamaños de los GIFs. (http://ezgif.com)

Leave a Reply

Your email address will not be published. Required fields are marked *