miércoles, 22 de febrero de 2023

¿Qué hacer ante la disrupción de las TIC?

En Twitter vi la siguiente imagen sobre el ritmo de las transformaciones tecnológicas a través de la historia, según datos del portal Our World in Data:

Muchas personas aún se niegan a las transformaciones, insisten en prácticas de hace varias décadas, muchas del siglo pasado y creen que eso es lo apropiado para enfrentar la coyuntura crítica que vive la humanidad. Pero eso es equivocado y peligroso. El camino no es la inercia ni el silencio, el camino es actuar y hablar, como mínimo mantenernos aprendiendo, leyendo, conversando, denunciado, conTICtualizando...

Un ejemplo del problema con las traducciones...

En varios medios aparece la noticia sobre las carreras que la gente se arrepiente de haber estudiado. Algunas de esas noticias citan solo a LinkedIn como la fuente y otros citan a ZipRecruiter. No falta el medio que no cita a ninguno, seguro copió de otro medio...

Me puse a rastrear las fuentes hasta llegar al inicio de todo: La encuesta estuvo a cargo de Qualtrics, contratado por ZipRecruiter. Fueron 1500 los encuestados, todos ellos personas que buscaban trabajo, residentes en Estados Unidos.

Aquí la noticia original en inglés: https://www.ziprecruiter.com/blog/regret-free-college-majors/


Aquí una de las noticias en español: https://www.rcnradio.com/estilo-de-vida/educacion/la-carrera-universitaria-que-mas-personas-se-arrepienten-de-haber


La noticia también muestra el top de carreras que las personas volverían a estudiar, con computación y afines e ingeniería en el top.

Como se dijo en la entrada anterior, desde siempre y aún más en estos tiempos de Inteligencia Artificial, tendencia al autoritarismo, desinformación..., es necesario llegar hasta el papiro egipcio o la pintura rupestre donde algo se dijo por primera vez y considerar los problemas de traducción y contexto...

En este caso, las traducciones al español omiten informar que los datos corresponden a Estados Unidos y a personas que buscan empleo. La traducción no tiene errores, pero se transmite incompleta, con lo cual la comunicación falla.


lunes, 20 de febrero de 2023

El problema de las traducciones

En la entrada anterior se mencionaron algunas dificultades para la comunicación humana, a propósito del auge de la Inteligencia Artificial, ahora que debemos comenzar a comunicarnos con máquinas. Una de esas dificultades es el problema de las traducciones, sobre lo cual trataré de escribir a continuación. Primero recordaré un poco algunas anécdotas personales, luego revisaré algunas referencias al respecto, para finalmente conTICtualizar.

1. Anécdotas

Mi primer encuentro con las traducciones fue en el colegio, a finales de la década de los 90 del siglo pasado. Esos tiempos fueron los últimos en que se aprendía inglés y francés: inglés los primeros cuatro años y francés los últimos dos. La profesora de francés nos daba fragmentos del libro "Les Trois Mousquetaires" y nosotros debíamos traducirlos. Era una época sin Internet ni software para traducir, por lo cual teníamos que exigirnos y aprender un poco.

Cuando uno comparaba su traducción con los compañeros, siempre se identificaban diferencias, entonces hacíamos ajustes antes de entregar, para darle sentido a lo que estábamos leyendo y lograr que los fragmentos unidos correspondieran a una misma historia. A juzgar porque aprobamos los dos cursos de francés, el intento de traducción estuvo bien hecho y, de paso, comprendimos que hay una brecha entre lo que se piensa, se escribe, se traduce y se interpreta, por muy bilingüe que se pueda ser...

Un segundo momento fue en la Universidad, en el pregrado. Llegó a mis manos este libro con abundantes notas de pie de página del traductor:

Sistemas de Bases de Datos, Conceptos Fundamentales Addison-Wesley Iberoamericana, 1994 de Ramez Elmasri y Shamkant Navathe, traducción al español de Roberto Escalona García de Mexico, año 1994.

Una de las notas que más me interesó fue la diferencia entre "relation" y "relationship" y que algunos traducen como "relación" en ambos casos, aunque con dos significados diferentes. Estas confusiones son importantes y no es común que nos las adviertan o aclaren cuando estudiamos directamente en español.

Desde entonces preferí buscar textos en inglés y, en su defecto, traducciones acompañadas de notas aclaratorias, como el ejemplo anterior. Comparaba varios textos en español, buscaba versiones en inglés, contrastaba, profundizaba en las fuentes que citaban... Esto me ayudó mucho en mi proceso de aprendizaje y me generó un "hábito" que aún conservo: dudar siempre, desconfiar siempre y escudriñar hasta encontrar el papiro egipcio donde se dijo algo por primera vez, por lo menos la fuente más cercana a esa primera vez... 

Por ejemplo, hace un par de años escribí esta entrada sobre la expresión "el que sabe hacer hace, el que no enseña". Y en ese tipo de ejercicios también se aprende que el inglés no es suficiente, a veces se llega a una fuente en alemán, ruso, italiano o portugués... incluso se llega a la fuente en español y se hace evidente que las traducciones cambian lo que se quiere comunicar

Hay una tercera anécdota con las traducciones, fue durante mis estudios de Maestría. Leía y buscaba sobre la diferencia entre administración, gestión y gerencia y encontré este artículo colombiano:

Sanabria, Mauricio. “De Los Conceptos de Administración, Gobierno, Gerencia, Gestión y Management: Algunos Elementos de Corte Epistemológico y Aportes Para Una Mayor Comprensión.” Universidad Empresa, vol. 6, no. 13, 2007, pp. 155–94, https://revistas.urosario.edu.co/index.php/empresa/article/view/1040.

Allí reforcé mi perspectiva sobre el problema con las traducciones, por lo menos en el ámbito de las ciencias de gestión o ciencias administrativas y el contexto colombiano. Textualmente:

"...Pues bien, en gran medida, han llegado a nuestro medio en virtud de traducciones de obras de diversos autores, en lo fundamental, justamente, de aquellos de origen estadounidense y europeo.... 
...Los principales medios a través de los cuales se ha dado este fenómeno han sido las traducciones de las editoriales mexicanas, argentinas y españolas, por medio de las cuales, en lo fundamental, hemos logrado tener acceso en nuestro contexto a las principales obras que componen el discurso administrativo..."

Y esa es una constante en Colombia y es parte de la brecha educativa que existe y que seguro origina tantas diferencias y problemas al comunicarnos. Se presenta incluso en contextos académicos, porque algunas personas no leen textos en inglés o no profundizan en las fuentes y se limitan a citar el primer documento en español que logran encontrar en la jungla de Internet.

Esta brecha se complica aún más en el caso de las ciencias de la computación, las TIC y afines, porque el inglés es la lengua base de dichas disciplinas. Cuando se aprende computación en español, se suelen aprender traducciones incompletas o equivocadas. Y el problema crece con el uso de las metáforas, algo muy común en cualquier idioma y muy usado en este tipo de disciplinas creativas, que recurren a símiles con palabras existentes para nombrar las nuevas creaciones e invenciones.

