Prueba piloto de creación rápida de prototipos con JavaScript y clase NodeJS

La educación tradicional en Ciencias de la Computación apesta mucho cuando se trata de tecnologías ágiles modernas como Ruby on Rails, Django, NodeJS y bases de datos NoSQL. La última vez que revisé, lo máximo que se ofrecía eran clases de Diseño web I, Diseño web II y Conceptos básicos de Photoshop. ¡¿Qué diablos?! No me malinterpretes. Tengo una maestría en tecnología de sistemas de información y valores fundamentales, pero nunca me enseñaron nada actualizado. Había algo de ASP, algo de C++, algo de SQL, pero la mayor parte de mi aprendizaje lo tuve que hacer por mi cuenta. Seguro que hay toneladas de información en línea y en libros, pero no todo el mundo tiene tiempo, dedicación, enfoque y autodisciplina para dominar una nueva habilidad técnica de esta manera. Leer un libro o ver un screencast no es suficiente. El mejor aprendizaje proviene del 25 % de los libros, el 25 % de la comunicación y el debate entre pares, el 25 % de la relación alumno-maestro; el último 25% es el tiempo y la práctica por tu cuenta.

Vi una gran necesidad de capacitaciones técnicas efectivas y decidí validar mi idea. Ya tenía mucha experiencia docente de los años universitarios, durante los cuales escribí mi primer libro de texto, lo publique en un plan de estudios para mis compañeros de clase un año después, y de dar clases de yoga. Necesitaba una clase piloto, así que me acerqué al acelerador y fondo de startups, StartupMonthly, y me ofrecí a desarrollar e impartir la capacitación "Creación rápida de prototipos con JavaScript y NodeJS".

Elegí JavaScript y NodeJS porque los estudiantes podrán usar el mismo lenguaje tanto para el desarrollo front-end como para el back-end. Sus cerebros no tienen que cambiar, lo que ahorra tiempo y acelera el proceso de aprendizaje. NodeJS se está volviendo cada vez más popular debido a su soporte en tiempo real y me apasiona mucho esta tecnología. La capacitación dura un fin de semana largo y comienza el viernes por la noche con una sesión opcional de preguntas y respuestas sobre la configuración de su entorno. Luego, tenemos dos días completos el sábado y el domingo, haciendo que el curso sea de 16 horas en total. De esta manera, las personas que tienen trabajos de tiempo completo no tienen que tomarse un tiempo libre para asistir. La clase es muy práctica y, en la medida de lo posible, en línea con los principios de Flipped Teaching.

Día 1

El objetivo no era obtener ganancias. Por lo tanto, fijamos un precio muy agresivo para la capacitación dos o tres veces más bajo que el precio de mercado de nuestros competidores para atraer estudiantes. ¡Los resultados fueron asombrosos! ¡El objetivo era vender al menos 10 asientos y teníamos 15 personas en nuestra primera clase! Muchas gracias a Yuri Rabinovich, el increíble equipo de StartupMonthly y su vasta red de personas interesadas en la tecnología :)

Día 2

Entonces comenzó el trabajo duro. En un verdadero espíritu de metodología lean startup (oye, esto es lo que enseñamos, ¿verdad?), el manual tenía solo un mínimo de información y estaba diseñado para desarrolladores intermedios de web y JavaScript. A la mayoría le estaba yendo bien, pero no podría decir eso de todos. Este fue un buen comentario para mí y ayudó a mejorar el manual al incluir muchos pasos simples y comandos de terminal adicionales para implementación y Git.

"Optimizar, pero no sobreoptimizar"

En general, los estudiantes estaban cansados, pero contentos con la cantidad de nuevas tecnologías que probaron. Era una especie de buffet chino de programación. No tienes que probarlo todo, solo eliges lo que quieres y disfrutas :) Aquí está la lista de temas para que te hagas una idea:

  • Despliegue ágil y continuo, TDD, Programación en pares
  • Tecnologías front-end básicas:JavaScript, HTML, CSS
  • NodeJS y sus ventajas. Programación basada en eventos.
  • Conceptos de MongoDB, Document Store y Key-Value.
  • JSON, estructura y ejemplos.
  • Podría computar. Plataformas en la nube:Windows Azure, Heroku.
  • Estructura de solicitud y respuesta HTTP:encabezados, cuerpo, métodos
  • API RESTful, ejemplos y ventajas.
  • Resumen de HTML:estructura, etiquetas y sintaxis. Inclusión de CSS, archivos/etiquetas JavaScript.
  • jQuery:AJAX, llamadas entre dominios y JSONP
  • Twitter Bootstrap:diseño de cuadrícula, componentes de formulario, íconos
  • MENOS:mixins, variables y compilación.
  • BackboneJS:estructura, eventos, vista, subvistas, modelos, colecciones y detectores de eventos y vinculación de eventos.
  • Parse.com:llamadas API REST simples con función jQuery ajax y SDK de JavaScript con biblioteca compatible con Backbone.
  • Generación de claves SSH, configuración de Git, GitHub, Heroku y Windows Azure para implementación.
  • Instalación y configuración básica de NodeJS y MongoDB en entorno local.
  • Implementación de NodeJS y MongoDB y aplicaciones estáticas/front-end en servicios en la nube PaaS como Windows Azure y Heroku con Git.
  • Creación de aplicaciones de muestra con NodeJS, jQuery, BackboneJS, Twitter Bootstrap, MongoDB, Parse.com y otras herramientas/tecnologías. Desplegándolo en servicios en la nube.
  • Construir su propia idea/prototipo y presentarlo. Desplegándolo en servicios en la nube.
  • Practicar técnicas de programación emparejada y desarrollo basado en pruebas.

Próxima idea multimillonaria

Al final del fin de semana teníamos 3 equipos de 2 a 3 personas cada uno. Los equipos crearon o comenzaron a crear aplicaciones utilizando sus propias ideas. Uno de ellos era una nueva versión de Reddit con una mejor UX/UI y el otro era un servicio para que ex novias enfadadas publicaran comentarios (en su mayoría negativos, sospecho) sobre sus ex novios :)

Aquí hay algunos testimonios de los estudiantes:

Sesión de preguntas y respuestas

El próximo fin de semana, del 10 al 12 de agosto de 2012, impartiré la segunda clase de "Prototipos rápidos con JavaScript y NodeJS". ¡Estoy emocionado de compartir mi experiencia y pasión con otras 10 a 20 personas inteligentes y hacer una pequeña mella en la educación técnica!

Las capacitaciones sobre "Prototipos avanzados con JavaScript y NodeJS" y "Prototipos móviles con JavaScript" se llevarán a cabo el fin de semana del 25 al 26 de agosto de 2012. Tenemos otras ciudades como Los Ángeles y Nueva York en preparación y (toco madera) el futuro para la serie “Rapid Prototyping” parece muy prometedor.