Todos deberían aprender a programar, aunque no todos deban ser programadores

Todos deberían aprender a programar, aunque no todos deban ser programadores

 Por:  Jorge Amado Soria Ramírez

Al parecer existe cierta resistencia en la comunidad de desarrolladores a la idea de que todos deberíamos saber programar. No sé de donde sale esta resistencia, pero probablemente tenga algo que ver con nuestros egos (los desarrolladores tenemos una autosuficiencia que viene en el paquete por defecto. No hay forma de liberarse de ella).

 También he visto que existe una diferencia de opinión entre “programadores” y “programadores reales” en dependencia de lenguaje y tecnología utilizadas.

Por ejemplo yo personalmente me sorprendo pensando esto sobre los programadores de PHP. Lo cual es injusto, pero me pasa inconscientemente. No entiendo como alguien puede voluntariamente elegir semejante abominación para trabajar…

Sin embargo, es fácil ver que la diferencia entre un programador y un “programador real” no existe, e incluso más allá, que la diferencia entre una persona común y un programador no debería existir.

No todos deben ser programadores

Ciertamente no todo el mundo puede ser un programador, como no pueden ser todos económicos ni escritores. A pesar de eso, podemos estar de acuerdo en que todas las personas deben saber matemática y ser capaces de escribir. Aprender a programar y hacerlo profesionalmente son dos cosas muy distintas que no deben ser consideradas en conjunto. Después de todo, es difícil imaginar un mundo donde solo los escritores puedan escribir. Imagínense un mundo donde para escribir un e-mail debes pedírselo a un escritor profesional, porque son los únicos que saben hacerlo.

Pudiera pensarse que la necesidad de escribir es mucho más prevalente que la de programar en situaciones cotidianas, pero yo pienso que, en realidad, solo es más sencilla de reconocer porque todo el mundo sabe escribir y no todo el mundo reconoce que necesita programar.

Imaginemos como cambiaría el mundo cotidiano si todo el mundo tuviera un IDE en su máquina, de la misma manera en la que tienen una suite ofimática. Imaginemos una situación donde todos saben escribir y leer código.

¡APIs por todas partes!

Lo primero que se me ocurre es que habría APIs por todas partes. Todos y cada uno de los programas tendrían un API fácilmente accesible, para que el usuario pudiera automatizarlos. Así como los productos actuales se diseñan asumiendo que los usuarios saben leer y escribir, todos los productos se diseñarían asumiendo que los usuarios saben programarlos.

Todo es accesible, todo funciona en conjunto con todo lo demás. Stackoverflow se uniría a Flickr y YouTube en el grupo de sitios populares de la red, y todo dispositivo por sencillo que sea puede ser automatizado y unido con otro a través de una interfaz programática.

Es normal que les resulte difícil concebir un mundo como este. No estamos preparados para pensar que la programación y la escritura puedan ser igual de predominantes. Sin embargo tal mundo puede y debería existir. La cantidad de computadoras y dispositivos electrónicos cotidianos es cada vez mayor, y lo único que se puede hacer con ellos es usarlos a un nivel rudimentario, como usuarios. Esto es perder gran cantidad de su valor, debido a su diseño mismo.

Bienvenido al mundo libre

Sin embargo hay personas que han abrazado este paradigma de integrar la programación en sus vidas de forma cotidiana. Cualquier programador (o relacionado) que haya leído y entendido las 4 libertades es automáticamente capaz de entender el porqué es necesario que todos sepan programar.

En la comunidad de usuarios de Linux, es difícil encontrar una persona que no tenga un conocimiento al menos rudimentario de bash y de los comandos del sistema. Razones aparte, este conocimiento demuestra más allá que una necesidad un interés por el funcionamiento de la herramienta y su capacidad para ser personalizada al alcance del usuario, en varios niveles. Todos no tienen que saber reescribir el kernel de Linux, pero si saber cómo implementar un trabajo cron, automatizar el envío de correos electrónicos o simplemente reescribir una aplicación para introducir el logo de su empresa o su propio nombre. Todos los Linux vienen con un compilador de C por defecto, y las herramientas de programación son tan naturales como las de edición de video, imágenes u ofimáticas. Es una comunidad donde la programación y la configuración de los sistemas se consideran al mismo nivel que el uso de los mismos, lo cual es justamente el punto de este artículo.

