En esta primer serie de entradas intentaré expresar mis observaciones y experiencia relacionadas al ámbito de la programación y de los programadores, así como el porqué considero, a nivel personal, que todos deberíamos aprender a programar.
En un primer paso, intentaré plasmar mi visión del programador y la naturaleza de éste dentro de su actividad profesional.
—
¿Quiénes programan? Una pregunta legítima, cuya sencilla respuesta es que los programadores son quienes se centran en tal actividad. Pero, ¿quiénes son los programadores?
Para poder responder a esta última pregunta, debemos comprender primero qué es la programación. La programación es el acto, ciencia y casi arte de transferir ideas, acciones y deseos a un idioma que un sistema electrónico es capaz de entender y obedecer. Lo anterior, con el fin primordial de resolver algún problema específico, alguna necesidad, o con el deseo de mejorar algo previamente resuelto, pero que pudiese ser mejorado.
La actividad de todo programador se centra, en un primer paso, en la de comprender el problema que se desea resolver. Una vez resuelto tal punto, el programador es capaz de trazar una serie de ideas, secuencias de pasos que pueden dar la solución al problema inicial.
Una vez planteados, el programador tiene como tarea el trasladar dichas ideas, pasos, actividades y deseos a un idioma diferente al del lector y al de su servidor, el autor. Este idioma es tal, que nadie podría usarlo de forma certera ni fluida en su día a día, pero que tiene un objetivo claro y definido: Servir como puente para trasladar aquello que fue planteado para resolver el problema original y pueda ser comprendido por sistemas de cómputo.
Una vez se ha realizado tal actividad, los sistemas, los dispositivos electrónicos, son capaces de comprender aquello que el programador ha expresado en un idioma tan lejano para nosotros. Ya con instrucciones claras y perfectamente definidas, estos dispositivos son capaces de realizar proezas que para la mayoría podrían ser simplemente magia, sin más.
Entonces, ¿quienes son estas personas? Los programadores, por definición, entonces, son aquellos que desarrollan tan peculiar profesión, y que tienen como responsabilidad el no solo entender y aprender uno o varios de estos idiomas tan intrigantes, sino que tienen como responsabilidad consigo mismos y con su profesión el de comprender aquellos problemas que están siendo resueltos.
Si al lector le parece fantástica esta descripción, es porque así lo es. Los programadores somos quienes nos encargamos de elaborar piezas de software, aquellos componentes que son usados para darle órdenes a los equipos de cómputo (como sus PCs de escritorio, laptops, tabletas y celulares, por nombrar algunos). Y, sin embargo, tal actividad, creo yo, no debería aislarse a quienes la ejercen profesionalmente.
A lo largo de muchos años, he sido testigo personal de la imagen popular que se ha formado de quienes ejercemos esta noble profesión. En general, se considera que quienes caminamos por esta vereda estamos muy alejados de aquellos a quienes se les identifica fácilmente como hombres de ciencia: Física, Electrónica, Óptica, Química, Matemáticas, etc. Sin embargo, todo programador debe de ser un hombre de ciencia por sí mismo, pues la actividad lo exige.
El proceso que conlleva comprender un nuevo problema involucra el tener los conocimientos requeridos. Si un programador no dispone en el momento de aquellos conocimientos que le permitan visualizar el problema en sí y su contexto, éste debe de aprenderlos. Esto conlleva a que un programador debe de conocer no solo de matemáticas y lógica (sus herramientas primordiales), sino de física, óptica, química, magnetismo, y todos aquellos campos de la ciencia que sean requeridos por el problema.
Es claro, sin embargo, que para un programador no es necesario obtener un grado educativo en las áreas que le ayuden a comprender el problema planteado. Éste debe de ser capaz de realizar una investigación puntual, solo de aquellos conceptos que le sean directamente útiles para visualizar el problema y plantear una solución a éste. Estas habilidades le ayudarán a centrarse en la resolución del problema, dejando de lado aquel aprendizaje que no sea indispensable (aunque, claro está, nada prohíbe al programador a aprender mas del tema si le es de interés personal).
Todas estas habilidades y destrezas deben de poder definir a todo buen programador, y es por ello, a mi modo de ver, que debe de considerarse a éstos como hombres de ciencia, tanto como aquellos que se centran en alguna ciencia concreta.
De esta forma, hemos planteado ya la figura del programador. Aquella persona que se preocupa por tomar el rol de aquel que aplica conocimientos, ideas e ingenio a un problema mediante sistemas de cómputo. Con lo anterior planteado, las siguientes entradas continuarán con tal perspectiva, intentando extender mi visión sobre tal actividad y el porqué ésta no debería cerrarse a otras profesiones.