Showing posts with label expresiones. Show all posts
Showing posts with label expresiones. Show all posts

Sunday, October 09, 2016

El ajedrez es un lenguaje


Una de las preguntas más frecuentes que se hacen los ajedrecistas es ¿por qué no mejoro en ajedrez? Y tenemos a muchos jugadores que estudian con ahínco, que trabajan duro, pero que de pronto s estancan y parece que dar el brinco a un nuevo nivel es algo prácticamente imposible. ¿Cuáles son las razones de esto? Yo tengo una teoría que podría explicar qué está pasando:

Miren, el ajedrez es como un idioma. Quienes aprenden desde niños a hablar en un idioma en particular, no lidian con reglas gramaticales, sino que con la práctica y el escuchar cotidianamente cómo hablan las personas mayores, hacen que poco a poco el cerebro de un niño comience a comprender que hay ciertas reglas que encadenan unas palabras con otras, en un orden determinado. Curioso es que cuando un niño está empezando a hablar, o ya habla con cierta soltura, de pronto se equivoca con frecuencia cuando trata de conjurar los verbos irregulares. Los mayores entonces los corrigen y poco a poco se va alcanzando un nivel "competitivo" para expresarse.

El ajedrez es algo parecido. Quien empieza a ver ajedrez desde su más tierna infancia, no se le necesita explicar incluso cómo se mueven las piezas. Si le damos el suficiente tiempo y lo hacemos con frecuencia, el niño podrá descubrir cómo es que las figuras se mueven en el tablero y cuáles son las reglas del mismo. Desde luego que no están de más las explicaciones pero a mí me queda claro que aunque no se le den ningún tipo de argumentos, si se les muestra el tablero con frecuencia y cómo se mueven las piezas, en poco tiempo el niño podrá entender al menos cómo se juega al ajedrez. De hecho, se me ha ocurrido que si a un niño, desde que nace, se le "bombardea" con tarjetas con posiciones de partidas, con las diferentes secuencias que se dieron en ellas, a la larga terminará entendiendo este "lenguaje" y sabrá qué está pasando aunque repito, no se le dé ninguna instrucción hablada.

Con el tiempo, el niño entonces va a la escuela y aprende gramática. Su vocabulario se incrementa y si se le acostumbra a leer al infante, seguro en unos pocos años tendrá una expresión oral y escrita mucho mejor que sus compañeros de clase. Por ejemplo, quien no lee no sabe cómo se escriben las palabras y por eso comete errores de ortografía que parecen "horrores". Leer incrementa el vocabulario.

En ajedrez el "leer" significa repasar las partidas de otros jugadores. Y es incluso más fácil todo porque hay muchos libros que describen las mejores partidas, las más ilustrativas, en donde se hicieron las jugadas más sorprendentes o donde quizás, se encontraron planes estratégicos nada simples que a la larga llevaron a la victoria. Quien lee mucho -valga la analogía- hallará que poco a poco las partidas importantes se vuelven parte de su vocabulario ajedrecístico. Las partidas más ilustrativas pasan a ser el acervo (el vocabulario, pues), del ajedrecista y entonces podrá aplicarlas (podrá hablar con soltura), si el caso lo amerita.

Si seguimos con esta analogía, nos daremos cuenta de algo: quien estudia un idioma, es decir, que no es su lengua materna, encuentra que aprender a expresarse en otro idioma es difícil y se requiere de estudiar y de practicar. Pasemos al ajedrez: si aprendí de grande a jugar al ajedrez, sin duda podré ir acumulando conocimientos y llegar a "expresarme" bien dentro del juego pero... ¿podré jugar como los grandes maestros? Difícil saberlo, aunque claramente si regresamos a la analogía del lenguaje, el escribir textos no nos convierte en Borges necesariamente. Hay algo más en todo esto: algo del manejo del lenguaje, un vocabulario extenso, así como conocimiento profundo de lo que se escribe. Sin embargo, aunque no lleguemos a la erudición de un Borges, bien podríamos podernos expresar lo suficientemente bien para que incluso, eventualmente, alguien se interesara por publicar nuestros escritos.

Y sigamos con la analogía del lenguaje. ¿Cuánta gente podría escribir bien en un idioma que ha aprendido ya de adulto? ¿Qué necesitaría para ello? Probablemente mucha práctica, hacer del idioma extranjero algo como propio, entender las expresiones idiomáticas (¿patrones?) de dicho idioma para poderse expresar más como la gente se expresa localmente en ese idioma en particular.

Entonces, ¿se puede progresar en ajedrez? ¿romper esas barreras invisibles que a partir de cierto nivel parecen no poderse sobrepasar? Sí, sin duda se puede, pero se requiere de aplicarse profundamente en este "idioma" que es el ajedrez. Hay que practicar ("hablar y escribir") en este idioma nuevo tanto como se pueda. No se puede progresar si no se hace un esfuerzo muy grande para que, a la larga, podamos expresarnos en este idioma particular.