En el mundo corporativo, Google es una compañía pionera en este frente. Prácticamente todos los servicios, y muchos productos de Google son abiertos, o las APIs son públicas y de uso cotidiano por cualquiera que quiera integrarse con ellos o hacer sus propios servicios. Se hacen concursos de conocimientos y habilidades varias veces al año para todas las edades y abiertos para todos, con el solo propósito de aumentar la exposición de la sociedad no solo a los productos, sino también a la disciplina misma de la programación, el “saber hacer” de estos productos que todos usamos.

Todo comienza con los niños

Tenemos que dejar de pensar que la programación es difícil, y en vez de eso darnos cuenta de que es una de las cosas más sencillas que se puede enseñar a hacer a alguien. Si una persona puede utilizar un lenguaje natural, esa persona debe poder programar. Programar es mucho más simple que cualquier lenguaje, hablado o escrito. Las barreras mentales que hacen ver la programación como una disciplina difícil son artificiales

No solo eso, sino que si lo pensamos no es tan difícil integrar conceptos de programación al aprender otras materias. ¿Qué tanta diferencia hay entre una variable en álgebra y una en un lenguaje de programación? ¿No es la mayor parte de la matemática un conjunto de soluciones resueltas con algoritmos? Se podría al mismo tiempo, enseñar a programar ese algoritmo, haciendo la materia más interesante y enseñando una habilidad útil al mismo tiempo.

Pasamos mucho tiempo enseñándole a los jóvenes cosas que nunca usan, llenándolos de trivialidades. ¿No es más probable que terminen utilizando las habilidades de programación si se le fueran inculcadas apropiadamente?

Lo que fue difícil ayer es fácil hoy

Cálculo, geometría, probabilidades, la estructura de la célula, electricidad… ¿Qué tienen todas estas cosas en común?

Todos estos conceptos solían ser avanzados, abiertos solo a los más educados y cultos de la sociedad. Hoy son tópicos corrientes que se enseñan a los niños de escuela (quizás no cálculo, pero debería enseñarse también).

Con el tiempo, los conceptos que solo los más brillantes podían comprender se han ido llevando al conocimiento común de las masas.

Lo que fue difícil ayer es fácil hoy. Lo mismo ha ido pasando con la programación. Es solo cuestión de cuánto tiempo debe pasar antes de que sea conocimiento común de toda la población. Es una realidad que aunque hay algunas cosas en la vida que son realmente difíciles, la mayoría son fáciles si solo se tiene el entrenamiento adecuado.

Es normal para los humanos enorgullecernos del conocimiento que hemos adquirido como algo especial, así que naturalmente existe una tendencia a enfatizar la dificultad de obtener ese conocimiento y habilidades, pero el valor que podemos producir ayudando a otros a entender nuestro conocimiento es mucho mayor que el que se produce simplemente utilizándolo.

Anuncios

Un comentario en “Todos deberían aprender a programar, aunque no todos deban ser programadores”

  1. Eso es como pensar que todos deberíamos saber hacer cirugías o que todos deberíamos saber cómo funcionan los circuitos. Una cosa es saber programar y otra es saber razonar. En lo segundo, sí, es un verbo de orden, pero en lo primero es surrealista. ¿Qué este es un mundo cada vez más dependiente de la informática? Sí, pero desde la perspectiva de usuarios, consumidores de servicios. Saber leer y escribir son habilidades cognitivas básicas, pero saber programar va más allá de esto. No hay que exagerar.

    Me gusta

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s