Por ejemplo, la metáfora de "file" y "directory" que en España traducen como "fichero" y "directorio", pero en países como Colombia se han traducido y popularizado como "archivo" y "carpeta". Estas palabras tienen traducciones al inglés diferentes a las originales ("archive" y "folder"), lo cual puede confundir. Como en el caso de "archive", que se refiere a una colección de varios ficheros comprimidos. Como estas, hay muchas otras metáforas, algo que demanda otra entrada independiente, también relacionada con la entrada anterior.

Con estas anécdotas y la experiencia de aprender computación en español y luego en inglés, resulta lógico sostenerse en la afirmación de que las traducciones son problemáticas y dificultan la comunicación entre los seres humanos. Ahora imaginemos la complejidad de comunicarnos con máquinas políglotas, robots entrenados con un corpus de conocimiento gigante en casi todos los idiomas existentes. Por lo tanto, las traducciones hay que leerlas con cuidado y escepticismo, procurando recurrir a las fuentes más primitivas, algo que siempre será difícil y requerirá esfuerzo y tiempo, pero valdrá la pena.

2. ¿Qué hay escrito sobre el tema?

Ahora pasemos de las anécdotas a lo que aparece en la literatura académica (que no siempre es lo mismo que científica).

En materia de traducciones lo primero es recurrir al diccionario y luego profundizar en revistas y libros.  Según el diccionario, traducir consiste en "expresar en una lengua lo que está escrito o se ha expresado antes en otra", por ejemplo, un texto que está en griego, latín, egipcio u otras lenguas antigua, expresarlo en español de nuestra época.

Hay evidencia en la literatura académica de que traducir es una disciplina o arte tan antiguo como la misma escritura y la humanidad. Aquí un artículo en inglés y aquí otro artículo en español. En ambos se encuentra que los estudios bíblicos son un ejemplo de la antigüedad de las traducciones y de los diversos problemas que se enfrentan.

Cuando hablamos de traducciones estamos ante una disciplina que involucra historia, lingüística, antropología y hasta arqueología. En la actualidad también involucra computación, pues se tienen traductores automáticos y hasta Inteligencia Artificial, como el caso del ChatGPT, capaz de entablar una conversación en muchos idiomas y sobre muchos tópicos.

Pero la computación y las TIC no solo son fuentes de traducciones, también son usuarias. Hay un tópico de ingeniería del software llamado "software localization", que estudia lo referente a adaptar un software a otros idiomas y culturas. Por ejemplo, en una ventana se puede tener un menú con la opción "File", lo cual se puede traducir al español como "Fichero" o "Archivo". Como ya se indicó previamente, lo popularizado en Colombia es "Archivo", pero seguramente en México y España prefieran "Fichero".

Para explicar mejor eso de "software localization" se puede pensar en un sitio web cuyo contenido se quiere presentar en varios idiomas. Por ejemplo, el sitio web de la ONU o el sitio web del vaticano. El navegador tiene opciones de traducción automática, pero esas traducciones no siempre corresponderán al mensaje original, por lo que se prefiere que el sitio tenga sus propias traducciones oficiales. Se puede leer un poco al respecto en  este artículo y en este otro.

Lo anterior es un ejemplo de la influencia del contexto en la traducción. El ejemplo anterior era en el contexto de la ingeniería el software, pero se pueden abordar contextos más específicos como el de textos políticos, textos legales, anuncios publicitarios, terminología educativa y hasta en pruebas internacionales. Si queremos dimensionar la complejidad que tienen las traducciones, basta con recurrir al cine y ver la misma película en inglés, en español latinoamericano y en español de España. Y ni hablar del proceso inverso o de otros idiomas.

En la búsqueda de bibliografía sobre este interesante tema, encontré un libro que hace una lista de quince categorías de problemas de traducción en el contexto de economía y presenta treinta y seis ejemplos detallados de traducciones inglés-chino, donde se identifican esas categorías de problema. Dejo aquí la imagen de la carátula del libro y su citación, el vínculo a la versión disponible en Amazon y una imagen con un ejemplo de problema de traducción.

Lai, P.-Y. (2013). The Anatomy of Translation Problems : The Application of Minimal Deviation and the Proportionality Principle in the Translation of Economic Editorials. Chartridge Books Oxford.

Como se aprecia en el ejemplo del libro, se tiene un mensaje en idioma inglés y su traducción a idioma chino. Posteriormente esa traducción en chino se traduce de nuevo a inglés, lo que se conoce como "back translation" o "traducción inversa". Sin saber chino, el problema es claro, el mensaje en chino no corresponde al mensaje original en inglés y esto es algo que se presenta con cualquier otro idioma. Incluso siendo bilingüe, estos problemas de traducciones seguirán existiendo. Ahora imaginemos el presente y futuro con la Inteligencia Artificial gobernando el mundo...

Encontrar este libro me ayudó a reforzar la idea que mis anécdotas habían sembrado y que en mis lecturas había buscado verificar. Así surgió la motivación de escribir esta entrada. Tratando de ser breve, a continuación menciono cada uno de los quince problemas de traducción que aparecen en este libro, sin dar más detalles, dejando la tarea al lector de ir a profundizar.

  1. Distorting a refined statement
  2. Opening up wrong interpretations
  3. Omision
  4. Mistranslation of key words
  5. Distortion of logic
  6. Merging
  7. Mistranslation of technical knowledge
  8. Mistranslation of colloquial expressions
  9. The three-part onion sentence
  10. Contagion
  11. Elaboration
  12. Long word strings
  13. Confusing causal relationships
  14. Mistranslation of pivotal statements
  15. Concise statements with significant implications

El libro, por supuesto, ofrece estrategias y reglas para enfrentar estos problemas y así garantizar la calidad de los textos traducidos. No obstante, la evidencia es contundente y hay que profundizar y llegar a la fuente primaria:  buscar y buscar, leer y leer, pensar y pensar...

Creo que con todo lo anterior podemos dar por demostrada la dificultad que generan las traducciones al comunicarnos y, en consecuencia, los riesgos que esto tiene en tiempos donde la Inteligencia Artificial comienza a posicionarse...

3. ConTICtualizando

Cada persona es un mundo. Esta es una cita muy común, que incluso se usó para titular un libro. Curiosamente la palabra "persona" tiene un origen muy antiguo, en una lengua muerta, el etrusco y significa "máscara". Eso no implica que nuestra naturaleza humana sea una mentira y seamos simplemente una máscara y nuestro verdadero yo esté oculto. Algo hay de cierto en eso, pero no literalmente. Hay que ser cuidadosos con las traducciones. Hay que indagar en la historia, ir más allá de lo evidente, buscar, leer, pensar, escribir, contrastar...

Justo lo que nos hace personas, lo que nos hace seres humanos es esa capacidad para manejar las ambigüedades, la contradicciones, las analogías... para interpretar el mensaje de la otra persona, para comprender a la otra persona. Mucho más allá del mero discurso de la empatía, la asertividad, la diplomacia y lo políticamente correcto, el sentimiento es algo que tenemos los seres humanos que las máquinas aún no pueden imitar. Incluso hay cosas como la capacidad de mentir y engañar que todavía se encuentra a salvo de la Inteligencia Artificial...

