[UACA] [/\]
Revista
Acta Académica


Universidad Autónoma de Centro América 

[<=] [home] [<>] [\/] [=>]

Licenciado programador

Adolfo Di Mare



      Es patético. Los programadores no somos profesionales. Siempre nos han dicho que somos aspirantes a analistas.

      Revisando los periódicos, he encontrado que los salarios iniciales para programadores varían desde 17,000 a 25,000 colones por mes en el sector público. En el sector privado, el sueldo más alto que he oído mencionar es 30,000 colones.

      ¿Cómo es posible? El salario en empleos que no necesitan de entrenamiento especializado alguno fácilmente llega a 15,000 colones con un poquito de antigüedad. Al examinar estos salarios, pagados en el mercado de la programación, no cabe más que concluir que la mayoría de los programadores están mal entrenados: no conocen su oficio. La situación es tan grave que al hablar de un programador no pensemos en un profesional, sino en un técnico de bajo nivel, que si acaso está en una Universidad tratando de obtener un grado académico.

      Los programadores debidamente entrenados no son reconocidos del montón, y el resultado es que no hay incentivos para profundizar conocimientos en programación.

      ¿Qué entrenamiento debe tener un programador? Obviamente, los programadores conocemos lenguajes de programación. En nuestro tiempo, los que reúnen las mejores cualidades son tres: C++, Ensamblador, y Prolog. Un buen programador debe dominarlos, aunque lo usual es que conozca muchos otros: Ada, Cobol, PL/I, Pascal, Link, CSP, SQL, Ingres, Today, Dbase, etc.

      Un buen programador también conoce sus herramientas: el sistema operativo de la máquina, manejo de bibliotecas de programas, uso de generadores de aplicaciones, manejo de editores y otros utilitarios, uso de depuradores simbólicos. O sea, un buen programador conoce el ambiente en que desarrolla programas y puede usarlo para hacer su labor en un corto tiempo.

      De mi experiencia personal, puedo afirmar que el uso de herramientas es singularmente importante. Un programador C que conoce bien sus herramientas es capaz de escribir un sistema de información completo más rápidamente que si usara cualquier lenguaje de cuarta generación (4GL). La diferencia cualitativa es siempre significativa, pues en la mayoría de los casos el código C++ es mucho más claro y eficiente que el código equivalente escrito en el 4GL. La ventaja del 4GL estriba en que programdores inexpertos pueden usarlo rápidamente, aunque en general el programa que producen es de calidad precaria.

      Hasta aquí he descrito las pericias que es usual encontrar en cualquiera de nuestros mejores programadores. Ahora detallo nuevas destrezas que han surgido del avance en Ingeniería de Sistemas.

      El programador debe ser capaz de medir el rendimiento de sus programas. Debe conocer algoritmos sofisticados, y debe poder inventarlos si no existen. Debe manejar la matemática que le permita predecir el tiempo de ejecución de un programa, y la cantidad de memoria que ocupa. Debe conocer muchos métodos para organizar los datos que manipulan sus programas. De hecho, esta es la razón que me movió cambios en la Tercera Prueba de Grado de la carrera de Sistemas de Computación de la Universidad.

      Un buen programador es capaz de definir sus programas: sabe escribir especificiones, entiende qué es la documentación y sabe como crear una interfaz hombre-máquina apropiada. El programador debe ser capaz de asegurar la calidad de su programa y predecir su costo, tanto en tiempo como en capital. Es capaz de identificar los componentes básicos de un sistema, delimitándolos y organizándolos para que trabajen armónicamente. Como diseñador, es un arquitecto que define cómo deben construirse sus sistemas.

      Por último, el programador es un estudioso que busca constantemente mejorar sus destrezas. Tiene el hábito de leer, y es capaz de digerir manuales con gusto y celeridad. Un buen programador es un profesional que conoce las herramientas de su profesión, las aplica con destreza, y que constantemente busca mejorar su formación.

      La formación que he descrito puede ser lograda en dos o tres años de estudios superiores, pero creo que es mejor formar el programador a nivel de licenciatura. Un estudiante universitario de licenciatura podría asimilar no sólo lo que he mencionado, sino también complementar su formación con otros conocimientos afines: programación en ambientes de bases de datos, programación concurrente, programación de sistemas, programación por objetos, simulación, ambientes de programación, etc.

      Cuando reconozcamos a nuestros programadores sus calidades técnicas comenzaremos a mejorar nuestros sistemas, que a la postre serán más baratos. Nuestros gerentes deben promover la carrera del programador, evitando que el buen programador se convierta a otro oficio en que tal vez no se desempeñe idóneamente.

      Nuestras universidades están haciendo algunos esfuerzos para promover la creación y mejoramiento de programadores. En la Universidad Autónoma de Centro América, el Concejo Académico de la carrera de Sistemas de Computación ha incluido como Tercera Prueba de Grado para el bachillerato el tópico de programación. En la Universidad de Costa Rica, la cátedra de programación ha venido cambiando los contenidos de los cursos en los últimos tres años, y ahora se ha instaurado una secuencia de cursos que busca impartir, de forma general, las destrezas básicas del programador. En el TEC de Cartago se han venido haciendo esfuerzos en este mismo sentido en los últimos dos años.

      En mi opinión, es en la UACA es donde existe una mayor oportunidad de realizar cambios, dado el ambiente de libertad académica que impera. Específicamente, en el Stvdivm Generale estoy trabajando con mis estudiantes para formarlos no sólo como analistas de sistemas, sino como programadores profesionales.

      Como diríamos a la hora de almuerzo en el Mercado Central: "¡Programar no es cajeta!".

      Como complemento a estas ideas, el lector puede leer la excelente monografía del profesor Edsger W. Dijkstra, padre de la programación estructurada: "Selected Writings on Computing: A personal perspective", Springer-Verlag, 1982. También le ofrezco mis escritos sobre programación en Pascal, los que con mucho gusto enviaré en diskette a quienes me los soliciten. Para esto, puede usted contactarme en la Rectoría de la Universidad.


