pedroreina.net

Pedro Reina, conocimientos informáticos
La vida se vive linealmente pero se recuerda globalmente. Lo mismo pasa con el conocimiento. Si relato linealmente cómo he ido aprendiendo informática quizá tengamos una idea global de mis conocimientos.
Libros de programación

Aunque he leído libros, revistas y material en internet, no conservo todo. Pero me voy quedando con aquello que más me agrada. Esta es la balda que contiene mis libros sobre programación. También se ha colado alguno más genérico.

libros.jpeg

Calculadora en la enseñanza secundaria

Mi primer conocimiento de que existía el concepto de Programación proviene de la calculadora HP-67 propiedad de un compañero de clase. Como no era mía, solo podía disponer de algún programa mío si abusaba de la amabilidad de mi compañero y me dejaba almacenarlo en una de sus tarjetas magnéticas.

Programación en la universidad

En el último curso de mi carrera (Licenciatura en Ciencias Matemáticas, sección Matemática Fundamental) elegí cursar la asignatura Análisis Numérico. Las prácticas se programaban en FORTRAN, usando tarjetas magnéticas: tecleabas las tarjetas, las dejabas en la recepción del Centro de Cálculo de la Universidad Complutense y al cabo de un día o dos recogías las tarjetas junto con un enorme listado con el resultado de ejecutar tu programa. Un resultado habitual, sobre todo al principio, era Error sintáctico en la línea 10 o similiar. Y vuelta a empezar. Lo que un proceso geológico llamaría interactivo.

Pasé más tiempo programando mis cosas (auténticas tontunas, como listados de números primos, un contador de mus,...) que los trabajos requeridos (Método de Runge-Kutta y así).

También pasé como oyente a alguna clase de Pascal, porque mis compañeros de Ciencias de la Computación lo usaban en sus estudios y me gustaba hablar con ellos de sus cosas. Creo que fue en aquellas clases en las que aprendí el concepto de programación estructurada, si no recuerdo mal.

Primera calculadora programable

Tras aprobar la licenciatura conseguí un empleo como profesor de secundaria de Matemáticas. Con mi primer sueldo (entonces se pagaba en efectivo en un sobre) me fui directo a una tienda a comprar una calculadora programable la HP-11, que aún conservo y uso.

Como era el único aparato que tenía que admitía ser programado, escribí muchísimos programas en su peculiar lenguaje. Los anotaba cuidadosamente porque para cambiar de programa había que teclarlo otra vez.

Primer ordenador

Durante varios años puede ver cómo algunos conocidos podían disponer de rudimentarios ordenadores personales, como el ZX-81. Yo no podía aspirar ni a eso, por motivos económicos. Me tuve que conformar con comprar libros de BASIC y estudiarlos sin ordenador. Incluso escribía programas en papel, sin poder ejecutarlos.

Pero con mi primera paga extarordinaria de verano me compré un ordenador que había bajado bastante de precio, un Sinclair QL básico, que enchufaba a una televisión de 14 pulgadas (de tubo, naturalmente).

Con él escribí multitud de programas en el lenguaje de programación que incorporaba en ROM, llamado SuperBASIC. Era bastante bueno (para la época) porque si no se usaban GOTOs, se podía escribir auténtica programación estructurada. De hecho, tras unos años usándolo, escribía en SuperBASIC sin números de línea, solo los ponía para ejecutar el programa en el intérprete y luego los volvía a quitar para seguir escribiéndo; todo eso con macros del editor de textos.

Fue una experiencia muy gratificante, pero que dejó en mí una idea muy equivocada: pensé que sabía programar. ¡Qué ingenuidad!

Curso de UNIX y C

Tras varios años trabajando como profesor, intenté cambiar de trabajo y tenía la ilusión de trabajar como programador. Pero mi formación me parecía insuficiente y en enero de 1991 me matriculé en un curso de UNIX y C.

El curso era muy bueno. La parte de C era amplia y profunda. El profesor era nada menos que Sergi Jordà. Aprendí mucho, pero solo de modo teórico, porque por aquel entonces mi experiencia con los compiladores de C del Sinclair QL no pasaban de ojear el manual con respeto.

Curso de Sistemas Expertos

Durante el curso académico 1991-1992 realicé un curso organizado por la Comunidad de Madrid sobre sistemas expertos. Los profesores eran magníficos, tanto desde el punto de vista profesional, como pedagógico y personal. Aprendí tanto que cambió completamente mi manera de entender la informática. Comprendí que existía el concepto de ingeniería de software. Aprendí que las herramientas informáticas son menos importantes que el diseño de sistemas y la programación de algoritmos.

Para la parte práctica usamos Clipper, LISP, Prolog y C, además de herramientas más específicas de gestión del conocimiento.

En ese momento fue cuando despegué realmente con C. Escribí programas interesantes, como Anarit, y empecé a desarrollar la librería multiplataforma Olimpo. Comencé a leer libros más profundos sobre C y me di cuenta de lo mucho que me gustaba trabajar con este lenguaje de programación. Con la llegada de las placas Arduino y similares, he vuelto a trabajar en C con más asiduidad.

Contacto con Linux

Cuando compré mi primer ordenador con microprocesador Intel, le instalé Coherent para seguir estudiando UNIX, porque me encontraba muy a gusto con ese sistema y quería profundizar en su conocimiento.

Al poco tiempo de que GNU/Linux empezara a ser conocido lo instalé en un ordenador más potente que el que tenía con Coherent. Aunque las primeras instalaciones había que realizarlas con una pila de disquetes y más adelante a partir de CD-ROM que había que pedir por correo postal.

