Aprender a programar

De acuerdo a un estudio reciente la ingeniería de software es la carrera más rentable y envidiable de 2012: Software Engineering 2012’s Top Job. La tasa de empleabilidad para los profesionales TI es la más alta a nivel mundial. Y sin embargo...

Motivación

Escuché hace unos días a una joven estudiante de primer  año de  ingeniería comentar sobre el curso de introducción a la  computación, y la verdad que el comentario no fue alentador, para ella programar no es muy entretenido, eso de tener que decirle al computador paso a paso lo que tiene que hacer para implementar un algoritmo simple es una verdadera lata.

Y algo debe haber, porque la matrícula en computación ha disminuido, no sólo en la Universidad donde estudié, sino que en varios otros países. Hay informes que hablan que la matrícula en “computer sciences” ha caído a la mitad en los últimos 10 años. Pueden haber muchos factores, por un lado creo que hay una desconexión entre la academia y la industria, que Bjarne Stroustrup describe muy bien en este post. Hay otros que le echan la culpa a Java 😄.

Lo cierto es que esto es paradojal.  La computación está transformando nuestra sociedad, prácticamente no hay aspectos de nuestra vida que no hayan sido influenciados de alguna manera u otra por las tecnologías de la información. A pesar de que los jóvenes tienen un entusiasmo natural por el uso de tecnología, para entretenerse o comunicarse, encuentran tedioso aprenderlas, incluso tienen  la impresión de que “crear estas tecnologías no tiene suficiente profundidad intelectual”.1

¿Qué podemos hacer para revertir esta visión?

Quizás el problema es que el programador es visto como el albañil, el eslabon final de la cadena, la base de la pirámide en cuya cúspide se encuentra el orgulloso ingeniero.  Estamos atrapados en la metáfora equivocada, y los chicos que quieren ser ingenieros no consideran digno aprender a poner ladrillos.

Probablemente la razón es que simplemente el programar es  visto como una actividad muy poco sexy.

Y aunque nos gustaría que nos vieran así:

Lo cierto es que somos vistos de este modo:

Ese es uno de nuestros problemas, en este mundo donde la imagen es tan importante debemos cambiar la percepción que se tiene de nosotros.

Programar no es sólo escribir código. Programar es un acto creativo, altamente desafiante,  y fundamental. Es la mejor actividad a la que te puedes dedicar, pero ¿cómo podemos transmitir esto a los jóvenes estudiantes de ingeniería?

Veamos, que dice el la descripción de un curso de introducción a la computación de primer año en ingeniería:

“El propósito de este curso es desarrollar los razonamientos algorítmicos y lógico como dimensiones fundamentales y básicas para la resolución de problemas en el ámbito de la ingeniería y de las ciencias físicas y matemáticas.

El objetivo es que los alumnos sean capaces de resolver problemas valiéndose de notaciones, principios, técnicas, métodos y procedimientos de la disciplina de Computación. Específicamente, al finalizar el curso los estudiantes serán capaces de resolver problemas a través de programas escritos en los lenguajes de programación Python y Matlab.”

“Objetivos:

  • General: Resolver Problemas
  • Específico: Escribir programas que resuelvan problemas
  • De Largo Plazo (Propósitos):
    • Razonamientos Algorítmico y Lógico
    • Capacidades de Abstracción y Modelamiento
    • Habilidad general para resolver problemas

Contenidos:

  • Unidad 1: Manejo de listas y tablas de valores
  • Unidad 2: Introducción a la computación numérica
  • Unidad 3: Búsqueda y ordenamiento de información”

OK,  es importante notar que este curso es la primera impresión que muchos jóvenes tendrán con la computación. No la encuentro muy motivante, no se ustedes.

Hace un tiempo decidí empezar a escribir un cursillo de programación, y la verdad es que me di cuenta que estoy siguiendo este mismo patrón, enseñar a resolver problemas escribiendo programas.

No estoy seguro si ese es un buen camino. Verán, de todos los capítulos que he escrito hasta ahora estoy orgulloso de uno: La máquina universal, el resto es bastante estándar. Lo que me enorgullece de ese capítulo es que tiene mucho del espíritu de este blog, es un intento de transmitirles porque me apasiona mi profesión contándoles una historia, la historia de dos grandes hombres: Turing y Von Neumann y el gran aporte que nos legaron.

Yo creo que un curso de introducción a la computación debe ser un curso que muestre el gran aporte que nuestro campo le ha dado a la humanidad. Un curso de introducción a la computación debe lograr comprometer a los alumnos con la aventura de dominar al caos, transmitir la idea que nuestro negocio es la gestión de la inteligencia

No se trata de resolver problemas, se trata mejorar la vida de las personas.

Con ese espíritu propongo el siguiente programa:

  1. Qué es la computación y como afecta nuestra vida diaria:

    • ¿Cómo funcionan los buscadores como Google o Bing?

    • ¿Como es posible que la información no se altere cuando es transmitida o almacenada?

    • ¿Cómo funciona la compresión de la información y en que se usa?

    • ¿Cómo se sostiene nuestro mundo financiero? Las bases de datos y los motores transaccionales.

    • Seguridad, criptografía, cómo aseguramos que nuestro dinero esté a salvo en nuestras cuentas bancarias, o ¿cómo evitamos que suplanten nuestra identidad digital?

  2. Qué es la ciencia de la computación y que trata de afrontar

    • ¿Podemos computar cualquier cosa?

    • ¿Cuáles son los límites de la computación?

    • ¿Es el universo sólo información?

    • ¿Vivimos en un universo como Matrix? ¿Cómo sabríamos si estamos dentro de una realidad virtual?

  3. Diversión:

    • Cómo hacer un juego de computador

    • Que es una red social y cómo crear una

    • Cómo hacer un mashup para integrar distintas APIs en la red para crear una nueva aplicación

    • Como crear una app para nuestro smartphone.

  4. Desafíos:

    • ¿Cómo funciona un GPS y cómo elige la ruta más corta para llegar a algún lugar?

    • ¿Cómo puedo construir un traductor universal?

    • ¿Podemos construir un programa que juegue al ajedrez y nos gane?

¿No creen ustedes que un programa de este tipo sería más entretenido y lograría enganchar a más gente para que estudie computación? , ¿por qué no hacerlo?

Y algo muy importante, también debemos lograr motivar a más mujeres a incorporarse a nuestro campo. Las  primeras programadoras fueron mujeres, ¿por qué no hay más?

Ese es el desafío, logremos que más gente estudie computación. Y ojalá que todos aprendan a programar.


  1. Cito a Chris Bishop en su prólogo al libro Nine Algorithms that changed the future↩︎

Autor

Ingeniero, autor, emprendedor y apasionado programador. Mantengo este blog desde 2005.

comments powered by Disqus
Siguiente
Anterior

Relacionado

¿Te gustó?

Puedes apoyar mi trabajo en Patreon:

O puedes apoyarme con un café.