Es cierto: los programadores piensan de manera diferente que los demás.

No quiere decir que los programadores sean necesariamente más inteligentes, más lógicos o más racionales que los demás, como se dice comúnmente. Pero los científicos han comenzado recientemente a estudiar los cerebros de los programadores y han llegado a algunas conclusiones interesantes.

Del mismo modo que el arte puede moldear su mente de varias maneras, la programación también afecta su forma de pensar, tal vez en formas que quizás no haya esperado.

Brain, Programming, Psychology

1. La programación da forma a tus modelos mentales

¿Importa qué lenguaje de programación aprendes primero? ¡Sí!

Esto parece un poco injusto, ¿no? Después de todo, la mayoría de nosotros probamos por primera vez la programación en la escuela, y no podemos elegir qué idioma se nos impone. Empecé con C. Es probable que los mayores que yo comenzaran con FORTRAN, COBOL o BASIC. En cuanto a tu gente más nueva? Probablemente comenzó en Java o Python.

No hay dudas al respecto: el diseño de un lenguaje de programación determina cómo piensas. Edsger Dijkstra, uno de los científicos informáticos más influyentes de la historia, sabía esto cuando dijo:

    "Las herramientas que utilizamos tienen una influencia profunda (y desviada) en nuestros hábitos de pensamiento y, por lo tanto, en nuestras capacidades de pensamiento".


Luego pasó a decir:

    "El uso de COBOL paraliza la mente; su enseñanza debe, por lo tanto, ser considerada como una ofensa criminal ".

Y:

    "Es prácticamente imposible enseñar una buena programación a los estudiantes que han tenido una exposición previa a BASIC: como potenciales programadores, son mentalmente mutilados más allá de la esperanza de regeneración".


Ouch.

En cierto sentido, todos los lenguajes de programación son igualmente capaces en el sentido de que son todos completos. Pero en otro sentido, el dominio de un idioma puede conducir a la ruina en otro idioma. Los programadores de Java y los programadores de Python son dos bestias diferentes que abordan la codificación de dos maneras completamente diferentes.

En otras palabras, los paradigmas y expresiones idiomáticas de tu primer lenguaje de programación influyen e incluso dictan cómo piensas sobre las estructuras de datos, los algoritmos, etc.

Tanto es así que, de hecho, es posible tomar un código anónimo y determinar quién lo escribió basándose únicamente en cómo se enfocó la tarea y cómo se escribió el código. Cuanto más difícil sea la tarea, más fácil será "anonimizar".

    "Los programadores pueden ofuscar sus nombres de variables o funciones, pero no las estructuras que inconscientemente prefieren usar o sus operadores incrementales favoritos".

En inglés, tenemos un proverbio que lo resume de una manera fácil de entender: "Cuando todo lo que tienes es un martillo, todo parece un clavo". Del mismo modo, una vez que aprendes a programar de cierta manera, es tentador de pensar en todos los problemas de esa manera.

Entonces, al elegir un lenguaje de programación, ¡sea inteligente y tenga cuidado! 




2. La programación ayuda a fortalecer la salud del cerebroLa gente a menudo dice que el cerebro es como un músculo y que debe ejercerlo si quiere mantenerse alerta. ¿Es eso verdad? Y si es así, ¿la programación cuenta como ejercicio mental, lo suficiente como para afectar la salud del cerebro?Un metaestudio de 1991 analizó "los efectos de la programación de computadora en los resultados cognitivos" y descubrió que los estudiantes con experiencia en programación de computadoras puntuaron 16 puntos percentiles más altos en las pruebas de capacidad cognitiva que los estudiantes sin ellos.Un estudio más amplio en 1999 encontró y confirmó que "las actividades intelectualmente atractivas sirven para proteger a las personas contra el deterioro [cognitivo]", pero también señaló que es posible que el deterioro cognitivo pueda conducir a una menor participación en actividades intelectualmente atractivas.Un estudio aún más grande en 2009 llegó a una conclusión similar, sugiriendo que "las personas que participan en actividades estimulantes del cerebro en años posteriores pueden reducir el riesgo [e incluso retrasar la aparición de] el Alzheimer y otros tipos de demencia". Actividades estimulantes del cerebro incluía lectura, escritura, rompecabezas, juegos de mesa y de cartas, y reproducción de música.Por último, un estudio publicado en 2013 encontró que solo ciertos tipos de compromiso mental en realidad se prestan a cerebros más nítidos, a saber, actividades cognitivas de alta demanda que implican aprendizaje y dificultad intelectual.
Por supuesto, se necesita más investigación, pero es difícil pensar en cualquier actividad cognitiva que sea más exigente y centrada en el aprendizaje que la programación.Además, si bien ninguno de estos estudios muestra que las actividades intelectualmente atractivas lo hagan más inteligente o más capaz, sí demuestran que las tareas cognitivas de gran demanda al menos extienden su salud cerebral actual y previenen significativamente el deterioro neuronal.Anteriormente, hemos argumentado que nunca es demasiado tarde para comenzar a aprender cómo codificar, y estos estudios solo sirven para reforzar nuestra posición. ¡La programación es buena para ti!


3. La codificación no es todo matemática y lógica

De acuerdo con un estudio de 2014 que usó escáneres fMRI para observar la actividad cerebral mientras los programadores trataban de comprender y comprender los fragmentos de código, cinco áreas distintas del cerebro están involucradas en la comprensión del código fuente:

    BA 6: circunvolución frontal media (atención, lenguaje, memoria de trabajo)
    BA 21: circunvolución temporal media (Recuperación de memoria semántica)
    BA 40: lóbulo parietal inferior (memoria de trabajo)
    BA 44: circunvolución frontal inferior (memoria de trabajo)
    BA 47: circunvolución frontal inferior (lenguaje, memoria de trabajo)

Esto significa que trabajar a través del código fuente principalmente utiliza partes del cerebro que normalmente están asociadas con el procesamiento del lenguaje, la memoria y la atención.

Lo que más falta son las regiones del cerebro normalmente asociadas con cálculos matemáticos, que apenas se registraron, incluso cuando se comprendían fragmentos de código que implicaban ciclos, condicionales, aritmética y otras operaciones algorítmicas.

Por supuesto, este estudio es algo incompleto, y los investigadores lo admiten tanto:

    Los fragmentos en el experimento tenían menos de 20 líneas de código y tiempo limitado, lo que significa que no eran lo suficientemente difíciles como para desafiar verdaderamente a los sujetos.
    La evidencia no sugiere que los lenguajes de programación sean como lenguas extranjeras, solo que involucran regiones similares del cerebro.
    Los sujetos no escribieron ninguno de sus propios códigos, lo que probablemente implicaría diferentes áreas del cerebro en lugar de tratar de comprender el código existente.

Pero aquí está lo que podemos dejar:

Sabemos que los programadores revisan regularmente el código fuente, ya sea un código autodidáctico o perteneciente a otra persona. También sabemos que los programadores a menudo pasan más tiempo reparando y refabricando el código que escribiendo un nuevo código desde cero.

Entonces este estudio no tiene sentido. La programación no es solo una "actividad del cerebro izquierdo", y uno podría incluso argumentar que los programadores de cerebro derecho tienen una ventaja en este sentido