Aprendamos juntos CoffeeScript (De la mejor manera!)


Cuando recién comencé a meterme a todo esto del mundo de la programación, como la mayoría de los de mi generación, comencé desde chico con las bases de la web: HTML, CSS y Javascript. Sin embargo, en ese entonces Javascript no tenía tanto peso como ahora y más bien servía para cosas simples que hacían que las páginas tuvieran pequeños efectos "dinámicos" para que se vieran más llamativas. La verdad es que si pudiéramos medir la evolución de la web en base a algo, sería en base a la propia evolución de javascript precisamente; De hecho, con la llegada de aplicaciones tan conocidas como Google Maps fue cuando TODO lo que conocemos ahora como la "nueva web" empezó a tomar forma y entonces javascript ganó importancia.

El problema, era que en ese entonces, sólo algunos escribían javascript realmente y todos los demás utilizaban los snippets a la copy & paste nada más. Javascript era el lenguaje cool que se hacía tedioso por su (en mi opinión) horrible sintaxis y a muchos los empujaba a ser perezosos y no aprenderlo de verdad. Pasa el tiempo y con la evolución de las tecnologías web, javascript se sigue haciendo de más peso y atrae a más personas, pero eso no quitaba que era tedioso. Es ahí donde, de pronto, entre tantas "soluciones" al problema, nace la verdadera: CoffeeScript. Y es aquí donde empieza nuestro viaje, con una pequeña historia:



¿Qué es Coffeescript?

Coffeescript es un pequeño lenguaje de programación que compila a Javascript. En palabras simples, es un lenguaje de programación hermoso en el que escribes tu código y después ese código se convierte fácil y rápidamente en Javascript que puedes usar en tu sitio/aplicación web. Lo genial aquí es que Coffeescript es sólo Javascript, eso quiere decir que no ocupas nada externo de lo cual depender, como tu código es Javascript realmente, Coffeescript puede "morir" en un momento dado y tu puedes seguir adelante con tu javascript puro jajajaja. Creo que esta parte queda clara desde el primer video, pero la recalco de todos modos.

¿Cómo aprender CoffeeScript?

Es sencillo, siguiendo mis instrucciones a continuación podrás masterizar el lenguaje en cuestión de unos pocos días (y aprenderás a amarlo también) jajajaja:

Pre-Requisitos

Muchos dicen que para aprender Coffeescript requieres saber javascript, Yo difiero. Sin embargo si tuvieras experiencia en cualquier lenguaje de programación sería bueno pero tampoco es terminantemente necesario, CoffeeScript es el lenguaje perfecto para aprender a programar, pero tener conocimientos básicos de programación (como saber qué es un "string", "array", variable") va a hacer más fácil tu viaje sin lugar a dudas... Lo que sí es necesario es Instalar NodeJS en tu computadora para luego poder instalar coffeescript desde npm con el siguiente comando (En linux lleva sudo):

npm install -g coffee-script

Una vez instalado, podemos proseguir.

Entendiendo Coffeescript, una cosa a la vez

En Nettuts+ tienen un excelente artículo que explica muy bien coffeescript, su sintaxis y demás de una manera entendible y agradable, te invito a leer dicho artículo ahora:

http://net.tutsplus.com/tutorials/javascript-ajax/rocking-out-with-coffeescript/
¿Aún no captas su belleza?

Una vez habiendo leído ese artículo, estás listo(a) para otra charla:


(Aquí no importa si lo tuyo no es ruby, es una buena charla de todos modos para cualquier aprendiz de CoffeeScript).

¡La mejor Parte!

Este paso, es sin lugar a dudas mi parte favorita del tutorial... Este video me hizo entender a diestra y siniestra todo lo que es coffeescript, su sintaxis y cómo funciona. Una buena parte del video está enfocada a usuarios de MacOS, sin embargo recomiendo verlo todo sin importar en qué plataforma te encuentres:


Afinando la Puntería

Ha llegado el momento práctico del asunto, Ya tienes la teoría aprendida, pero tienes que hacer algunos ejercicios, de otra manera no sabrás nunca si lo has captado o no. Esta parte se divide en 2 secciones:

1) jQuery Air: First Flight

