Google Trends, hace unos días, anunciaba un importante cambio de interfaz con nuevas funcionalidades. Entre otras, y una de las quizás más útiles, estaba el poder obtener datos en tiempo real de lo que se está buscando alrededor de una keyword. Es una herramienta muy útil para saber qué preocupa en una sociedad. De hecho, al inicio de la pandemia, se viralizó esta publicación en la que se puede ver cómo existe una correlación perfecta entre las búsquedas en Google de “pérdida de olfato” y los posteriores casos positivos de COVID-19. Cuando queremos aprender o localizar algo, vamos a Google. Escribimos cualquier cosa. Hasta que no se naturalice y globalice el uso de los sistemas de diálogo natural como ChatGPT, de momento, seguimos yendo a Google. Por eso es tan útil tener herramientas como Google Trends: nos explica, por zonas geográficas, qué preocupa a la gente.
La keyword “programación” muestra una evolución interesante. Clara-mente, en los últimos meses, es de interés para la sociedad. Llegó a picos máximos, pero tampoco ha caído. Seguramente ahora, con las inteligencias artificiales generativas, vivirá un nuevo auge. Es más fácil que nunca aprender a programar. Nosotros desde Brain and Code ya lo hemos incorporado a todos los workshops y bootcamps que tenemos con nuestros clientes. Ahora os explicamos cómo, pero entendamos realmente qué es aprender a programar.
Los lenguajes de programación son mucho más sencillos que los lenguajes naturales. Sin embargo, aprender a programar nos parece algo muy complejo. El diálogo humano-máquina, la comunicación con un ordenador, tiene mucho componente lógico. Es precisamente lo primero que debemos entender. La sintaxis que empleamos para explicarle a un ordenador que ejecute un conjunto de instrucciones, se deben ordenar, ensamblar y combinar para producir un resultado. Pero esto no es solo apilar ladrillos; hay que saber cómo hacerlo.
Los ordenadores, las máquinas de cómputo modernas, a diferencia de otras, tienen un propósito general. Es decir, no están programadas para calentar alimentos o barrer nuestro suelo. Hacen muchas funciones distintas. Tienen un potente procesador y un lenguaje en el que representar esas funciones. Cada cosa que hacen está controlada por un programa, donde entra lo que decíamos de la secuencia de instrucciones en un lenguaje, que podemos llamar “lenguajes de programación”. Cuando en Brain and Code decimos que queremos ofrecer una educación que haga accesible la informática para todos, en el fondo nos referimos a aprender a dominar estas máquinas.
Ese lenguaje de comunicación con la máquina es mucho más sencillo que el idioma inglés o chino. Tienen una estructura sencilla. Por ejemplo, el lenguaje de programación C (uno de los más antiguos y utilizados) tiene 46 reglas sintácticas. Por contra, la gramática del idioma inglés, como dice David Crystal en Making Sense of Grammar, parece contener unas 3.500 reglas. Por otra parte, un lenguaje de programación es preciso. Es decir, no permite ambigüedades en su interpretación. Y es que un programa está hecho con un propósito de resolución concreto. Sin embargo, una frase en un lenguaje humano puede dar lugar a distintas interpretaciones, lo que complica su aprendizaje.
Como lenguajes de comunicación, tanto el inglés como los de programación (que hay muchos, como también hay idiomas distintos), tienen contextos más favorables que otros. Por ejemplo, no utilizaríamos Java (otro de los lenguajes que enseñamos en Brain and Code) para quedar a las 20:00 a ver con nuestros amigos un partido del Real Madrid. Pero si tenemos que calcular todos los números primos que hay entre el 1 y el 1.000, es más apropiado un lenguaje de programación, puesto que no permite ambigüedad en el cálculo. Hemos ido a Perplexity a decirle que nos programe precisamente este programa en Python. Nos ha devuelto lo siguiente:
Cualquier idea que necesite de un lenguaje algorítmico (cálculos en física, formulaciones en química, optimizaciones de rutas, reglas en lengua, etc.), son ideales para ser expresadas en un lenguaje de programación. Por eso debemos entender que a futuro, entendemos, debiera formar parte de los currículos de enseñanza obligatoria. No podemos permitirnos excluir este conocimiento de unas generaciones que deberán dialogar con las máquinas en su día a día.
La realidad de partida, sin embargo, no invita a la esperanza. Menos de un 1% de la población conoce un lenguaje de ordenador y los que lo conocen seguro que tienen ya empleo y un buen sueldo. Cuando queremos aprender inglés, hablamos el idioma, nos vamos un verano a Irlanda o pedimos a nuestra empresa que nos destine a un lugar donde poder practicarlo. ¿Cómo vamos a aprender este idioma si no tenemos sitios donde practicarlo?
Además, con la llegada de las IAs generativas, tenemos nuevos ayudantes. Cuando buscamos escribir código software en cualquier lenguaje de programación, ahora podemos apoyarnos GitHub Copilot. De hecho, el nombre de esta última herramienta es cómo vislumbramos la futura convivencia humano-máquina: copilotos (tecnologías) acompañando a pilotos (humanos).
Los nuevos lenguajes y la alfabetización computacional han llegado para quedarse, serán necesarios para ser competitivos en el futuro y también, por qué no, para disfrutar el maravilloso reto lógico que nos plantean.
Brain and Code ©
25 de marzo de 2023