A diferencia de los humanos, las máquinas siguen unas reglas predefinidas, programadas por otros humanos, con ciertos objetivos muy específicos. En consecuencia, los problemas de la comunicación entre humanos pueden complicarse cuando usamos Inteligencia Artificial, lo que nos obliga a ser mucho más cuidadosos. En el caso de la academia, la rigurosidad no se puede perder, todo lo contrario, debe fortalecerse. Tampoco se puede perder la humanidad, que implica la honestidad y humildad, un gran sentido de lo ético...

Siguiendo esa idea de la rigurosidad y la ética, me pregunto por tantos artículos y libros "académicos", "científicos" o "de investigación" que han publicado "escritores prolijos". Me pregunto por sus traducciones a idioma inglés y por las traducciones de las fuentes que citan. Me pregunto qué pasará ahora que la Inteligencia Artificial puede escribir un artículo y a muchos les parece simple copiar y pegar. Hay aquí un problema importante que nos exige cambios en las prácticas de lectura, escritura, revisión, evaluación de pares y publicación...

Y ni hablar del contexto meramente educativo. Lo mínimo que podemos hacer como profesores es dar ejemplo de leer y escribir, que sigamos siendo los humanos quienes creemos nuestra realidad, en lugar de subordinarnos a la Inteligencia Artificial... de subordinarnos a quienes están detrás de esa Inteligencia Artificial...

Nota al margen:

En esta entrada se mencionó la palabra ética, que curiosamente se confunde con moral, al parecer por problemas de traducción. Hay evidencia histórica de que Cicerón, uno de los símbolos históricos de las traducciones, introdujo la palabra moral donde debió estar la palabra ética... Posiblemente sea la falta de rigurosidad en las traducciones lo que nos ha conducido a desviaciones éticas o morales...

jueves, 16 de febrero de 2023

Comunicación e Inteligencia Artificial

La Comunicación es la primera C de las 4C propuestas por el marco "P21’s Frameworks for 21st Century Learning", uno de las muchos enfoques para pensar y construir el futuro. Las otras son el pensamiento Crítico, la Colaboración y la Creatividad. Pero la comunicación es la base, sin importar si es comunicación verbal (oral o escrita) o no verbal.

Con C también se escribe Conversación, que es sinónimo de diálogo y un desafío permanente para la humanidad, sobre todo cuando se piensa diferente. Hay un video que compara la conversación con el fuego y propone la necesidad de un punto medio entre un incendio incontrolable que nos queme y un apagón total que nos deje en la oscuridad y el frío.

Ese desafío de comunicarnos ahora se amplifica con la Inteligencia Artificial. Ya no solo debemos comunicarnos entre seres humanos, sino que también debemos comunicarnos con las máquinas que nosotros mismos creamos y que nos amenazan con ser obsoletos. Curiosamente en 2016 hice esta figura para un curso de programación de computadores, hablando sobre el lenguaje y enfocando la programación de computadores como leer y escribir para el computador.

Mi predicción falló por tres (3) años y este año 2023 ya es el momento en que debemos aprender a comunicarnos con robots, por ahora robots software, como el erudito enciclopédico Chat GPT y el artista generador de imágenes MidJourney, entre muchos otros. Pero muy pronto robots hardware...

Aparecen entonces varias preguntas ¿Qué semejanzas y diferencias hay entre conversar (chatear) con un robot en lugar de un humano? ¿Que dificultades nuevas surgen al conversar (chatear) con un robot? Si la humanidad aún no ha resuelto las dificultades de comunicación entre su misma especie ¿podrá enfrentar ahora esta nueva era de comunicación con máquinas?

Antes de perderme en ese mundo nuevo y apocalíptico que es la Inteligencia Artificial, prefiero detenerme en la última pregunta y primero profundizar un poco en las dificultades de comunicación entre humanos, algo sobre lo cual he dado vueltas por largo tiempo en mis lecturas y mis reflexiones individuales. No pretendo hacer una lista exhaustiva, ni tampoco profundizarla, sino solamente un pequeño ejercicio de escribir algunas ideas.

La primera dificultad se disminuye un poco con la Inteligencia Artificial. Se trata de los factores psicológicos, en especial lo referente a sentimientos. La máquina no siente odio, amor, desprecio, miedo, dolor... La máquina no comprende el humor, la ironía, el sarcasmo, los dobles sentidos... La máquina no recuerda y no relaciona sus recuerdos con lo que siente... La máquina no tiene intereses, preferencias, intenciones, anhelos, deseos... La máquina es pre programada, fría e inhumana. Aunque algunos de esos factores psicológicos ya comienzan a incorporarse, aún no se consigue que una máquina imite eso que llamamos humanidad y que ni siquiera los humanos tenemos claro. Esta dificultad puede hacer que la Inteligencia Artificial nos domine al quitarnos la humanidad o puede impedir el avance de la Inteligencia Artificial. Por ahora va ganando lo primero...

Una segunda dificultad son los sesgos, que se reafirma con la Inteligencia Artificial, se relaciona con el pensamiento crítico y es el centro de la discusión ética. Las máquinas son programadas por personas dentro de organizaciones. Ambas tienen sesgos e intereses de todo tipo (económicos, políticos, culturales, religiosos). Las personas tienen una formación académica, experiencias previas, intereses, deseos o anhelos... que influyen al comunicarse y que influyen en la programación que hacen de los robots. Por ejemplo, los prejuicios excluyentes relacionados con la raza, la identidad sexual, la religión, el estrato económico, las ideas políticas, etcétera. En esta figura hay una lista larga de sesgos y en la literatura de pensamiento crítico hay bastantes detalles.

La tercera dificultad está en el lenguaje, pero se relaciona con los humanos y estos la trasladan a las máquinas cuando las programan, en virtud o como consecuencia de las dos primeras dificultades. Se trata de la forma y el fondo del lenguaje, que no se pueden separar del todo. Aquí encontramos los problemas de las traducciones y los recursos lingüístico, como las metáforas y las hipérboles. Planeo escribir luego con más detalle sobre esto, por la influencia que tiene el inglés en la divulgación académica y la brecha de inglés en Colombia y por la abundancia de metáforas en ciencias de la computación, TIC y afines, como la metáfora de la nube (cloud computing) que es la infraestructura que soporta la Inteligencia Artificial de hoy.

Una cuarta y quinta dificultad es el lenguaje no verbal: Primero el uso de imágenes, sonidos, videos, esquemas o diagramas y toda clase de contenidos concretos o que pueden materializarse. Y segundo el uso del lenguaje corporal, el vestido, el perfume, el arte y hasta el silencio. Los separo porque los primeros ya puede generarlos la Inteligencia Artificial, como por ejemplo la imagen que cité al inicio y que dice muchas cosas que pude escribir o que ya he escrito o dicho en otros espacios y momentos. Por otra parte, mi mirada, mis silencios, mis ausencias, mis gestos y muchos otros aspectos de mi humanidad aún están a salvo de la Inteligencia Artificial, aunque no se por cuánto tiempo...