¿Entonces se puede llegar a gran maestro? Probablemente sí, pero esto requiere, sobre todo si el ajedrez no fue su "lengua materna", dedicarse quizás de tiempo completo. Y esto, considerando que hay que ganarse la vida, muchas veces no es fácil. Pero más allá de eso quizás por eso es difícil mejorar a partir de haber llegado a cierto nivel. Pasa lo mismo ya sea un idioma extranjero o el nivel ajedrecístico. Vamos, que hablar "mejor" en un idioma nuevo parece difícil a partir de que ya quizás podemos entendernos con la mayoría.

Para mí la analogía -producto de una plática con el Dr. Carlos Torres, matemático/lógico de la Facultad de Ciencias de la UNAM- es estupenda, porque hablar de un idioma o del ajedrez es prácticamente hablar de lo mismo.

Termino con la frase de Bent Larsen: "es un lenguaje marcado por la agresión, por la discusión". O mejor aún, vean la imagen que ilustra este artículo. Para mí esto es ya clarísimo.

Wednesday, December 19, 2012

¿Por qué la programación es difícil?


Programar computadoras es algo realmente difícil. La realidad es que hay que explicarle a la máquina cada cosa que tiene que hacer, sin ambigüedades. Parece fácil pero muchas veces asumimos que le estamos diciendo correctamente las cosas y al probar nuestros programas, hallamos que no resuelve los problemas como esperamos y entonces pasamos al proceso de depuración, de "debugging", para así saber qué diablos está haciendo la computadora que difiere de lo que esperamos que haga.

Pero no sólo es difícil programar por eso. Yo creo que esto tiene que ver con el poder de los lenguajes de programación. De hecho, va más allá de esto. Vamos a extrapolar esto y veremos la razón de la dificultad: se dice que un mexicano promedio tiene unas 300 palabras en su vocabulario. Son muy pocas y no es raro pues expresiones como "pásame la desa, que está encima del dese", o unas más comunes aún: "güey", "pendejo", y toda esta retahíla de groserías que el mexicano cree que maneja perfectamente y que además, nos hace creer que somos muy ingeniosos con el doble sentido, el cual es bastante rupestre, pues finalmente todo se reduce a una connotación sexual.

Pero el chiste es que 300 palabras para manejar toda la cotidianidad parecen pocas palabras, y lo son. Y las palabras finalmente representan ideas. Yo soy de la opinión que quien tiene un pobre vocabulario puede expresar pocas ideas o en el mejor de los casos, le cuesta mucho trabajo elaborar nuevas ideas porque tiene pocas expresiones. Esto lo podemos ver cuando aprendemos a hablar en un idioma extranjero. Es difícil expresarnos porque nos falta vocabulario. Nos faltan expresiones. Y es frustrante en más de un sentido.

El vocabulario se adquiere de diversas maneras, en el trato cotidiano en el trabajo, en la casa, en la escuela, en los centros de entretenimiento, etcétera. Pero se puede adquirir leyendo. Quien lee se hace poco a poco de nuevas palabras, las cuales las empieza a convertir en nuevas ideas. Puede así combinar los nuevos significados que va aprendiendo y de pronto elabora nuevas ideas o bien, puede elaborar la misma idea con diferentes palabras. La lectura tiene esta alternativa.

Igualmente resolver crucigramas nos da nuevas palabras y enriquece nuestro vocabulario, sin duda. Conclusión: lea, hágase de un buen vocabulario, enriquézcalo, que a la larga le podrá permitir expresar más ideas y en el mejor de los casos nuevas ideas.

Ahora, regresando al cómputo, a la programación. Los lenguajes de computadoras tienen un conjunto de palabras reservadas, nuestro vocabulario, para decirlo coloquialmente. En un lenguaje como Pascal habrá unas 30 o 40 palabras (máximo), con las cuales se pueden describir todas las cosas que podamos decir. En esas palabras se incluyen -desde luego- la creación de las estructuras de datos, por ejemplo, como los arreglos, etcétera. Pero en esas 30 o 40 palabras tenemos que expresar todo lo que le queremos decir a la computadora que haga y por ende, a falta de un vocabulario más enriquecido, estamos obligados a buscra las expresiones que nos permitan decirle a la máquina qué hacer. Si estamos limitados en este lenguaje que tiene tan pocos términos, me es claro que expresar las ideas para que la computadora actúe como queremos, puede resultar difícil. Y lo es.

Por ello mismo muchos lenguajes incorporan elementos que nos hacen la vida más sencilla: bibliotecas de funciones que ya hacen una serie de tareas por demás rutinarias. interfaces gráficas con el usuario, etcétera, que en una sola llamada, en un sólo término, en una sola expresión, conjunta una serie de elementos y resuelven un problema en particular de programación. Pero aún así, el nivel de abstracción de los lenguajes de programación no es lo suficientemente alto y estamos condenados a luchar contra esta pobre capacidad expresiva. Por eso, pienso, la programación de computadoras es difícil.