Aprender a programar significa no solo desarrollar una habilidad útil, sino también adquirir un tipo especial de pensamiento. Los programadores son buenos para resolver problemas matemáticos y lógicos. También prestan atención a los detalles, simulan situaciones en la vida cotidiana y dan una evaluación basada en una gran cantidad de factores.

En previsión de nuestro curso
Go Workshop , le decimos que los psicólogos, lingüistas y educadores piensan en los efectos de la codificación en el cerebro y qué tienen que ver los indios australianos y la hipótesis de Sepir-Whorf.
En los años 30 del siglo pasado, apareció la teoría de la relatividad lingüística, nombrada por analogía con el descubrimiento de Einstein. Dice: el lenguaje define la conciencia, es decir, las personas perciben el mundo de manera diferente, porque las categorías lingüísticas del idioma nativo imponen restricciones e incluso determinan el pensamiento.
Esta idea fue formulada por Edward Sepir y su alumno Benjamin Wharf, pero estaban equivocados. Cualquier idea puede transmitirse en cualquier idioma. Atribuyeron la enorme influencia en los procesos cognitivos a diferencias simples en la gramática, pero el concepto también contenía un grano saludable. Guy Deutscher en su libro A través del espejo de la lengua explica qué:
“Si diferentes idiomas influyen en el pensamiento de sus hablantes de manera diferente, entonces el punto no es que cada idioma permita que sus hablantes piensen, sino más bien aquellas partes del significado en las que cada idioma generalmente te hace pensar. Cuando un idioma obliga a sus hablantes a prestar atención a ciertos aspectos del mundo ... tales hábitos de habla pueden convertirse en hábitos de pensamiento con consecuencias para la memoria, la percepción, las asociaciones e incluso las habilidades prácticas ".
La verdad está en algún lugar al norte
Se ha demostrado de manera convincente que el sistema de género de los sustantivos influye en las series asociativas, lo que obliga a dotar a ciertos objetos inanimados con rasgos imaginarios femeninos o masculinos.
Un efecto similar se asocia con diferencias en la sensibilidad a los tonos de colores, para los cuales el idioma tiene un nombre.
Pero estos son pequeños en comparación con el hecho de que el lenguaje puede formar habilidades. Esto se reveló durante el estudio de uno de los idiomas de los aborígenes australianos. En lugar de los habituales "frente" y "atrás", "izquierda" y "derecha", solo usan puntos cardinales para indicar la dirección.
Puede parecer un engaño, pero si un hablante nativo de este idioma le pide que haga espacio en el banco, sonará como "muévase al este, por favor". Si al mismo tiempo está leyendo un libro, sentado mirando hacia el sur, y el nativo quiere que pase un par de páginas hacia adelante, entonces escuchará "voltear más hacia el oeste". Si gira hacia el norte, la solicitud sonará diferente: se le pedirá que gire hacia el este.
Para hablar este idioma, debe controlar constantemente la ubicación de los puntos cardinales, que forman una memoria geográfica y no requieren un control consciente de un sentido de dirección. Entonces, el aprendizaje profundo de idiomas es más que solo conocimiento de gramática y vocabulario.
El estudio de la influencia del lenguaje en el pensamiento acaba de comenzar, pero ya se están realizando estudios similares de lenguajes de programación, que no solo el nombre se relaciona con los naturales.
Programación ≥ Discurso
Contrariamente a los estereotipos, en la programación lo más importante no son las habilidades matemáticas, sino las lingüísticas. Esto fue en 1982 en su Etudes for Programmers de Charles Wesrel. Llamó la atención sobre las habilidades verbales como un aspecto importante de la personalidad de un programador exitoso, teniendo en cuenta la capacidad de trabajar con la gramática de los lenguajes tanto artificiales como naturales.
Sus observaciones están confirmadas. Los
estudios estadísticos
han revelado una correlación entre la programación y las altas habilidades lingüísticas. Las observaciones directas de la actividad en diferentes áreas del cerebro con la ayuda de MRI han
establecido que mientras se trabaja en el código, se activan las mismas partes del cerebro que son responsables de los lenguajes naturales.
No es sorprendente que muchos programadores consideren la hipótesis de Sapir-Whorf aplicable a su trabajo. Kenneth Iverson, creador de APL, sostuvo puntos de vista similares. Yukihiro Matsumoto admitió que cuando desarrolló Ruby, se inspiró en la novela "Babel-17", basada en la hipótesis de la relatividad lingüística.
Motivos similares se desarrollan
en el ensayo de Paul Graham "Conquistando la mediocridad", en su paradoja "Blub", según la cual un programador que ha dominado un idioma y resuelto todos los problemas con él no comprende el valor de herramientas más efectivas de otros lenguajes de programación, percibiéndolos como algo extraño. Inusual e innecesario.
El primer intento de resumir los datos disponibles sobre el impacto de la programación en los procesos cognitivos se realizó en 1987
en la edición de mayo de Educational Computing Research .
Luego, los investigadores notaron que la programación con sus diversas tareas puede afectar positivamente la capacidad de resolver problemas estratégicamente, la capacidad de lógica formal, habilidades de modelado y estilos cognitivos, pero no llegaron a conclusiones inequívocas y concluyentes debido a la falta de datos.
Pasaron otros seis años antes de que se recopilaran las estadísticas, lo que permitió concretar ideas sobre el impacto de la codificación en el pensamiento. Se presenta
en un metaanálisis de sesenta y cinco estudios sobre los efectos de la programación en los procesos cognitivos , publicado en 1991.
Resultó que en la mayoría de los casos, la programación tiene un efecto positivo en varias habilidades cognitivas que se correlacionan con la duración del estudio del lenguaje de programación y el éxito en él. "Las implicaciones de aprender un lenguaje de programación van más allá del contenido de un lenguaje de computadora en particular", dicen los científicos. Con la capacidad de programar, se mejoran las habilidades de planificación, la capacidad de desarrollar el razonamiento, el pensamiento lógico y las habilidades generales para resolver problemas utilizando programas de computadora.
Continúan los estudios comparativos del impacto de varios lenguajes de programación en los procesos cognitivos. Se
ha asignado una subvención de $
750,000 para analizar el contenido de los repositorios, preguntas y respuestas en línea de Github y BitBucket publicados en StackExchange. Según ellos, el
Knowledge Lab y el
Departamento de Psicología de la Universidad de Wisconsin Madison restaurarán la "historia natural" de los lenguajes de programación y rastrearán con qué frecuencia y para qué se utiliza cada uno de ellos.
Para 2020, los investigadores planean descubrir cómo las características específicas de los lenguajes de programación afectan la cantidad de caminos y la velocidad de resolver varios problemas, analizar qué tan bien un lenguaje en particular es adecuado para la programación colectiva.
El proyecto tiene una tarea ambiciosa: proporcionar información sobre qué idiomas elegir para proyectos específicos y descubrir cómo esta elección afecta la forma en que los desarrolladores piensan y trabajan.
Más que habilidad
Además de las habilidades de programación reales, el aprendizaje de idiomas forma un hábito de lo que el matemático, psicólogo y programador Seymour Papert llama "pensamiento computacional" en su trabajo.
Este es un
conjunto flexible de habilidades dirigidas a la resolución algorítmica de problemas , el hábito de utilizar de manera compleja la abstracción, la descomposición, la evaluación, el pensamiento lógico, la precisión y el hábito de notar detalles en la vida cotidiana.
El concepto de pensamiento computacional ganó autoridad en pedagogía, formó la base de muchos programas educativos, pero con el tiempo, como se esperaba en los años ochenta del siglo pasado, su influencia se
extendió mucho más allá de los colegios y universidades .
Usando una metodología de programación, se resuelve con éxito una amplia variedad de problemas. Un ejemplo de esto no es solo el modelado por computadora, la recopilación de big data, la introducción de sistemas automatizados, el éxito de fintech.
El pensamiento computacional es aplicable y útil en la vida cotidiana y para profesionales que están lejos de las tecnologías de TI. La programación de aprendizaje lo ayuda a encontrar nuevos enfoques y soluciones, pase lo que pase. Ya sea física, biología, química, sociología, pedagogía, negocios o salud.
Entonces apareció el concepto de altruismo efectivo, comenzó la búsqueda de las estrategias de caridad más efectivas. Gracias a estos estudios, resultó, por ejemplo, que en la lucha contra la malaria es más eficiente donar dinero a
mosquiteros , en lugar de medicamentos caros.
Otra consecuencia del pensamiento computacional es la idea de usar
herramientas para el análisis matemático de transacciones
de trueque y big data para resolver el problema de seleccionar donantes de órganos. Como resultado
, se
desarrolló un diseño para el complejo y al mismo tiempo confiable y eficaz sistema de intercambio renal de donantes "en la cadena" para los EE. UU. Por el cual el profesor de la Universidad de Harvard Alvin Roth recibió el Premio Nobel en 2012.
En el contexto de una nueva investigación, aprender un lenguaje de programación no se trata solo de adquirir una habilidad, sino también de una nueva forma de ver la vida y enfrentar los desafíos que plantea.
Muy pronto, el curso
Go Workshop comenzará en el Distrito Binario, un excelente comienzo para programadores principiantes y una continuación lógica para aquellos que ya se enfrentan al diseño de sus propios servicios web.