ConTICtualizando, estas cinco dificultades de la comunicación entre humanos son claves si queremos enfrentar un futuro gobernado por empresarios y políticos que ya no piensan ni invierten en tierra, minería, agricultura, ganadería, comercio, turismo... sino que tienen claro que vivimos una época dominada por el conocimiento, más que por los datos y en especial por la computación y las TIC. Ese pasado económico seguirá existiendo, es lógico, se requiere energía para iluminar, abrigar, enfriar, mover... se requiere cultivar alimentos y criar animales, se requiere comprar y vender y viajar... incluso se requiere, más que antes, enseñar y aprender. Pero no será como en los años ochenta del siglo pasado, tampoco será como en los años previos a la pandemia. Y nadie sabe cómo será, tampoco se sabe si aún está a nuestro alcance cambiar lo que algunos expertos predicen para el futuro. Por ahora, para pensar y construir ese incierto futuro debemos repensar, reconstruir y deconstruir el pasado y el presente...


martes, 14 de febrero de 2023

The Psychology of Computer Programming

En este blog he procurado dejar registro de la mayoría de mis lecturas que tienen relación con las TIC (Tecnologías de la Información y las Comunicaciones). Sin embargo, en ocasiones hay lecturas maravillosas, pero densas, que dejo reposar y a las cuales regreso periódicamente, hasta que aparece el momento preciso para escribir, liberar, desahogar... Una de esas lecturas es el libro La psicología de la programación, un clásico de medio siglo que sigue vigente. Espero finalizar de escribir algunas ideas sobre este libro antes de iniciar las clases en la Universidad...

Este libro no se consigue en Colombia, tuve que importarlo hace tres (3) años, después de una pequeña revisión de literatura que hicimos para actualizar y modificar los cursos de programación en la Universidad donde trabajo. Me gusta regresar cada semestre a leerlo, porque muchas de las ideas que aparecen allí siguen vigentes y me aportan en mi tarea de profesor.

El libro fue escrito en 1969 y publicado en 1971 y promocionaron una edición especial por las bodas de plata (Silver) en 2019 y como homenaje póstumo a su autor, Gerald M. Weinberg, quien murió en 2018. Gerald M. Weinberg (1933 - 2018) fue un profesor y científico de la computación, orientado a la psicología y la antropología de la Ingeniería del Software. Parte de su reconocimiento está en lo que se conoce como "Egoless programming", un estilo de programación más cooperativo y menos individual, que sigue vigente en esta época de alta demanda de programadores y que se mencionará más adelante.

Hay un sitio web dedicado a Weinberg y su obra y allí se puede leer una bonita cita de motivación que hoy me inspiró a cumplir ese compromiso pendiente de escribir sobre el libro:

"Each person is important and can mean something for the world. You can do more than you think. Feel inspired by this."

Regresando al libro, consiste en trece (13) capítulos, los cuales están organizados en cuatro (4) grandes partes:

  1. La programación como una actividad humana (human performance)
  2. La programación como una actividad social
  3. La programación como una actividad individual
  4. Herramientas de programación

Puesto que el libro está en inglés, en algunas partes citaré textualmente oraciones y párrafos, aunque procurando mantener la redacción en español.

1. Programming as a Human Performance

La programación de computadores es una actividad humana. Aunque hay máquinas involucradas, implica la sinergia del trabajo individual de grupos de personas. Históricamente hay cierta mística en torno a los programadores, con el salario como uno de esos elementos místicos. En la actualidad sigue siendo así, como puede leerse en esta entrada de 2020 y esta otra de 2021.

Capítulo 1 Reading Programs: Como actividad humana, la programación es muy parecida a leer y escribir textos en lenguaje natural, por lo que su enseñanza y aprendizaje y su puesta en práctica deberían considerar en gran medida la importancia de leer código.

Programming is, among other things, a kind of writing. One way to learn writing is to write, but in all other forms of writing, one also reads. We read examples -both good and bad- to facilitate learning.

Resulta interesante que desde los inicios de los años 70 del siglo pasado ya se hablaba de la importancia de leer código y de leerse código entre pares (algo que aparecerá en capítulos posteriores).

Cuando se leen programas es necesario comprender y descifrar el código escrito antes de juzgarlo (y de juzgar al programador). Hay, por lo menos, cinco (5) cosas que influyen en el código y que originan limitaciones, restricciones que llevan al programador a tomar determinadas decisiones:

Primero las características de la máquina (machine limitations), como la memoria, el procesador, la capacidad de almacenamiento y transacciones de red, entre otras. Aunque en estos tiempos de computación en la nube y virtualización hay más portabilidad e independencia del hardware, sigue siendo muy importante la influencia de la infraestructura tecnológica para la cual se escribe un programa.

Segundo las características del lenguaje de programación (language limitations). Hoy abundan los lenguajes de programación, los hay de todos los sabores y colores y cada quien sigue el ranking que más le favorece para que el lenguaje de su predilección sea el primero del top. Sin embargo, cada lenguaje tiene sus propias limitaciones y sus fortalezas, limitando al programador y originando tareas de programación innecesarias. No existe el lenguaje de programación que sirva para todo.

Tercero las características del programador (programmer limitations), su formación, experiencia y competencia individual. Un programador puede no ser experto en determinado lenguaje, por lo cual termina implementando tareas que el lenguaje ya trae incorporadas. También, el programador puede tener poca experiencia e implementar una solución ineficiente o hasta incorrecta.

"The programmer did not have full mastery of his computer, his language, or himself...There are, of course, programmer limitations other than merely not knowing the full power of the language -vocabulary limitations, we might say..."

En cuarto lugar debe considerarse la historia (historical traces), de las personas, de la empresa, del software. Es probable que un código fuente inapropiado jamás se cambie durante muchos años. La experiencia me enseña que las soluciones temporales se vuelven permanentes, que la inercia es una fuerza muy poderosa y la mediocridad siempre será enemiga de las cosas bien echas.

"...The prehistoric origins of certain pieces of code are almost beyond belief..."

Y en quinto lugar están las especificaciones (specifications), con lo cual aparecen los usuarios que participan en el proceso de desarrollo.

"...We might begin to believe that very little of th coding that is done in the world has much to do with the problems we are trying to solve..." 

"...Writing a program is a process of learning -both for the programmer and the person who commissions the program..."

Capítulo 2 What makes a good program?: Si se quiere estudiar la programación como una actividad humana, es necesario disponer de algunas medidas. Hay que responder qué hace que un programa sea mejor que otro y qué hace que un programador sea mejor que otro. Y no es algo sencillo, no solo porque hay elementos subjetivos que llevan a un programador a juzgar su propio código mejor que el de otros, sino por los diversos aspectos a considerar cuando se lee (y juzga) el código, como las mencionadas en el capítulo anterior. De cualquier manera se requieren medidas y el libro detalla cuatro (4)

Lo primero es cumplir con las especificaciones (specifications), que el programa haga lo que se espera que haga, que sea correcto. Esa es la primera variable que un profesor de programación evalúa (por ejemplo el suscrito). En ocasiones los estudiantes argumentan que sus programas hacen otras cosas, pero no cumplen con lo mínimo solicitado, leer unas entradas y generar con ellas unas salidas previamente establecidas. De ahí la importancia de mecanismos automáticos para evaluar esta dimensión.