Este es un curso gratuito de CodeSchool que se centra en jQuery, la popular (y casi omnipotente) librería javascript, una de las mayores herramientas de todo web developer. Te recomiendo seguir el curso usando coffeescript en todo lo que puedas; Como el intérprete que se usa en la página acepta sólo javascript haremos uso de una práctica herramienta llamada Js2Coffee, un conversor online que nos permitirá convertir nuestro javascript a coffeescript y viceversa. Eso quiere decir que puedes escribir tu solución en coffee dentro de la página del conversor y tomar el output JS para pegarlo en el intérprete del curso de codescool y correr la solución para avanzar al siguiente nivel... Es bastante divertido, créanme. (Además, podrás estudiar el Javascript resultante de tu código coffeescript). Una ayuda previa puede ser leer este otro artículo donde hablan de Coffee y jQuery juntos además de otras comparaciones.

2) A Sip of CoffeeScript

Este es otro curso de CodeSchool pero es de pago, sin embargo puedes hacer el primer nivel gratis y ver el video introductorio más el video del primer nivel sin pagar. Es una buena prueba para testear lo que has aprendido hasta aquí, y si puedes hacer el curso completo, sería mucho mejor. Piénsalo y si quieres suscríbete un mes a Codeschool aunque sea solo para hacer este curso completo.

De los 2 cursos te recomiendo aprovechar y bajar las slides, ya que son un recurso invaluable cuando uno programa usando estas tecnologías a la larga.

¿Y los libros?

Sin lugar a duda, no serías un buen aprendiz si no leyeras, ¿verdad? Resulta que tras hacer todo lo de arriba solo te queda leer un poco. Te recomiendo en especial 2 libros excelentes para aprender CoffeeScript:

1) The Little Book of CoffeeScript

Este es un libro que como su nombre lo dice, es pequeño. Yo me lo leí en 1 hora y me agradó bastante pues explica de manera clara, concisa y eficaz el lenguaje, este es un must-read para todo aquél al que le guste CoffeeScript.

2) Smooth CoffeeScript interactivo

Este es otro buen libro con la peculiaridad de que es interactivo e incluye ejercicios que podrás ir resolviendo en el navegador mientras lo lees. Es un libro con una lectura un poco más "tediosa" (aunque no aburrida del todo) pues enseña programación desde cero, (desde las bases como tal) al mismo tiempo que enseña CoffeeScript, (pues en este lenguaje se basa). No dejes de leerlo y terminar los ejercicios, es un gran refuerzo.

Recursos Extra

Si algún día requieres ayuda para aclarar algo o simplemente quieres tener a la mano más información, siempre recuerda estos 3 recursos básicos:

1) Sitio Oficial de CoffeeScript

Excelente documentación/ejemplos disponibles e incluso un intérprete en vivo con el cual podrás jugar un poco con el lenguaje en tiempo real.

Enlace

2) The CoffeeScript Cookbook

Un montón de recetas prácticas para lograr diferentes objetivos con CoffeeScript. Me ha ayudado en más de una ocasión.

Enlace

3) CoffeeScript Console (Chrome)

Una extensión para Google Chrome y derivados que te permite tener una consola live de Coffeescript en tiempo real con todo y compilador para escribir, ejecutar y testear tu código.

Enlace

Pilón: 10 CoffeeScript One Liners

Un artículo bastante genial donde nos enseñan 10 ejemplos de código CoffeeScript que solo ocupan una línea (c/u) para lograr cosas que, (como dicen en el artículo) nos permitirán impresionar a nuestros amigos jajajajaja.

Enlace

Y pues bueno, con eso llegamos al fin de nuestro artículo acerca de la mejor manera para aprender CoffeeScript. Espero que les haya gustado y motivado a escribir cosas en este lenguaje de programación, ya que en la web de hoy no hay nada más importante que Javascript y con Coffee, todo es color de rosa cuando tenemos que escribir JS... Con cosas tan importantes como NodeJS, Express, Backbone y demás, definitivamente todo aquel que quiera aprender a programar (o se quiera dedicar a algo relacionado con la web), debe tener CoffeeScript en su repertorio. Si deciden escribir CoffeeScript y llegan a tener una duda, no se olviden de que Google y StackOverflow son los mejores amigos del programador.