¿Quién programa las computadoras?
2 Septiembre 2006 por Ricardo Pluss
¿Quién programa las computadoras?
Saber programar no es simplemente comprender un nuevo lenguaje. Es entrenar la mente en la resolución de problemas y también aprender a disfrutar haciéndolo.
por Leandro Caniglia
La programación es una de las pocas actividades mentales que pueden ser fascinantes y lucrativas al mismo tiempo. A pesar de esto, su práctica en la Argentina y el mundo, lejos de difundirse se ha ido restringiendo hasta un punto que no guarda relación con la importancia creciente de la informática.
Claro que eso no fue siempre así. Hace unos quince o veinte años, cuando las home-computers irrumpieron en los hogares más acomodados de las clases medias, pudimos asistir, más que a la formación de un “mercado”, al nacimiento de comunidades de usuarios casi fanatizados por aquellos antecesores de las actuales notebooks y computadoras de escritorio.
Grupos de entusiastas, en su mayoría adolescentes, pasaron gran parte de sus mejores horas tratando de llegar cada vez más lejos en el dominio de los nuevos dispositivos. Eran épocas en las que el encendido de la máquina mostraba poco más que un cursor titilante en una pantalla con enormes limitaciones gráficas. Es difícil explicarlo, pero aquella austeridad impasible de la vieja línea de comandos logró ejercer el más efectivo de los estímulos: despertó la curiosidad.
Como un monstruo dormido, la computadora hogareña, segura de su poder, se dejó manejar únicamente por quienes estuvieron dispuestos a descifrar sus secretos. Para hacer algo interesante era imprescindible adentrarse en las aguas del Basic e incluso saber desentrañar el lenguaje ensamblador. Resultaba claro que sólo la programación permitiría cruzar todas las metas.
Las computadoras de aquella época hicieron gala de su irreverencia frente a las nuevas tendencias pedagógicas y lograron resultados sorprendentes en varios frentes. Esos chicos empezaron a tener problemas propios; formaron clanes donde compartían conocimientos, y desarrollaron una especie de frenesí por conseguir libros, revistas y manuales que proveyeran más información. Los elementos básicos en los que germina el genio estaban ahí: problemas propios e interesantes, foros de discusión, hambre de saber. Alguna vez habría que tratar de entender cómo fue que la omisión completa de toda motivación aparente logró despertar tanto ahínco bajo la forma de una pasión intelectual.
El contraste es brutal si se piensa en la cantidad impresionante de posibilidades que hoy se nos ofrecen. Millones de colores, sonidos, imágenes y efectos de todo tipo emergen de los más sofisticados periféricos de una manera que hubiese sido imposible sospechar apenas unos años atrás. Sin embargo, parecería que las artes del multimedia y de la conectividad global, lejos de despertar el interés de la gente por la programación lo han adormecido. El impulso de ser protagonistas languidece bajo la pesada pasividad del espectador.
Pero volvamos a la programación. Porque lo que hizo posible que la suma de esfuerzos individuales no se malograra fue la existencia de lenguajes formales de codificación de software. Después vinieron las teorías (o mejor dicho las modas, puesto que esas teorías eran anteriores) y se empezó a hablar de programación estructurada, tipos abstractos de datos, programación funcional, programación orientada a objetos, metodologías, técnicas de diseño, patterns y frameworks. Los aficionados más inquietos devinieron hackers y los más aplicados se convirtieron en profesionales de la informática.
Saber programar no es simplemente comprender un nuevo lenguaje. Es entrenar la mente en la resolución de problemas. Es también aprender a disfrutar haciéndolo. Los métodos que aprendimos en la escuela (como el de la división con resto, las operaciones con fracciones o alguna cuenta con figuras planas) aún adornados por una narración, no deberían entrar en la categoría de problemas. Los problemas verdaderos son otros, llaman nuestra atención y ponen en funcionamiento la parte más elevada del pensamiento, aquella que intuye que el nudo de la cuestión consiste en entender fenómenos no evidentes.
Pero entonces, si lejos de los círculos especializados la programación no despierta mayor interés ¿será que ya no queremos saber cómo ocurren las cosas? ¿O será que nos dimos por vencidos y nos convencimos de que somos incapaces de adquirir nuevos conocimientos? La apatía por la programación es otra forma de la falta de voluntad para seguir aprendiendo. A pesar de permanecer casi totalmente desaprovechados, hoy se sabe que los beneficios de la programación en la enseñanza de las ciencias exactas o naturales son notables. Buenos ejemplos de cómo servirse de las computadoras en las clases de matemática y física escolares pueden encontrarse visitando http://www.squeakland.org.
Más raros son los intentos de vincular el ejercicio de la programación con el aprendizaje de la lengua. Las reglas de la Gramática y sus excepciones son ideales para pensarlas bajo la perspectiva de la programación. Sería interesante saber qué experiencia recogería un profesor de castellano que enseñara a sus alumnos a programar algoritmos para conjugar verbos en diferentes modos, tiempos y personas. En lugar de, por ejemplo, enseñar qué botón hay que apretar para que se active la separación de sílabas en el procesador de documentos, el objetivo pedagógico se elevaría al de analizar, entender y programar el procedimiento algorítmico que convierte palabras en las sucesiones de grupos sonoros que llamamos sílabas.
Los amantes de las actividades físicas también podrían encontrar puntos de contacto con la programación. El tipo de entrenamiento de los programadores profesionales cada vez se parece más al que realiza un deportista. Una de las metodologías en boga llamada Extreme Programming (o Programación Extrema), traza paralelismos entre los programadores y los atletas de alta competición. Las exigencias para lograr el máximo rendimiento de un programador son tan intensas como las de los deportistas. La organización de hábitos y rutinas, la cantidad de horas de sueño, la conformación del equipo de trabajo, la evaluación de resultados y el continuo sometimiento a tests, son prácticas habituales en los dos tipos de disciplinas.
La suma de experiencias que sí se han hecho enseñó que el camino más directo y efectivo para entender qué son las computadoras y cómo funcionan es la programación. Con todos sus altibajos, el movimiento iniciado por los fans de los 80 nunca fue interrumpido. En los últimos años la necesidad de contar con buenos desarrolladores de software se ha hecho tan apremiante que algunas compañías comerciales se dedican a reclutar programadores de todos los rincones de la tierra. Lo más interesante es que algunos de estos emprendimientos le dan más importancia al talento que al supuesto prestigio derivado de los antecedentes personales.
En lugar del Curriculum Vitae o los títulos académicos del postulante, lo que se tiene en cuenta es la capacidad para resolver problemas. Participando en competencias on-line un programador puede aspirar a ganar miles de dólares en premios, o a formar parte de algún proyecto real de desarrollo rentado. Un buen ejemplo es http://www.topcoder.com, un sitio imprescindible para los amantes de la programación. En Top Coder uno puede encontrar trabajo y participar en concursos. También puede entrenarse en la resolución de problemas. Antes de zambullirse en la competencia es posible practicar a gusto. Hay tres categorías de problemas: fáciles (250 puntos), de mediana complejidad (500) y difíciles (1000). Además del puntaje cuenta el tiempo usado para resolver los problemas; el puntaje inicial decae a medida que los minutos corren. Los lenguajes aceptados son C++, C#, Java y VisualBasic.
En todos los casos las prácticas propuestas son interesantes y los que disfrutan de la programación van a poder regocijarse a sus anchas. Ni qué decirlo, el aliciente de convertir código fuente en dólares hará el resto. Se puede argumentar, y de hecho se hace, que la computadora es algo así como un automóvil: no es necesario saber de válvulas y pistones para servirse de él. Lo malo de ése tipo de comparaciones simplonas es que clausuran las puertas de un universo en el que no pocos chicos podrían desarrollar su interés y su talento. La práctica de la programación estimula las capacidades creativas y ayuda a organizar las ideas. Más aún, la programación es una fuente inagotable de descubrimientos que nos incita a entender cómo funcionan las cosas. Tal vez la analogía auto-computadora encierra algo de verdad, después de todo, el dueño de una computadora que nunca programa es como el propietario de un vehículo que jamás emprenderá ningún viaje.
título de la nota
¿Quién programa las computadoras?
autor
Leandro Caniglia
fuente
Simplex Magazine
fecha
12-07-2004.
Muy interesante el artículo, felicidades por el blog
Muy interesante el articulo y los links que utilizaste para resaltarlo. Coincido mucho con tu opinion.
Asi mismo, no me gusta la analogia final que hiciste entre el auto y la computadora: “el dueño de una computadora que nunca programa es como el propietario de un vehículo que jamás emprenderá ningún viaje” Pues yo creo que esta otra analogia ” la computadora es algo así como un automóvil: no es necesario saber de válvulas y pistones para servirse de él” quiere decir que aunque uno no sepa nada de paradigmas de programacion, que es un S.O. o nisiquiera que es el codigo binario, muchas personas trabajan todos los dias usando una PC, en su oficina, en una farmacia, en la casa buscando info en internet o consultando el clima para saber que hacer mañana. Por lo que eldueño de una computadora que jamas programe,se podria comparar con el dueño de un auto que jamas lo “toquetee” es decir que jamas lo personalice, y no me refiero a ponerle luces de colores o un cromado. Me refiero a cambiarle el sistema de frenado, a entender la quimica de la combustion y agregarle aditivos no comerciales al combutible para prolongar la vida util del auto, a soldar o atornillarle suplementos diseñados por uno en el galpon de su casa para sacarle mas provecho a la actividad que realiza con su auto. Mi padre trabaja en el campo, y el constantemente le esta hacindo modificaciones a sus maquinarias para mejorar su rendimiento o productividad, de hecho pertenece a una especie de clan que se dedica a diseñar suplementos o soluciones a problemas que los fabricantes de maquinarias no supieron predecir. El, que a duras penas termino la primaria, y no es un genio en matematicas ni mucho menos, sabe mas de fisica y quimica que yo que estoy en la universidad, simplemente por interesarce en el tema, por investigar, por experimentar con sus “fierros” en el fondo de mi casa. Yo diria que el si “programa” con sus tractores, mientras otros solo los utilizan para hacer lo que fueron hechos para hacer de una sola forma. Analogo a las personas que usan la PC solo para el “word” y el “excel” o mirar pelis y escuchar musica, sin saber que quizas si se metieran un poco en el tema, podrian desarrolar pequeñas aplicaciones, que los ayudaran en sus quehaceres cotidianos y les simplificarian la vida. Te dejo un link para que veas a que me refiero: “http://bluefive.pair.com/”
Muy bueno el articulo te felicito.
Julio
demasiado bueno el articulo, ojala publicaran mas articulos como este, q es realmente interesante.