En segundo lugar está el cumplimiento del tiempo estimado para escribir el programa, cumplir el cronograma (schedule). Desde un punto de vista organizacional y económico hay que evaluar el costo de no tener el programa o de tener un programa ineficiente o imperfecto.

"...a program that is late is often worthless. At the very least, we have to measure the costs of not having the program against any potential savings that a more efficient program would produce..."

En eso de cumplir el tiempo planeado,  en el contexto educativo el profesor estima un tiempo, usualmente las dos (2) horas de un examen, pero esa estimación no siempre aplica a todos los estudiantes. Yo suelo estimar una (1) hora y la diferencia por encima de ese máximo la considero como parte de la calificación, pero siempre hay sorpresas y debo ajustar... Lo propio sucede en las organizaciones, aunque allí los gerentes de proyecto suelen estimar y se equivocan a menudo...

En tercer lugar está la adaptabilidad (adaptability). Puesto que los cambios son algo muy común en la vida humana, eso se traslada a los programas de computador y se espera que un programa se pueda adaptar fácilmente. Sin embargo, este atributo puede originar que se requiera más tiempo de desarrollo del estimado o que se sacrifique eficiencia u otras variables.

"...the great majority of programs that are writen, especially by professional programmers, remain in existence for a definite life span. And during that span, most of them become modified..."

Y en cuarto lugar está la eficiencia (efficiency), cuya medición no es simple, pues va mucho más allá de solo el tiempo que tarda el programa en ejecutarse. En cursos de Análisis y Diseño de Algoritmos se cómo estimar formalmente el tiempo lógico de ejecución y el uso de memoria en condiciones ideales o abstractas y cómo llevar esas estimaciones a máquinas reales y específicas.

En la actualidad existen y se usan herramientas capaces de analizar el código fuente y evaluar muchas variables, como se menciona en el libro de Ingeniería de Software en Google.

Capítulo 3 How can we study programming?: Los dos primeros capítulos definieron la programación como parte del comportamiento humano. Tal  complejidad implica un enfoque mixto entre lo psicológico, antropológico y sociológico. Muchos argumentan que el enfoque de Weinberg es más antropológico que psicológico. En este capítulo se sugieren cinco métodos para estudiar la programación, con sus correspondientes inconvenientes y recomendaciones.

El primer método es la introspección (introspection), que el mismo autor manifiesta como no científico, pero que conviene tener en cuenta. Se trata de preguntarle al programador, preguntarle al estudiante si hablamos en el contexto educativo. Aunque se introduce cierta subjetividad y sesgo por parte del programador, nada mejor que preguntarle ¿por qué hizo eso, por qué así, cómo cree que podría mejorarse?.

El segundo método es la observación (observation), que involucra fenómenos como el efecto Hawthorne y la misma subjetividad del observador. Aquí hay mucho de técnicas de investigación antropológicas y psicológicos.

El tercer método son los experimentos (experiment), pero hay elementos éticos complejos y difícilmente un programador aceptará convertirse en ratón de laboratorio, aunque ese es el más apropiado para hacer investigación en ingeniería del software.

Un cuarto método es el uso de medidas o variables psicológicas (psychological measurement), para lo cual es clave tener claro qué es lo que se mide y cómo se mide. La complejidad está en la gran cantidad de variables involucradas y que no siempre hay instrumentos para medirlas. Un instrumento común son lo cuestionarios, para lo cual se debe considerar la cultura y de ahí la diferencia entre los métodos en sociología y antropología. Los primeros buscan respuestas dentro de una cultura que conocen y los segundos buscan preguntas para una cultura desconocida y que se quiere conocer. La psicología de la programación parece estar más orientada a esto último.

De la mano con el método anterior está el uso de datos existentes sobre el comportamiento de un programador (using behavioral science data). Este método es retrospectivo, se está mirando el pasado, a veces incompleto, pero es una buena fuente de datos e información para estudiar el fenómeno.

En general no es tarea sencilla el estudio científico de la programación como comportamiento humano. No obstante ya hay más de medio siglo en esta tarea, como el caso del Grupo de Interés en Psicología de la Programación (PPIG). Desde mi experiencia personal en competencias de programación (Competitive Programing), hay oportunidades para seguir haciendo investigación en estos tópicos.

2. Programming as a Social Activity

Ya aceptamos que la programación es un actividad humana, pero no es una actividad individual y solitaria, sino una actividad de grupos de personas, cooperativa, una actividad social. Hay tres niveles de grupos de personas, una especie de jerarquía: el grupo, el equipo y el proyecto, cada una tiene un capítulo en esta parte.

Hay una nota al inicio de esta parte que ajusta su definición de equipo de programación después de cincuenta años:

"...A programing team is a collection of programmers who are trying to produce better products by working together.."

Capítulo 4 The Programming Group: Al hablar de grupos conviene diferenciar los grupos formales e informales dentro de una organización. En ocasiones se cree que las jerarquías de la estructura organizacional rigen el comportamiento de las personas, pero la realidad es otra.

"...But human interactions are never narrow, never straight, and hardly ever in the directions shown an organization charts. Many serious mistakes have been made in imagining that formal structure was the only structure in a organization.."

Es muy importante reconocer, comprender y considerar los mecanismos informales de los programadores, sobre todo si se quieren implementar transformaciones o investigar.

Otro elemento muy destacado de este capítulo es lo que se conoce como "Egoless programming". Entre muchas otras ideas aparece la necesidad de aceptar la posibilidad de errores y de corregirse mutuamente entre pares. Hay un decálogo que se extrae de este capítulo y que muchos usan como mandamientos, pese a que el profesor Weinberg afirma que hay muchos malentendidos sobre su propuesta. Dejaré este tema y el decálogo para detallar en otra entrada posterior...

Capítulo 5 The Programming Team: Un grupo de programadores no es un equipo, el equipo implica un problema más grande y mucho más de dos o tres programadores trabajando juntos. Tiene mucho que ver con la experiencia de los programadores,  la habilidades  de trabajo en equipo y de  liderazgo, así como la comunicación y la resolución de conflictos. Este y el siguiente capítulo están más cercanos a lo que llamamos Ingeniería de Software y no tanto solo la programación y siguen vigentes, a juzgar por el libro citado previamente de Ingeniería de Software en Google.

"...The lack of experience in programming becomes more evident as the size of the system to be produced increases. Although we have seen that the programmer does not, ideally, work in isolation, even when de problem is small, there is a social difference between small programs and large ones..."

