Contra la visión mítica de saber programar
Este vídeo con Zuckerberg, Jack Dorsay y Bill Gates (con cita de Steve Jobs incluida) sobre "lo que la mayoría de las escuelas no enseña" es el mejor exponente de una corriente de opinión que, cada vez con mayor fuerza, hace una apología del "saber programar".
En los últimos días he leído de todo: "Programar te hace más sabio", "si no eres programador serán un analfabeto del siglo XXI" y la célebre e ingeniosa cita "programa o serás programado" (del libro de Rushkoff). El caso es que las mayores hipérboles se las escucho a la gente con un perfil más alejado de la programación, mientras que mis excolegas de profesión - hace unos cuantos años me dedicaba al noble arte del desarrollo software - suelen ser más comedidos.
Saber programar es una cosa excelente
Echo de menos programar y eso que nunca llegué a ser realmente bueno. De hecho creo que con menos de diez años de experiencia es muy complicado llegar a ser un gran programador. Pero el hacer software es una de las tareas más completas y enriquecedoras que se puede abordar intelectualmente, comprende tanto las facetas creativas - importante: programar es escribir - como el pensamiento abstracto y organizativo. No es en absoluto una tarea rutinaria para cabezas cuadradas como muchas veces se suele pintar, además de ese componente "matemático racional" la programación exige un alta dosis de creatividad, de plantear soluciones nuevas y de conseguir modelar y abstraer la complejidad del mundo que se quiere procesar a una realidad lógico-matemática.
Incluso diría más, diría que como ciudadanos que vivimos cada vez más rodeados, ejecutando y consumiendo software, vamos a necesitar unas nociones básicas de algoritmia para comprender el mundo que vivimos y los compromisos a los que nos invitan a llegar. Desde los que conducirán nuestros coches hasta los que nos filtran y ordenan la información. No tengo claro como trasladar todo esto a la educación, pero intuyo que estamos dejando huérfanos a varias generaciones de un criterio propio con el que afrontar lo que tantos llaman "sociedad de la información". Sí que tengo claro que quedarse en la herramienta es una visión pobrísima y que nuestra clase política carece de una idea de internet y del software, pero tampoco soy capaz de tener cien por cien claro un plan de estudios que baje a tierra estas ideas.
La visión mítica de la programación
Con todo ello, estoy en contra de la visión mítica sobre la programación que subyace en algunos discursos. Sirva de ejemplo el vídeo que ilustra este artículo, incide y reincide en la excepción (que algunos de los triunfadores del capitalismo tecnológico tienen un perfil técnico / programador) y no en la norma. Y es que el mundo del software muy raras veces produce soluciones universales que utilizan cientos de millones de personas (y que son las soluciones que producen enormes plusvalías por las economías de escala) sino que en su inmensa mayoría resuelve problemas concretos con soluciones no reutilizables.
Ese es el motivo por el que existen miles de factorías software con decenas y decenas de millones de programadores en todo el mundo utilizando Java, .NET o incluso Cobol. Porque por norma el trabajo software es el de desarrollos específicos con rentabilidades ajustadas. Claro que existe la posibilidad de hacer un desarrollo de éxito mundial, pero esto es algo excepcional y, como hablamos sobre Angry Birds y la economía de las apps, no es ni mucho menos la norma.
De hecho con la programación hay un malentendido constante. Es un medio para resolver un problema, siempre se ha tratado de eso. Un cliente (uno puede ser su propio cliente, claro) tiene una necesidad, unos requisitos y para resolverlo se plantea una solución. El recorrido de la programación es justo el que permita dar soluciones a problemas y necesidades, no es un fin en si mismo. Si cuando me dedicaba a ello hubiese podido conseguir los objetivos sin tirar una línea de código, sin pruebas ni despliegues, hubiese sido el hombre más feliz del mundo (aunque quizás con menos futuro profesional también). Añadiría que la visión de la programación como un fin además ayuda a perder de vista algo fundamental: la calidad del software se refleja en su capacidad de satisfacer los requisitos del cliente.
También tendría cuidado con las cualidades - a veces mágicas - que suponemos a los programadores. No son más listos, ni más sabios ni tienen una posición privilegiada para identificar problemas del uso de la tecnología. Al menos no por ser programadores. Mi vecino que nunca ha puesto un huevo sabe distinguir muy bien uno sano de uno podrido y lo mismo sucede con la tecnología en la mayoría de los casos.
Aprenda a programar en siete días
Por último quedan dos aspectos en todo este tema que se suelen olvidar. Uno referido a las expectativas económicas de la carrera de programador o de lo que aportaría saber programar a otra profesión (se habla mucho de periodistas programadores). Aquí haría un esfuerzo de realismo, de entender bien los salarios medios y no los "estrella" y de sopesar de que el éxito de alguien con otro empleo está en ser realmente bueno en él y no tanto en que además pueda tirar unas líneas de código.
El otro aspecto tiene que ver con el proceso de aprender a programar. La mayor barrera de entrada que pronostico para quienes empiezan tiene que ver con que casi siempre tienen en mente la catedral de Santiago y de repente se ven empezando pegando ladrillos: tipos de datos básicos, trabajo con cadenas de caracteres y similares... me pregunto cuantos llegarán a los algoritmos de ordenación o de si alguno llegará a superar la lección de complejidad algorítmica. Quizás desde mis años se haya mejorado mucho la formación de la programación y las nuevas plataformas online ayuden bastente, pero en todo caso me prepararía para un proceso largo y exigente.
No intento desanimar a nadie. Programar es algo que echo mucho de menos y que cada mes me conjuro a retomar. Tiene al final un punto de satisfacción de haber construido algo que funciona y que es útil a otros, tiene un valor de mercado que puede abrir la puerta a un mejor futuro profesional y, quitando los momentos de frustración, es divertido. Me gusta incluso que se esté prestigiando socialmente, llegando a ser cool. Pero no compraría la versión mítica de saber programar