
¿Quién tiene talento para ser un buen programador? Por lo general, se cree que las personas que tienen una buena comprensión sobre las matemáticas son las personas ideales. Pero, según afirman neurólogos de la Universidad de Washington, en este terreno destacan más quienes disponen de otro tipo de talento: el lingüístico.
La programación de computadoras ha pasado de ser una habilidad de nicho a una que es cada vez más central para funcionar en la sociedad moderna. A pesar de este cambio, existen pocos estudios que se enfocan en la investigación de base cognitiva de lo que se necesita para aprender lenguajes de programación. Las implicaciones de tal conocimiento son de gran alcance, tanto en términos de barreras culturales para la búsqueda de ciencias de la computación como para las prácticas educativas. En el centro de ambas se encuentran las ideas comunes sobre lo que se necesita para ser un «buen» programador, muchas de las cuales no han sido empíricamente creadas.
Los investigadores describen en su informe de Scientifc Reports que los lenguajes de programación se asemejan en su estructura al lenguaje humano. Esta característica los llevó a averiguar si la habilidad en matemáticas es más adecuada para aprender programación o si pesan más las facultades lingüísticas. Para ello, examinaron las habilidades neurocognitivas de 36 participantes. En concreto, evaluaron la comprensión matemática, el talento lingüístico, la memoria y la capacidad de resolver problemas de los sujetos. Además, registraron su actividad cerebral mediante electroencefalografía (EEG). Otras investigaciones han demostrado que la EEG en reposo puede utilizarse para determinar la capacidad de una persona para aprender idiomas extranjeros.
Es como aprender un segundo lenguaje natural

Este experimento empleó un enfoque de diferencias individuales para probar la hipótesis de que aprender lenguajes de programación modernos se asemeja a un segundo aprendizaje de lenguaje «natural» en la edad adulta. Se usaron índices de aptitud del lenguaje conductual y neural (EEG en estado de reposo) junto con la matemática numérica y las medidas cognitivas de fluidos (por ejemplo, razonamiento fluido, memoria de trabajo, control inhibitorio) como predictores.
La tasa de aprendizaje, la precisión de la programación y el conocimiento declarativo posterior a la prueba se utilizaron como medidas de resultado de los 36 individuos que participaron en las diez sesiones de entrenamiento de Python de 45 minutos. Los modelos resultantes explicaron el 50–72% de la varianza en los resultados del aprendizaje, con medidas de aptitud del lenguaje que explican la varianza significativa en cada resultado, incluso cuando los otros factores compitieron por la varianza. A través de las variables de resultado, el razonamiento fluido y la capacidad de la memoria de trabajo explicaron el 34% de la varianza, seguido de la aptitud del lenguaje (17%), la potencia del EEG en estado de reposo en las bandas beta y gamma baja (10%) y la aritmética (2%) . Estos resultados proporcionan un marco novedoso para comprender la aptitud de programación, lo que sugiere que la importancia de la aritmética puede ser sobrestimada en los entornos educativos modernos de programación.
Las matemáticas, menos importantes
Los investigadores solicitaron a los participantes que aprendieran el lenguaje de programación Python. Tras completar un tutorial y algunas pruebas, les pidieron que programaran un juego de rompecabezas sencillo. La evaluación reveló que los más exitosos fueron aquellos que tenían un talento lingüístico alto, una buena memoria operativa y notables habilidades para resolver problemas. El talento en matemáticas también suponía una ventaja, pero, al parecer, no desempeñaba un papel tan importante como la capacidad lingüística para aprender el lenguaje de programación.
Los investigadores consideran estos resultados de gran interés, entre otros motivos, porque a menudo se espera de los estudiantes de informática y materias similares que posean amplios conocimientos y habilidades matemáticas. También existe la creencia popular de que un buen programador debe ser necesariamente un buen matemático. «Estas ideas no confirman nuestros datos».