Cuando se trata de equipos es importante  considerar al menos cuatro cosas:

  1. La conformación de los equipos, su tamaño, la asignación y distribución de roles y responsabilidades. Usualmente hay una relación entre la arquitectura subyacente y  la organización del equipo.
  2. Los mecanismos como se establecen y aceptan las metas individuales y del equipo, las reglas de juego cuando hay errores y fallas y el código de conducta para ser efectivos y mantener una unidad entre las personas, pese a los inconvenientes que puedan derivar del proyecto.
  3. El liderazgo del equipo y la designación, formación o descubrimiento de los líderes. En este caso el liderazgo no se puede entender como posiciones de autoridad y poder, jerárquicas, sino como un habilidad para influir en las personas y lograr que se cumplan las metas, más allá de mandar y obedecer. En el contexto de programadores no funciona el autoritarismo, se requieren líderes democráticos y capaces de generar motivación,  no tanto administradores y jefes clásicos. Esto es algo que sigue vigente, pues en materia de TIC y programadores hablamos de creatividad y  colaboración, no tanto de imposiciones y obediencia.
  4. El manejo de las crisis de los equipos, resolución de conflictos, comunicación efectiva, entre otros. Desde el reclutamiento hasta el cierre de un proyecto o la promoción o traslado de un programador involucran aspectos humanos, en contraposición de la naturaleza técnica de la programación.
Este capítulo es algo que solo logran dimensionar y comprender quienes realmente han tenido la oportunidad de convivir varios meses con programadores en equipos grandes para proyectos grandes y reales. En lo académico un proyecto de clase o un trabajo de grado no pasa de un grupo de máximo cinco personas, estudiantes, quienes suelen obedecer a un profesor. En este aspecto hay un desafío y oportunidad en  la academia y la investigación, que nos demanda acercarnos más a las empresas y seguir de cerca el mundo de verdad...

Capítulo 6 The Programming Project: Como dice el libro de Ingeniería de Software en Google, la diferencia entre programación e ingeniería de software está en la escala de tiempo, del problema y del equipo. Al hablar de proyectos estamos hablando de coordinar varios equipos, de escalar el liderazgo, de gestionar los cambios y de medir el rendimiento: de los productos, del proyecto, de los equipos, de los grupos de trabajo y  de cada individuo programador...

Este capítulo, aunque escrito hace medio  siglo, sigue vigente y resume mucho de la abundante teoría, libros y artículos de ingeniería del software. A lo mejor un error que algunos cometen es olvidar la naturaleza humana de la programación, deshumanizar esa actividad y centrarse en modelos burocráticos clásicos, donde priman las metodologías y el cumplir a pie de letra las prácticas estandarizadas. Suficiente con buena comunicación, buen trabajo en equipo y buen liderazgo, algo que no siempre es fácil juntar para llegar al éxito.

3. Programming as a Individual Activity

En contraste con la parte 2, que se refirió a los aspectos sociales, esta tercera parte agrupa cuatro (4) capítulos, que se centran en la individualidad de un programador, sin que esto implique, como ya se dijo, un trabajo en solitario:

  • Capítulo 7 Variations in the Programming Task
  • Capítulo 8 Personality Factors
  • Capítulo 9 Intelligence, or Problem Solving Ability
  • Capítulo 10 Motivation, Training, and Experience
Estos capítulos son claves para reclutamiento de personal en las empresas y también para los profesores que formamos en primera instancia ese talento.

El el capítulo 7 se inicia con esta frase:

"...Programming like loving is a single word that encompasses an infinitude of activities..."

Esta frase se refiere a que hay diversas tareas de programación [y de ingeniería del software]. Por ejemplo, hoy se habla de desarrollador backend, frontend y full stack, tester, arquitecto, ingeniero cloud, devops y muchos otros roles y perfiles, que implican tareas muy específicas y diferentes pero relacionadas entre si. Además, dependiendo de los requerimientos, la organización y la etapa del proyecto,  hay variaciones en las tareas que debe realizar cada programador. Y, por otra parte, hay diferencias entre un programador novato y uno profesional, o lo que actualmente se conoce como junior y senior.  

En ese sentido, no es  sencillo juzgar como bueno o malo el trabajo de un programador y es aún más complejo establecer comparaciones entre dos programadores. Desde mi experiencia, solo en lo referente a programación, las competencias (maratones) ayudan a establecer ciertos niveles, pero es solo una fotografía, una instantánea del desempeño en un momento determinado. Adicionalmente, aunque la individualidad es relevante y es el foco de esta parte del libro, siempre se trabaja en equipo, no es posible desligar la influencia de lo social en lo individual. Por lo tanto,  un programador podría ser excelente en un equipo determinado, pero con otro equipo podría tener un rendimiento inferior o fracasar totalmente.

Pero es necesario evaluar cada programador y compararlo con otros. Para tal efecto se puede recurrir a cada uno de los tres criterios que se exponen en los siguientes capítulos:

El capítulo 8 habla sobre la personalidad, que puede variar, dependiendo de la organización, el equipo de trabajo, el proyecto y muchos otros aspectos del entorno. Hay diversos instrumentos y mecanismos para evaluar la personalidad y así ubicar a una persona en la tarea de programación más acertada.

¿Qué define a determinado programador: Es introvertido, comunicativo, propositivo, crítico, humilde, asertivo, superficial, meticuloso, ordenado, divergente, líder...? Son muchas las variables de personalidad y no hay que engañarse: en un proyecto, bajo determinadas condiciones de la organización, una persona podría asumir el rol de líder y hacerlo mejor que cualquier otro miembro del equipo. Pero en otro proyecto o bajo otras condiciones, esa misma persona podría desempeñarse mejor como un programador experto, cumpliendo con entregables y tiempos claramente definidos...

Con el tiempo, un buen programador que llegue a ser líder y gerente,  posiblemente logre aprender a identificar perfiles y a sacar lo mejor de cada persona, que es lo ideal para potenciar el talento, retenerlo y de paso lograr el éxito en los proyectos y los negocios...

El capítulo 9 se aleja de la personalidad, cuya evaluación podría ser bastante subjetiva y da paso a la capacidad cognitiva, la inteligencia y las habilidades de resolver problemas abstractos y  complejos, como los problemas matemáticos o de computación. Al igual que la personalidad, existen muchos test de inteligencia y son muchas las variables involucradas.

Éste capítulo deja planteada la pregunta de si la inteligencia es lo mismo que la habilidad de resolver problemas, si es una condición necesaria o es un super conjunto. En la actualidad se habla de Pensamiento Computacional (Computational Thinking) y desde esa disciplina floreciente hay nuevas perspectivas y preguntas...

Finalmente, el capítulo 10 se centra en la motivación, el entrenamiento y la experiencia. La experiencia se gana con el tiempo y la densidad y calidad del trabajo, pero no es suficiente para ser un buen programador. Un buen programador siempre está motivado y se mantiene entrenando.

Por la experiencia en maratones de programación, entrenar es la clave, pero para entrenar hay que mantener la motivación por largo tiempo, lo cual es un desafío tanto en el contexto académico como en el contexto laboral. La pregunta entonces para profesores y líderes de equipos y empresarios es ¿cómo mantener motivado a un  programador para que su desempeño sea el ideal? y de paso ¿cómo mantener motivado a un equipo de programadores?.