Pasé un año sin instalar el sistema gráfico de GNU/Linux, para acostumbrarme a usar la línea de comandos. Programé bastante en C con mi nuevo sistema.

Tener un sistema libre a mi disposición me permitió asomarme a otros lenguajes de programación. Empecé a estudiar Perl y seguí durante muchos años después. Lo puedo usar ya con cierta familiaridad, pero no suele ser mi primera opción cuando ataco un nuevo proyecto.

Red casera

En mi vida informática hubo un momento muy importante, aproximadamente por 1995, en el que se plantó un gran amigo mío en casa con dos tarjetas de red, una para cada una de los ordenadores de escritorio que teníamos en casa. Sin entender del todo cómo, al menos yo, los conectamos en red.

Esto abrió un mundo nuevo, el de las comunicaciones, que me subyugó desde el primer momento. Empecé pronto a instalar servidores y aprender a administrar los programas servidores. Uno de los primeros fue Apache, el servidor web, lo que me llevó directamente a querer aprender algún lenguaje de programación que me permitiera programar en el servidor.

Tuve la inmensa suerte de asistir en Madrid a una conferencia que dio Rasmus Lerdorf, el creador de PHP, en la que nos dio las indicaciones necesarias para arrancar en el uso de PHP. Desde entonces adopté este lenguaje como mi único lenguaje de programación para servidor. He escrito muchísimos programas en PHP y tengo una colección de rutinas propias con las que resuelvo casi todos los problemas que se me suelen presentar.

Redes en centros de enseñanza

Siempre he estado convencido de las grandes posibilidades que tiene el uso de las TIC en la enseñanza. Además del uso continuo de calculadoras en enseñanza secundaria cuando casi nadie las usaba, fomenté el uso de ordenadores. Recuerdo, por ejemplo, usar en 1991 un programa en BASIC para usar el teorema de Bolzano en el último curso de secundaria.

Cuando me sentí cómodo instalando redes por mí mismo, diseñé e instalé aulas de informática con conexión a Internet y servidores internos. Esto me llevó a mejorar mis métodos de clonado de aulas, desde aquellas pilas de disquetes hasta el uso de Clonezilla, pasando por toda clase de apaños.

Recuerdo usar servidores de correo para que mis alumnos entregaran sus trabajos, abrir el aula a quien quisiera usarla en los recreos y muchas cosas más de aquellos años en los que todo era más pedrestre. Eran los primeros años de los 2000.

Colaboración con la Comunidad de Madrid

Colaboré en la creación de la primera versión de la distribución MAX, el GNU/Linux de la Consejería de Educación de la Comunidad de Madrid. Estaba programada la presentación para el día 11 de marzo de 2004, así que hubo de ser suspendida y se trasladó a otra fecha.

max.jpeg

Impartí cursos de administración de servidores y redes en la red de formación de la Consejería de Educación.

intedu.jpeg

Colaboré en el grupo de estudio de implantación de redes.

Bases de datos

Mi uso de programas gestores de bases de datos tiene su propia historia paralela a mi desarrollo informático. Comencé con el gestor que venía con el Sinclair QL (Archive), luego utilicé diversos programas xBase, incluso desde mi propio código en C, más adelante usé PostgreSQL y MySQL para programación web (incluso simultáneamente), pero desde hace varios años me he decidido por usar SQLite exclusivamente, tanto para escritorio como para servidores.

Desarrollo web

Para desarrollar proyectos vía web empecé desde la tecnología del servidor, descuidando bastante el aspecto final.

Para intentar remediarlo, aprendí a utilizar CSS y estoy al tanto de las novedades. Ahora me parece una herramienta maravillosa, muy potente, que cada vez permite más posibilidades de un modo más sencillo.

Tardé más tiempo en decidirme por meterme en el mundillo de JavaScript. Cuando no lo conocía bien me parecía un lenguaje sucio en el que el código estaba entremezclado con HTML. Hasta que compré un libro en el que aprendí a usar JavaScript de una manera más limpia. Desde entonces lo he ido incorporando a mis desarrollos y ahora me encuentro cómodo con el lenguaje. El paso definitivo fue cuando aprendí a hacer llamadas asíncronas al servidor.

Python

Comencé a interesame por este lenguaje de programación hace muchos años, poco después de empezar con Perl; pero, curiosamente, no desarrollaba nada con él.

Tras muchos años casi en el olvido, volví a acercarme a él con más ganas. Empecé a verle la facilidad de desarrollo que ofrece y me convenció definitivamente.

Hice varios desarrollos para usar en mi centro de enseñanza que usaban extensivamente Python, por lo que aprendía deprisa y corriendo nuevos métodos cada vez que los necesitaba, pero sin pararme a reflexionar sobre ellos.

Pero cuando se planteó la posibilidad de ofrecer a los alumnos de bachillerato una asignatura llamada Matemáticas e Informática (que al final no se pudo llevar a cabo) me puse a estudiar muy en serio Python para poder afrontar con garantías la enseñanza de la asignatura.

Actualmente disfruto programando en Python, un lenguaje que me permite mezclar fácilmente el uso de bases de datos SQLite, la generación de PDF y la llamada a programas externos, algunos de los cuales los he escrito en C. Es utilizar lo mejor de varios mundos.

Posibilidades para seguir
Mejor visto con cualquier navegador HTML 4.01 válido CSS válido