Cómo dominar varios lenguajes de programación

Una de las preguntas que más me llegan por redes sociales, correos electrónicos, comentarios en YouTube etc. es: “Juan ¿Cómo dominas tantos lenguajes de programación?” Bueno, lo primero que tengo que hacer es matizar esa pregunta que me hacéis. Ni son tantos, ni los domino.
Y es que es muy importante distinguir entre “dominar” y “conocer”. Yo conozco muchos lenguajes de programación, pero realmente domino 2 o 3.  Y es que distinguir entre “dominar” y “conocer” me he dado cuenta con el tiempo que muchas personas no lo tienen claro.

Edificio I.C.M. (Madrid)

Trabajé como profesor en I.C.M (Informática y Comunicaciones de la Comunidad de Madrid) desde 2005 a 2008. Se impartía formación informática a todos los funcionarios de la Comunidad de Madrid y había cursos de todo tipo, desde ofimática, hasta diseño gráfico y diseño web, pasando también por programación y aplicativos propios de la Comunidad de Madrid. En general los cursos se dividían en 2 categorías: cursos básicos y cursos avanzados. Aquellos alumnos que se apuntaban a cursos avanzados debían superar el primer día de curso, incluso antes de hacer las presentaciones de rigor, un examen previo para corroborar que tenían un nivel suficiente como para poder abordar el curso avanzado al que se habían apuntado. Si no superaban el examen previo se les echaba del curso, así de claro y así de crudo. Anécdotas mil de aquellos momentos en los que tenías que decirle a una persona delante de 20 compañeros más que no podía hacer el curso y que debía marcharse porque no había superado el examen previo, pero ese es otro tema.

En no pocas ocasiones tuve que “levantar la mano” porque si no me quedaba con 3 o 4 alumnos de 20. Y es que todo el mundo que se apuntaba a un curso avanzado decía “dominar” la materia a la que se apuntaba. Si por ejemplo era un curso de Excel Avanzado, todos los que se apuntaban al curso decían que “dominaban” Excel. Luego, en el examen previo, descubrías que apenas sabían construir una fórmula sencilla y por supuesto nada de utilizar referencias absolutas, relativas o mixtas.  Y es que confundían “dominar” con “conocer”.

Trabajé también como profesor de programación para desempleados del INEM en 2 etapas: del 2000 al 2004 y del 2008 al 2012. La problemática era la misma: alumnos que decían “dominar” ciertos lenguajes que luego yo comprobaba que no era así y que tan solo los “conocían”. Recuerdo incluso como algunos alumnos al finalizar el primer día de clase se acercaban a mi y me contaban que tenían muchos años de experiencia en tal o cual lenguaje y que lo “dominaban” perfectamente. Luego descubría que nada más lejos de la realidad… y que valoraban muy por encima de lo real sus conocimientos sobre un lenguaje que decían dominar.

Equipo profesores I.C.M. Año 2006. ¿Dónde está Wally?

 

En general, una persona llega a “dominar” un lenguaje de programación cuando ha trabajado varios años durante 8 horas cada día en dicho lenguaje. Luego cada persona es un mundo ya que como en todo, los hay más hábiles y menos. Gente que necesita más tiempo para dominar un lenguaje y otros que necesitan menos. Pero en general como digo, es una labor de años.

Una vez hecha esta diferenciación entre “dominar” y “conocer”, respondo a vuestra pregunta “Juan ¿Cómo dominas tantos lenguajes de programación?”

La respuesta y la clave está en que la programación hay que entenderla y no memorizarla. Muchas personas que se inician en el mundo de la programación creen que esto consiste en memorizar instrucciones, palabras reservadas, APIs etc como si fuésemos un computador con disco duro infinito. La mente humana tiene limitaciones y le es imposible memorizar tal volumen de información. Lo que hay que hacer es entender los mecanismos de funcionamiento de los lenguajes de programación y no memorizar instrucciones.

Alumnos Corte Inglés. Año 2004

La filosofía de funcionamiento de un bucle o de un condicional, el mecanismo de la herencia en la POO, el polimorfismo de los objetos, el encapsulamiento etc. es exactamente igual para todos los lenguajes de programación modernos (con matices sutiles diferenciadores en algunos casos). Lo que varía es la sintaxis y la estructura de los programas.

Como los recursos de nuestra mente son limitados debes focalizarte en lo importante y “quemar” todos tus recursos y capacidad mental en entender lo que estás haciendo, y no consumir tus recursos mentales en memorizar.

Está claro que si quieres programar en un lenguaje en concreto, pongamos por ejemplo Java, debes haber memorizado ciertas instrucciones. Debes haber memorizado que las sentencias terminan con punto y coma y que los bloques van delimitados por llaves, así como que el método principal se llama main y que los archivos tras compilación llevan extensión .class y por supuesto que es case sensitive.

Pero este ejercicio de memorización no se debe abordar como cuando aprendíamos los ríos en la escuela o como cuando aprendíamos las tablas de multiplicar. En programación estas cosas se van memorizando “sin querer”, a fuerza de utilizarlas una y otra vez mientras estamos concentrados en entender.

Para memorizar ya contamos hoy en día con máquinas y herramientas que lo hacen por nosotros de manera excelente.

En ocasiones tengo que impartir un curso de un lenguaje que hace años no he utilizado. Evidentemente no recuerdo bien su sintaxis, pero este problema lo resuelvo en 10 min con una consulta vía Google. Esta consulta sirve como “refresco” para que de repente pueda recordar de golpe la mayor parte de su sintaxis. Lo demás no me preocupa demasiado porque se cómo funcionan sus condicionales, bucles, constantes, funciones etc. Y es que para esto están las máquinas, para memorizar por nosotros.

Si eres capaz de interiorizar que la programación se debe entender y no memorizar, tendrás la llave para “conocer” muchos lenguajes de programación y si utilizas un par de lenguajes o 3 casi a diario, llegarás a “dominarlos” con el tiempo y sin darte cuenta.

16 octubre, 2022

3 responses on "Cómo dominar varios lenguajes de programación"

  1. EXELENTE Reflexion. La COMPARTO en su Totalidad.
    Mi profesor de Maquinas Electricas, nos permitia llevar TODO tipo de libros en los exmenes, pues decia, QUE ES INUTIL memorizar todo el libro, sino q lo mas IMPORTANTE ERA SABER DONDE ESTA ‘LA SOLUCION? y APLICARLA.
    Saludos

  2. Estoy de acuerdo con lo que dices. Así me lo inculcaron en la universidad. Al final irán surgiendo diferentes lenguajes de programación, pero la base suele ser común. Todos tienen condicionales, bucles, etc. Fundamentalmente es la sintaxis lo que cambia y algunas particularidades. De ahí que cuantos más lenguajes de programación conozcas, más fácil resulta aprender nuevos.

  3. Juan Días en su curso de Python trata de enseñar sobretodo a la gente que se inicia en este campo y lo hace de forma muy estructurada, que lo convierte en un curso muy valioso ya que de verdad aprendes en tan solo una semanas de que va todo esto, ósea conoces por donde van los tiros de dicho programa.
    Yo estoy contentísimo de haber realizado el curso tutorizados puesto que la forma y la didáctica que tiene Juan a la hora de enseñar a mi me llega muy bien y el post de arriba es una autentica maravilla que describe con buenos ejemplos prácticos (cualidad de Juan que valoro mucho, el curso esta lleno de ejemplos así) diferenciando “conocer” / “dominar” un lenguaje, como no podía ser de otra manera. Juan Díaz es profesor EXCELENTE!

    Att,
    Iulian

Deja un mensaje

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.