Igual que las partes anteriores, aunque es un libro escrito hace más de cincuenta años,  muchas de las ideas planteadas siguen vigentes, incluso con el auge de la Inteligencia Artificial y la explosión de cambios tecnológicos que vivimos en esta época. Sin duda este libro es de lectura obligada para líderes de TI en organizaciones y para los profesores que intentamos enfrentar el difícil reto de formar talento digital...

4. Programming Tools

Esta última parte no la detallaré por capítulos, no obstante los listo a continuación:

  • Capítulo 11 Programming Languages
  • Capítulo 12 Some Principles for Programming Language Design
  • Capítulo 13 Other Programming Tools

Los sistemas son complejos y la computación es compleja, ya lo dijo Dijkstra en su conferencia On the cruelty of really teaching computing science. Y también lo es la programación, como algo más específico, pero que es el núcleo de la computación. Además de los aspectos humanos individuales y sociales, programar involucra muchas herramientas: el hardware, el sistema operativo, el lenguaje, el entorno de desarrollo (IDE Integrated Development Environment), los componentes para depuración, pruebas, documentación, control de versiones y muchos más.

En ocasiones un programador promedio que use y domine muy buenas herramientas podría rendir mucho más que uno experto y del top mundial sin herramientas o con herramientas pobres. Además, las herramientas dependen del proyecto y la  necesidad.

En el caso de los lenguajes de programación hay una Torre de Babel permanente. El libro cita otro libro contemporáneo: Programming Languages: History and Fundamentals de Jean E. Sammet de 1969, cuya  portada referencia una pintura de Pieter Brueghel. Para esa época la cantidad de  lenguajes de  programación eran 118 y a hoy son más de 8000. Y cada día aparecen nuevos ranking de lenguajes y muchos lenguajes antiguos se niegan a morir, como por ejemplo COBOL.

El  lenguaje de programación es la clave y hay que saberlo seleccionar, sobre todo cuando se trata del contexto educativo. ¿Qué lenguaje usar para aprender a programar por primera vez? ¿Qué entorno de desarrollo? ¿Qué herramientas usar? Yo pienso que sería interesante un aprendizaje multilenguaje, como yo aprendí, con un libro que usaba BASIC, COBOL y C de los cuales luego salté a C++, Java y muchos otros, hasta JavaScript y Python que hoy tienden a dominar en popularidad...

* ConTICtualizando

Releyendo este libro, como cada inicio de semestre desde hace cuatro (4) años, encontré unas notas escritas a mano y recordé que siempre comenzaba a escribir sobre el libro y jamás finalizaba. Siempre aparecen otras tareas, otros compromisos y en últimas es un libro viejo, de hace más de medio siglo.

Pero este semestre había una diferencia y es que había leído y escrito algo corto sobre un libro reciente y relacionado con el mismo tema: el libro de Ingeniería de Software en Google. Ese contraste y la frase de motivación de Weinberg me llevaron a cumplir la tarea pendiente...

La moda por estos días es la Inteligencia Artificial, cosas como el Chat GPT3 y las herramientas inteligentes generadoras de contenidos digitales. El hombre ha fabricado su propia obsolescencia y hasta la programación es obsoleta, por lo menos la programación tradicional. El desafío académico y de negocio es gigante, aunque muchos aún no logran comprenderlo o aceptarlo.

Este libro, que corresponde a los orígenes de la computación, es propicio para estos tiempos en que nace una Inteligencia Artificial de verdad, que ya no es una promesa ni ciencia ficción. Ya están aquí los seres artificiales e invisibles, escondidos en la máquina y que remplazarán a quienes no cambien, ni se adapten ni evolucionen...

A lo mejor es tiempo de escribir The Psichology of Artificial Intelligence, antes de que la inteligencia artificial escriba The history of Natural Intelligence y pasemos al olvido...


viernes, 3 de febrero de 2023

Cartas a quien pretende enseñar - Paulo Freire - Parte II

... continuación de de la Parte I 

Quinta Carta: Primer día de clase

Freire recuerda que el conocimiento es una construcción social inconclusa y no hay verdades definitivas, por lo que sus textos buscan provocar, desafiar a los lectores,  para que su práctica mejore en función de un diálogo crítico que se genera en el ejercicio de leer y escribir.

Además, recuerda que los maestros son seres humanos, con vulnerabilidades, con sentimientos y emociones, incompletos y  en crecimiento diario a través de su práctica educativa. E igual de humanos son los estudiantes, que son iguales junto al maestro, aunque con roles y contextos diferentes.

Y el conocimiento no es solo  teórico o solo práctico cotidiano, sino que la teoría y el contexto real se reconcilian dialécticamente, por lo que se regresa a la primera carta, sobre leer el mundo y leer la palabra, sobre la educación como un ejercicio de observar, leer, escribir, pensar, repensar, soñar y trasformar, la palabra y el mundo real, las emociones y el conocimiento,  el discurso y las prácticas...

La carta cuenta una anécdota triste, pero significativa. En una zona rural la maestra le pregunta a un niño ¿acostumbras soñar? y el niño responde "no, yo solo tengo pesadillas". Esto nos regresa a la segunda carta sobre el miedo y es eso lo que sucede en una primera clase y en cualquier clase, no solo de un profesor nuevo y sin experiencia, sino de cualquier profesor.

Es un miedo que debe superarse con todas las cualidades relacionadas en la cuarta carta, con humildad, con amorosidad, con valentía, con seguridad...

La carta cierra nuevamente con el llamado a la acción y la visión política de la educación y  el maestro:

"...En una sociedad como la nuestra, de tan robusta tradición autoritaria, es de vital importancia encontrar caminos democráticos para el establecimiento de límites para la libertad y la autoridad con los que evitemos la licencia que nos lleva hasta el 'dejemos todo como está para ver cómo queda', o al autoritarismo todopoderoso..."

Sexta Carta: de las relaciones entre la educadora y los educandos

Profesores y estudiantes somos seres humanos, iguales, pero con un contexto diferente y unos roles diferentes, un contexto que incluye los antecedentes, la actualidad y los sueños de vida. El profesor tiene la responsabilidad de establecer una relación amorosa con los estudiantes, sin autoritarismos, pero sin extremos de indisciplina.

La relación del profesor y los estudiantes debe estar fundamentada en el testimonio del profesor, que es la coherencia entre su discurso y sus acciones, que lo que el profesor dice en clase sea consistente con su vida cotidiana.

El profesor debe conocer el contexto de sus estudiantes, su realidad y debe procurar que los estudiantes conozca  la realidad del país, de la sociedad, que relacionen la teoría con la vida real. Eso implica la lectura de noticias, la discusión sobre programas de radio o televisión que se relacionen con lo que se enseña y aprende. Nuevamente se regresa  a las cartas anteriores sobre leer, escribir y pensar el mundo y la palabra.

Es recomendable que el profesor tenga como práctica de su acto educativo el registrar, escribir, sobre lo que sucede a diario en la clase con sus estudiantes: "observar, comparar, solucionar, seleccionar y establecer relaciones entre hechos y cosas...". Es básicamente un ejercicio de investigación educativa permanente, que retroalimenta la práctica educativa.