Indice [<>] [\/] [/\]

Indice
Acerca del autor
Acerca de este documento
[/\] Principio [<>] Indice [\/] Final


Acerca del autor [<>] [\/] [/\]

Adolfo Di Mare: Investigador costarricense en la Escuela de Ciencias de la Computación e Informática [ECCI] de la Universidad de Costa Rica [UCR], en donde ostenta el rango de Profesor Catedrático. Trabaja en las tecnologías de Programación e Internet. Es Maestro Tutor del Stvdivm Generale de la Universidad Autónoma de Centro América [UACA], en donde ostenta el rango de Catedrático y funge como Consiliario Académico. Obtuvo la Licenciatura en la Universidad de Costa Rica y la Maestría en Ciencias en la Universidad de California, Los Angeles [UCLA].

[mailto] Adolfo Di Mare <adolfo@di-mare.com>


Acerca de este documento [<>] [\/] [/\]

Referencia: Di Mare, Adolfo: Licenciado programador, Revista Acta Académica, Universidad Autónoma de Centro América, Número 14, pp [56-57], ISSN 1017-7507, Mayo 1994.
Internet: http://www.di-mare.com/adolfo/p/licprog.htm
http://www.uaca.ac.cr/actas/1994may/licprog.htm

Autor: Adolfo Di Mare <adolfo@di-mare.com>
Contacto: Apdo 4249-1000, San José Costa Rica
Tel: (506) 207-4020       Fax: (506) 438-0139
Revisión: ECCI-UCR, Septiembre 1997
Visitantes:


Copyright © 1997 Adolfo Di Mare
Derechos de autor reservados © 1997 Adolfo Di Mare <adolfo@di-mare.com>
[home] [<>] [/\]