Profesor de Informática: ¿Quién debe programar?

Como muchos que trabajan con computadoras y otras tecnologías de la información, disfruto programando. Comencé a programar cuando estuve expuesto por primera vez a las computadoras en la escuela secundaria en la década de 1970, cuando casi todo lo que podías hacer con las computadoras requería programación. Como muchos en ese momento, el primer lenguaje de programación que aprendí fue BASIC. Posteriormente, pasé por muchos de los lenguajes de programación comunes de las décadas de 1970 y 1980, incluidos PL/1, Pascal y C (aunque, por alguna razón, nunca aprendí FORTRAN o COBOL). Incluso incursioné un poco en el lenguaje ensamblador durante mi beca de postdoctorado en informática médica a fines de la década de 1980. Una vez que comencé mi puesto en la facultad académica de informática biomédica en 1990, comencé a seguir el ejemplo de los lenguajes de programación de los estudiantes y otros aprendices, a través de Perl, Python, R y otros.

Pero a medida que ascendía en las filas del liderazgo académico, mi tiempo para programar disminuía. Todavía tengo ráfagas periódicas de aprendizaje y programación ahora, pero no tengo el tiempo sostenido disponible para ser productivo con ellas. De alguna manera, la programación es similar a la práctica de la medicina para los médicos que trabajan en informática académica: uno puede mantenerse al día con el conocimiento de la medicina clínica, o incluso dominar el acceso al conocimiento a través de herramientas modernas, pero aún así la práctica de la medicina requiere una masa crítica de compromiso de tiempo para que uno siga siendo un médico eficaz. Aprendí esto a principios de la década de 2000 cuando mi trabajo en informática superó mi capacidad para brindar atención al paciente de manera efectiva, especialmente tratando de ejercer como internista de atención primaria.

Curiosamente, a veces entro en conversaciones con médicos que se están formando en informática y desean dedicar una gran cantidad de tiempo y esfuerzo a la programación. Algunos de ellos pueden lograrlo, pero como les señalo a muchos, probablemente sean demasiado caros para ser programadores (incluso cuando los salarios de los programadores de alto nivel están llegando a los estratos más bajos de los salarios de los médicos). Además, los médicos tienen conocimientos y perspectivas que pueden ser más útiles para tareas distintas a la programación, como el pensamiento conceptual y el liderazgo clínico.

En realidad, es cuestionable dejar la programación a los académicos, incluidos los investigadores biomédicos. Un análisis reciente analizó un repositorio de conjuntos de datos de replicación y código publicado en Harvard Dataverse Repository entre 2010 y 2020 (1). Descubrió que aproximadamente las tres cuartas partes de los programas R no se ejecutaron correctamente, aunque hubo algunas mejoras cuando se aplicó la limpieza del código.

Otro desafío es que el código a veces lo mantiene un pequeño número o incluso una sola persona, este último en el caso de un físico de partículas que fue el único encargado de mantener un programa de la década de 1980 y ahora se retiró (2). Algunos han expresado su preocupación por el progreso continuo en el campo. El trabajo anterior encontró problemas similares en el análisis de MRI funcional (3) y química computacional (4). Y muchos genetistas han tenido que lidiar con idiosincrasias como la propensión de Microsoft Excel a cambiar los nombres de los genes a fechas (p. ej., 1 DE MARZO a 1 de marzo) (5).

Por cierto, de ninguna manera estoy defendiendo que los estudiantes de educación superior de hoy en día, especialmente en los campos de la ciencia, no aprender programación informática como parte de su educación. La programación es una habilidad y disciplina importante, que facilita el pensamiento crítico y lógico. Dado que las computadoras juegan un papel importante en tantas disciplinas basadas en el conocimiento en los tiempos modernos, es fundamental desmitificarlas y permitir que se utilicen de manera más efectiva en todas las disciplinas científicas.

Otro desarrollo importante a lo largo de los años ha sido la aparición de herramientas que permiten la gestión y manipulación de datos con cantidades mínimas de programación. Probablemente el primer ejemplo de esto fue la hoja de cálculo. También cabe destacar los paquetes de software estadístico que permiten ejecutar una miríada de pruebas estadísticas con poca o ninguna programación. Por supuesto, en ambos ejemplos, uno aún debe comprender sus datos y las inferencias apropiadas extraídas de ellos. Otro ejemplo más reciente de esto son paquetes como Naranja, que proporcionan una interfaz de programación visual para muchos métodos de ciencia de datos y aprendizaje automático. Tendré más que decir sobre Orange en una publicación futura.

También podemos obtener información del desarrollo reciente de ChatGPT. Uno de los primeros usos prominentes ha sido pedirle que escriba código para funciones específicas en diferentes lenguajes. Si bien ChatGPT produce un código que se parece a lo que se solicita, los sitios de soporte de programación como Stack Overflow han prohibido las publicaciones de dicho código porque, aunque parecen correctos, a menudo hay errores sutiles u otros problemas (6).

Está claro que siempre habrá un papel para aprender y explorar con la programación informática. Pero dada la complejidad del software moderno y la necesidad de que los programas sean robustos, correctos y brinden seguridad, aquellos que disfrutan de la programación deben ser realistas sobre el compromiso requerido para llevarlo a cabo a niveles de “fortaleza industrial”.

Referencias

1. Trisovic, A., Lau, MK, Pasquier, T., Crosas, M., 2022. Un estudio a gran escala sobre la calidad y ejecución del código de investigación. Datos científicos 9, 60. https://doi.org/10.1038/s41597-022-01143-6

2. von Hippel, M., 2022. Programa informático crucial para la física de partículas en riesgo de obsolescencia. Revista Cuanta. https://www.quantamagazine.org/crucial-computer-program-for-particle-physics-at-risk-of-obsolescence-20221201/

3. Hirschler, B., 2014. Exclusivo: un problema de software genera dudas sobre los datos utilizados para aprobar algunos medicamentos. Reuters. http://finance.yahoo.com/news/exclusive-software-issue-casts-doubt-over-data-used-121215317–finance.html

4. Eklund, A., Nichols, TE, Knutsson, H., 2016. Falla de clúster: por qué las inferencias de fMRI para la extensión espacial han inflado las tasas de falsos positivos. Proc Natl Acad Sci USA 113, 7900–7905. https://doi.org/10.1073/pnas.1602413113

5. Vincent, J., 2020. Los científicos cambian el nombre de los genes humanos para evitar que Microsoft Excel los malinterprete como fechas. [WWW Document]. El borde. https://www.theverge.com/2020/8/6/21355674/human-genes-rename-microsoft-excel-misreading-dates

6. Vincent, J., 2022. Las respuestas generadas por IA están temporalmente prohibidas en el sitio de preguntas y respuestas de codificación Stack Overflow. El borde. https://www.theverge.com/2022/12/5/23493932/chatgpt-ai-generated-answers-temporally-banned-stack-overflow-llms-dangers

Fuente del artículo

Deja un comentario