¿Es posible aprender a programar en 20 horas? (I)

Una de las grandes ventajas del código abierto es que el código es abierto. Cualquiera puede hacer las modificaciones que considere necesarias para adecuar un programa a sus necesidades. Claro que para la mayoría de nosotros esa ventaja es teórica, no todo el mundo tiene el tiempo y la paciencia necesarios para aprender a programar. ¿Pero realmente es necesario tanto tiempo?

Josh Kaufman, quien dejó su puesto en una de las 500 empresas más importante de EEUU para empezar su propio negocio editorial, es un fanático de la auto educación. El necesitaba hacer un sitio web pero ninguno de los gestores de contenidos se adaptaba a sus necesidades por lo que decidió programarlo desde cero usando Ruby on Rails. Lenguaje que desconocía completamente.

A partir de esa experiencia, Kaufman propone una metodología que puede aplicarse a cualquier otro lenguaje y de hecho a cualquier cosa que uno quiera aprender.

Aclaremos algo, cuando decimos aprender a programar en 20 horas de ninguna manera estamos diciendo que después de ese tiempo seremos capaces de crear un módulo para el kernel o un driver para la tarjeta de vídeo. Lo que decimos es que si necesitamos automatizar alguna tarea usando el lenguaje de macros de LibreOffice, hacer un programa en Python para manejar nuestra colección de cd’s o crear un juego básico en HTML5 lograremos un resultado adecuado. A partir de ahí será decisión nuestra si queremos seguir mejorando hasta convertirnos en expertos.

¿Cómo puede uno solo aprender más rápido algo solo que haciendo un curso? Josh sostiene que las instituciones académicas se centran en el dictado de contenidos y la aprobación de exámenes, mientras que si somos nosotros los que controlamos ese proceso podemos centrarnos en las cosas que realmente necesitamos saber.

En ese sentido el establece una diferencia entre la adquisición de habilidades y la adquisición de conocimientos. Lo segundo es la mínima teoría necesaria para poner en contexto lo primero.

Pasos para la adquisición de habilidades

La mayoría de nosotros fuimos educados en la religión Católica, eso significa que alrededor de los 9 años nuestros padres nos mandaron a catecismo con el objetivo de tomar la Primera Comunión. Esto implicaba (al menos en mi época) aprenderse de memoria conceptos que a esa edad uno no tiene demasiado claro como el pecado original o que no hay que desear a la mujer de tu prójimo.También debíamos inventarnos pecados porque nos daba miedo decirle al cura que no teníamos nada que confesar. La diferencia entre el Bien y el Mal la aprendimos viendo dibujos animados.

Alguien dirá que de eso se tratan las religiones, por lo que voy a poner otro ejemplo.
Cuando entré a la facultad a estudiar Administración de Empresas, la primer materia específica fue Dirección General. El primer tema fue “La administración es ciencia, técnica o arte”, el segundo las diferentes escuelas de pensamiento. La parte práctica era realizar organigramas con lápiz y papel. Para aprender algo vagamente relacionado con como fundar o manejar una pequeña empresa (hacer un presupuesto, calcular precios, tratar con los proveedores) era (es) necesario aprender primero a calcular la segunda derivada de la función logaritmo, calcular (usando a mano) el punto de equilibrio, conocer la teoría sociológica de Saint Germain y dos materias de historia económica. Más o menos 4 años de tu vida.

Es por eso que Kaufman establece la distinción entre adquisición de habilidades (dedicar todo el tiempo disponible a aprender lo que realmente necesitamos saber fijando nosotros los objetivos y métodos) y la acreditación académica cuyo objetivo es la certificación de que se cumplió con un grupo de criterios de evaluación establecido por un comité.

La adquisición de habilidades nuevas se divide en 3 etapas.

  • Etapa cognitiva: En esta etapa investigamos sobre el tema, pensamos en el proceso de aprendizaje y descomponemos nuestro objetivo en partes manejables.
  • Etapa asociativa: A medida que vamos practicando la habilidad y recibimos retroalimentación del entorno, hacemos correcciones, establecemos relaciones con cosas que ya sabemos  y sacamos conclusiones.
  • Autónoma: En esta etapa ejecutamos la habilidad sin pensar que lo estamos haciendo.

Los pasos a seguir para adquirir habilidades son:

  1. Encontrar un proyecto que te apasione
  2. Enfocarse en una habilidad a la vez
  3. Definir el nivel de rendimiento que queremos alcanzar
  4. Dividir las habilidades en subhabilidades.
  5. Obtener las herramientas necesarias.
  6. Eliminar barreras para la práctica
  7. Hacerse tiempo para practicar.
  8. Crear mecanismos de retroalimentación rápida.
  9. Practicar durante cortos períodos de tiempo
  10. Preferir cantidad y rapidez

index

1) Encontrar un proyecto que te apasione

Hace algunos años, el responsable de la división Asia/Pacífico de RedHat, hablando acerca de la sobreabundancia de programas de software libre en algunos rubros y la falta de alternativas a los privativos en otros sostuvo que se debía a que a los programadores no les apasionaba crear una aplicación  para el manejo de impuestos. Hoy el desarrollo de Linux está casi todo en manos de corporaciones, pero en los tiempos de dominación casi absoluta de Microsoft fue la pasión lo que motivó la resistencia.

Si quieres aprender a programar busca un programa que realmente quieras hacer. A diferencia de lo que los escritores de libros sobre programación creen, nadie quiere hacer un soft que diga “¡Hola Mundo!. Esto acelerará los tiempos de aprendizaje.

Segunda parte

Anuncios

Deja un comentario