[7 de 97]Aprende un nuevo lenguaje
El axioma de hoy (tomado del libro 97
things Every Software Architech Should Know) dice:
"Learn a new
language"
Burkhardt Hufnage.
Burkhardt
Hufnage es arquitecto de software lider en
LexisNexis. Recientemente
participó en el
JavaOne del 2008 con
el tema "
building better user
experiences".
To be successful as an architect,
you must be able to make yourself understood by people who don’t speak
your native tongue. No. I’m not suggesting you learn Esperanto or even
Klingon, but you should at least speak basic Business, and Testing.
And, if you aren’t fluent in Programmer, you should make that a top
priority.
...
Neither
group understands how the other thinks, or what half of the words they
use means. This leads to mistrust and miscommunication. It’s a basic
psychological principle that people are more comfortable with those who
are similar to them as opposed to those who are different from them.
Imagine
how the above scenario might change if the architect were able to
explain the issues to the business folk in terms they understand and
relay the business issues to the programmers in terms they understand.
Instead of surprise and mistrust, the result would be agreement and
approval.
I’m not saying that learning multiple
languages will
cure all your problems, but it will help prevent the miscommunications
and misunderstandings that lead to problems.
Quisiera abordar la importancia de este axioma desde dos perspectivas
distintas, por un lado la que comenta
Burkhardt
Hufnage,
y por otro, algo que creo
muchos hemos escuchado con respecto a la importancia de aprender un
nuevo
lenguaje
de programación.
La ventaja de aprender un nuevo lenguaje:
- Como "facilitador" para la comunicación entre distintos
"capas",
reduciendo con ello el efecto "telefono
descompuesto".
Haciendo un poco de memoria,
y a
manera de anécdota/ejemplo, recuerdo que hace varios
años
durante un proyecto para un canal de televisión, el usuario,
ademas de darnos reflexiones
existenciales interesantes, de repente nos hablaba en su "
lenguaje" y esperaba que nosotros entendiéramos perfectamente lo que decía:
"Pues bueno, la parrilla de
programación esta quedando bien; no se les olvide que
requiero un reporte con los targets más
solicitados; remarquen ABC+CD+.
Para las agencias, quiero algo que les recuerde que: compras por CPM
no aplican en PRIME
TIME . Ya la próxima semana veremos como meter la conciliación
en la siguiente versión."
Los primeros meses del proyecto fueron días en los que teníamos
que combinar la codificación de la aplicación con clases
express de mercadotecnia! XD
Recuerdo también que en algún libro leí que "para comprender una
unidad
de conocimiento, primero debemos conocer su terminología
básica."
Con seguridad a todos nos ha tocado un escenario similar, un escenario
en dónde nos percatamos que, mientras más dominemos el
"
lenguaje" del cliente
evitamos errores de interpretación y nos
acercamos más a sus requerimientos. En ocasiones el vocabulario
es tan complejo que tenemos que reconocer que requerimos de un
interprete
para lograr ese
entendimiento y
es cuando, nos gustaría poder hablar directamente con ellos.
Ahora mismo me ha tocado tener que quedarme callado en un par de
reuniones para iniciar un proyecto cuyo vocabulario es un poco complejo.
- Como "agente incentivador" para crear
escenarios favorables o elementos de respuesta para resolver algún
problema.
Para comentar esta
acepción
del axioma que ahora consumimos, debo evocar un
hilo abierto por
Vekman
en
debug_mode=on:
¡Aprende
un nuevo lenguaje! ¡Ahora!.
En ese hilo,
Vekman
nos comparte la
Hipótesis
de Sapir-Whorf (
grosso modo:
el lenguaje determina la forma en que pensamos.) y le da más
valor teórico a esto que hemos escuchado ya varias veces:
debemos aprender un nuevo lenguaje(de programación) cada cierto
tiempo para incrementar el número de
paradigmas en
nuestras mentes y con ello poder resolver mejor los problemas.
(Si quieres algunas ideas de que lenguajes podrías aprender te puede
interesar este otro
hilo.)
Algo de lo que me he dado cuenta en todos estos años es que,
realmente el axioma va más allá de sólo conocer el lenguaje del cliente o incrementar nuestra caja de herramientas laboral,
en ocasiones conocer cualquier otro lenguaje, puede llegar a ser de
mucha utilidad, no sé, uno nunca sabe y quizá algún
día nos toque en un proyecto lidiar con alguien que entiende
perfectamente
élfico o
incluso (mi sueño se haga realidad) y conozcamos a alguien que
hable
sánscrito.
Bueno, la reflexión final es que, nunca esta demás
aprender un nuevo lenguaje (en el sentido
amplio de la
palabra);
así seguramente veremos utilidad a
artilugios tan raros
como estos:
O al menos entenderemos más chistes:
¿Alguna anécdota o comentario que quieras compartir? ;)
Saludos!!!
---
RuGI
Isaac Ruiz Guerra.
Posted at
05:41AM jun 28, 2009
by Isaac Ruiz Guerra in 97things |
¡Excelente! Recordé mis días de Introducción a la Lingüística, donde decían que cada idioma es una cosmovisión, la manera como una sociedad organiza el mundo en su mente. Cuando aprendes un nuevo idioma (natural o artificial) entiendes una forma distinta de matar las pulgas.
Por ejemplo, las bromas tipo "buenas las tengas" y "mejores las pases" denotan conocimiento parcial del náhuatl: el verbo marca con sílabas, como si incluyera el artículo dentro del verbo, sobre la información siguiente. Cuando conocí a Python supe qué eran los "closures", más aptos en muchos casos.
En este, tu espacio, conocí pequeños trucos para hacer cosas distintas. Esto ayuda no sólo en el entorno laboral, sino en todos los ámbitos. Cada lenguaje tiene una especialidad, y sus técnicas y atajos nos nutren, pues fueron soluciones para problemas específicos y ante circunstancias muy distintas.
Enviado por Miguel Zúñiga González (miguel~1.mx) en junio 28, 2009 a las 03:57 PM CDT #
Por último, te recuerdo que ya conoces algo de sánscrito: la frase "lo que no mata me hace más fuerte" viene del sánscrito. Haber entendido el sánscrito fue primordial para el mayor logro de la lingüísitca: obtener el indoeuropeo, la raíz del tronco de mayor número de idiomas en la tierra. Te dejo tu nick en sánscrito, ???? y tu nombre de pila, ????.
Enviado por Miguel Zúñiga González (miguel~1.mx) en junio 28, 2009 a las 03:58 PM CDT #
Este consejo ya aparece en Pragmmatic Programmer, y aunque estoy muy de acuerdo con él (nos metimos en esto porque queríamos aprender cosas nuevas, ¿no?) yo recomendaría que primero la gente aprendiera SU lenguaje ;-). Y me explico por las dos mismas vertientes:
- No hay nada que de peor impresión que recibir un email, informe, presentación, lo que sea con faltas de ortografía. Por otro lado, alguna documentación escrita por técnicos SI que parece escrita en sánscrito ;-)
Y por favor, que nadie diga la estupidez de "yo es que soy de ciencias...."
[Y sigue...]
Enviado por ibon en junio 29, 2009 a las 01:30 AM CDT #
[...y viene]
- De un tiempo a esta parte, muchos programadores noveles se han lanzado a aprender lenguajes obsesivamente. No es malo, pero a veces no llegan a dominar uno completamente, conociendo todas sus posibilidades, y se lanzan a criticarlo y/o menospreciarlo en comparación a otros lenguajes en los que determinadas cosas se hacen de forma más fácil o clara. Y no, no estoy hablando de Ruby vs. Java (a la cabeza me venía más bien Strings en python vs Strings en Java, cuando apache-commons te puede hacer la vida más fácil).
Asi que el consejo es bueno, pero en la práctica habría que definir "estudiar". Mucha gente aún no sabe que significa ;-)
Salu2
Enviado por ibon en junio 29, 2009 a las 01:37 AM CDT #
PD:
Sánscrito no, pero si quieres puedes practicar el Euskera conmigo. Para algunos es tan incomprensible como el sánscrito ;-)
Enviado por ibon en junio 29, 2009 a las 01:39 AM CDT #
como siempre muy bueno cabe mencionar que aprender un lenguaje nuevo de alguna manera conocer una tierra nueva, un país nuevas posibilidades ,diferente perspectiva . Esto último es tarea casi cotidiana de un arquitecto de software y a decir verdad va mucho más allá . Saludos y buen inicio de semana
Enviado por israel gaytan en junio 29, 2009 a las 10:55 AM CDT #
@miguel1mx !! Sabía que este post al menos llamaría tu atención :), un verdadero placer leerte por estos lares.
@isragaytan esa analogía de "tierra nueva" me emociona :), un saludo!!!
@Ibon "alguna documentación escrita por técnicos SI que parece escrita en sánscrito" XD totalmente deacuerdo contigo!! jeje
Creo que mencionas algo que adolecemos muchos, a veces en ese afán de aprender cosas nuevas se nos olvida que tenemos un lenguaje "por omisión" y que, sobre todo ese, deberíamos dominar "al derecho y al reves"
....Albo honetatik itsasoaren..Besarkada bat !!!!
Enviado por RuGI en junio 29, 2009 a las 12:16 PM CDT #
Muchos años después de terminar mis estudios de básica y enseñanza media, me dí cuenta de que aprender inglés conlleva aprender la cultura del país / nación donde se habla inglés, o sea, que no basta con aprender las palabras, sino que también hay que aprender la forma de pensar y de comprender el mundo de parte de la gente que habla dicho idioma.
Saludos y buen post ;D
Enviado por Germán G. en junio 29, 2009 a las 03:20 PM CDT #
Hola Germán!!
Sí, creo que precisamente ahí radica el "factor x" de esta ventaja..... tratar de ver el mundo de una manera distinta debe obligar a nuestra mente al "estado original".
SAludos!!!
RuGI
Enviado por RuGI en junio 29, 2009 a las 04:39 PM CDT #
Casi ;-):
"itsasoaren albo honetatik ..Besarkada bat !!!!"
Berdin!
:-D
Enviado por ibon en junio 30, 2009 a las 01:16 AM CDT #
¡No sólo llaman mi atención! ¡Siempre me dejan pensando tus reflexiones, sobre todo estas de las 97 cosas! Es sólo que como dice el dicho: "si no tienes algo bueno/inteligente que decir..." pero tenlo por seguro: soy tu fiel lector. Estoy de acuerdo con ibon, poder ordenar el mundo en la propia mente es el primer paso. Decía mi muy querida maestra Regina, de italiano, que al aprender un idioma se compara la manera como el nuestro comunica algo contra la cultura de aquél, pero si no se tiene claro cómo funciona el propio idioma... difícilmente...
Lo mismo aplica para la programación: es muy cómodo para muchos decir "no lo implementa" y quedarse muy horondos, cuando todo se reduce (citando tu opera de eufemismos) a un if y a una secuencia de acciones. Si no entendemos la magia y el poder de un if, estamos lejos de las abstracciones que sostienen los de la mentada campaña "anti if". Primero hay que caminar, luego trotar, y finalmente correr.
Enviado por Miguel Zúñiga González (miguel~1.mx) en julio 01, 2009 a las 03:04 AM CDT #
Por cierto, y sólo por aclarar el asunto: el sánscrito no es tan endiabladamente difícil como lo hacen ver: el devánagari (su alfabeto o silabario) es relativamente fácil de entender, y las grafías apantallan bastante (recompensa adicional); su evolución no tiene demasiadas rupturas, al ser un idioma para uso ceremonial; es cierto, tiene muchas declinaciones, pero es merced de su carácter. Donde sí te vas a complicar es en su fonología: 36 preciosos fonemas entre plosivos, aspirados y sonorantes harán delicias de tus primeras pronunciaciones (piensa en la dificultad para empezar a hablar francés). De allí en fuera, mucha suerte en tu encomienda sánscrita.
Enviado por Miguel Zúñiga González (miguel~1.mx) en julio 01, 2009 a las 03:13 AM CDT #
@Miguel: de acuerdo con tu comentario, en desacuerdo con tu ejemplo (en el caso concreto de un lenguaje orientado a objetos)
De hecho creo que si alguna vez tuviera que enseñar a alguien un lenguaje orientado a objetos, primero le mostraría la herencia, polimorfismo..., los conceptos OO, antes que enseñarle un if. Puede que ni se lo enseñase :-D para obligarle a pensar/diseñar OO, y que empezase a caminar correctamente.
Cuanto daño ha hecho el if a la OO... ;-)
Salu2
Enviado por Ibon Urrutia en julio 01, 2009 a las 09:14 AM CDT #
Por cierto, el otro día estaba viendo unas cosas de LINQ y me fijé en que tiene un detalle curioso. El detalle es la inversión de la construcción sintáctica de las queries: El verbo/acción va al final!
Y es curioso porque es un ejemplo bastante claro de cómo la estructura del lenguaje te hace organizar tus pensamientos de un cierto modo. Primero dices con qué vas a trabajar y luego dices lo que vas a hacer con ello, en lugar de al contrario. Y me pareció curioso porque me recuerda que es la misma estructura que sigue el Japonés (en parte también el latín). Y a veces ocurre con el Japonés, que una frase va diciendo muchas cosas (sujeto, objeto, complementos varios...) pero no llegas a la acción, al verbo hasta el final de la frase. Y hasta que no llegas a eso, no está definido qué es lo que ocurre.
En fin, divago un poco porque se me va la cabeza, pero... bueno, que me parece algo curioso e interesante :)
Enviado por Venkman en julio 06, 2009 a las 03:15 PM CDT #