Finalmente, la relación entre maestro y estudiante debe estar mediada por un diálogo permanente, en lugar de  una instrucción autoritaria. Se trata de propiciar unas relaciones democráticas, donde los estudiantes reciben el ejemplo de un profesor que se reconoce como sujeto político, que construye conocimiento son sus iguales, tanto compañeros como estudiantes, buscando realizar los sueños individuales y colectivos de cambiar la sociedad...

Séptima Carta: De hablarle al educando a hablarle a él y con él; de oír al educando a ser oído por él

Siguiendo la idea de la carta anterior, la relación entre profesor y estudiante es una relación de  diálogo y crítica permanente. Pero a veces se cae en dos extremos equivocados en torno a este relación:

El extremo del profesor autoritario, que siempre habla y sus alumnos simplemente oyen y repiten y acatan, sin ser escuchados, sin voz ni voto, sin sueños ni posibilidades de un desarrollo individual y social. Y el extremo del esponateneísmo licencioso, que sigue el lema "dejemos todo como está para ver cómo queda", en el que los estudiantes son abandonados, nadie les habla ni los escuchan.

Lo que se requiere es propiciar el gusto por la pregunta, por la crítica, por el debate, en el marco del respeto, la tolerancia, la humildad y la amorosidad, buscando el saber y la transformación social. De ahí que esta carta cierre con estas palabras:

"Y si soñamos con la democracia debemos luchar día y noche por una escuela en la que hablemos a los educandos y con los educandos, para que escuchándolos podamos también ser  oídos por ellos"

Octava Carta: Identidad cultura y educación

Esta carta pone el dedo en la llaga respecto a las diferencias culturales, sociales y económicas entre profesores y estudiantes. Introduce la noción de identidad cultural que está relacionada con la noción de clase social: no somos solo lo que heredamos de nuestras familias y contexto, pero tampoco somos solo lo que adquirimos, en cambio,  somos una relación dinámica entre ambas cosas.

Los seres humanos estamos programados para aprender todo el tiempo, pero no estamos determinados a ser algo en particular y específico. Por el contrario, el estar programados para aprender nos permite estar en cambio permanente, un cambio que es primero una decisión individual, mediada por el maestro, pero  una decisión que no se puede forzar autoritariamente.

Por eso el profesor debe conocer, respetar y considerar el contexto del estudiante, su identidad cultural y en un diálogo permanente el estudiante  podrá descubrir, comprender y aceptar que debe cambiar su forma de hablar  y escribir, sus prácticas y su pensamiento.

La enseñanza y el aprendizaje son un ejercicio democrático y social, en el que también el profesor descubre y aprende de sus estudiantes y su contexto y en el que los estudiantes aprenden a ser agentes de cambio social y militantes políticos.

"La escuela democrática que precisamos no es aquella en la que sólo el maestro enseña, en la que el alumno sólo aprende y el director es el mandante todopoderoso."

Novena Carta: Contexto concreto - Contexto Teórico

Siguiendo las tres cartas anteriores (seis, siete y ocho),  la teoría y la práctica no se pueden separar, su relación es dialéctica y el profesor debe saber interpretar el contexto y realidad de los estudiantes y del momento en que se enseña. Los seres humanos no podemos ser autómatas que repetimos hábitos sin conocer, comprender y aceptar un por qué, una razón de ser.

En ese sentido, hay un conocimiento práctico popular de los estudiantes, relacionado a su contexto social y cultural, a su clase. Y es tarea del profesor propiciar en sus estudiantes la reflexión, el pensar, el leer y el escribir sobre su mundo. Y luego repensar, releer y reescribir según la teoría. Como en la primera carta, reconciliar el mundo y la palabra, pensamiento y realidad.

Por lo tanto, es clave poner de manifiesto, con respeto, tolerancia y amor, el contexto del estudiante:

"Una cosa es el niño hijo de intelectuales que ve a sus padres ejercitando la lectura y la escritura, y otra es el niño de padres que no leen la palabra y que, a lo sumo, no ven más que cinco o seis carteles de propaganda electoral y uno que otro comercial."

En una sociedad marcada por la desigualdad y el autoritarismo, se reafirma la relevancia de la educación como acto político, para transformar la sociedad y conseguir que los estudiantes rompan las barreras sociales y consigan alcanzar sus sueños:

"Desafiar al pueblo a leer críticamente el  mundo siempre es una práctica incómoda para los que apoyan su poder en la inocencia de los explotados."

Décima Carta: Una vez más, la cuestión de la disciplina

A lo largo de las cartas anteriores se ha insistido en la necesidad de una disciplina intelectual: la disciplina de leer textos a diario, de pensar y escribir, de observar, analizar y relacionar hechos y textos, de leer, pensar y escribir el mundo y la palabra. Es una disciplina que debe nacer del maestro, para que sea testimonio a sus estudiantes y estos también la adopten y desarrollen.

Esa disciplina va de la mano con el soñar, con la curiosidad, con la rebeldía, el gusto por la aventura y la osadía, pero manteniendo unos límites que equilibren esa visión de libertad y autoridad democráticas.

Se trata de una educación para una ciudadanía con "responsabilidad política, social, pedagógica, ética, estética y científica", con una disciplina que evita el extremo del autoritarismo y la obediencia y el otro extremo del espontaneísmo licencioso, en el que todo vale o todo se deja como está

"La ciudadanía realmente es una invención, una producción política... Y es por eso mismo que una educación democrática no se puede realizar al margen de una educación de y para la ciudadanía.."

Últimas palabras: Saber y crecer todo que ver

Las cartas finalizan con unas palabras finales que reiteran el caracter político de la educación y por tanto la responsabilidad que tenemos como maestros. Somos seres programados para aprender, pero no estamos determinados, nuestra educación, nuestro aprendizaje no tienen límites y podemos crecer a través de la educación, un crecimiento individual que nos permite hacernos ciudadanos capaces de transformar la sociedad.

"...que el saber de las minorías dominantes no prohíba,  no asfixie, no castre el crecer de las inmensas mayorías dominadas"

ConTICtualizando, estas cartas de Paulo Freire son una lectura obligatoria de cualquier profesor y conviene reconsiderar estas ideas a menudo, en especial cada inicio de año y semestre. Conviene recordar nuevamente las cinco ideas que extraje como resumen al inicio de esta pequeña reseña:

  1. La educación es un acto político, colectivo y tiene un papel fundamental en la sociedad.
  2. El maestro tiene una responsabilidad ética y política, lo cual le implica un profesionalismo en todos los aspectos: físico, emocional e intelectual, siempre en función del contexto social y de sus estudiantes.
  3. La educación, el enseñar y aprender, como procesos sociales, no son separables y no involucran a un solo individuo ni tampoco a un par de individuos desconectados y lejanos, sino que involucra a un colectivo de personas que deben construir la sociedad juntas.
  4. La educación es un todo complejo y en desarrollo, en evolución permanente y no se puede caer en la simplificación, en la dicotomía enseñar y aprender, leer y escribir, teoría y práctica, maestro y estudiante, aprobado y reprobado... Es un no rotundo a la educación como mera burocracia.
  5. Son principios o valores clave de la educación la libertad, igualdad y diversidad, comunicación y colaboración.