¿Qué tan similar es aprender un lenguaje de programación a un idioma extranjero?

Por lo que se sabe sobre el lenguaje humano, aprender un idioma extranjero y aprender programación de computadoras sería bastante diferente, pero con ciertos puntos de superposición.

El propósito del lenguaje humano es facilitar la comunicación con otros seres humanos, por ejemplo, para satisfacer las necesidades. Existen áreas específicas del cerebro que están especializadas para ayudar en la comprensión del habla (área de Wernicke) y la producción (área de Broca). El lenguaje humano es principalmente un fenómeno de comprensión oral y auditiva, con la lectura y la escritura inventadas hace unos pocos miles de años.

En contraste, la programación informática es una codificación de la lógica y la estructura de la acción, por lo que tiene más en común con las matemáticas que con el lenguaje humano. Sin embargo, hay ciertos puntos de superposición: tanto la programación como el lenguaje humano utilizan estructuras gramaticales que pueden ser recursivas. En la medida en que el lenguaje humano implica la expresión del pensamiento humano, y el pensamiento humano puede estructurarse y codificarse como una secuencia de símbolos, también existe una cierta similitud. Y parece probable que las mismas áreas del cerebro que procesan la estructura gramatical durante la lectura también estén involucradas en el procesamiento de la estructura gramatical de un programa o ecuación matemática al leerlos.

En las pruebas que distinguen la capacidad “verbal” y la “matemática” (SAT, GRE), la capacidad matemática está más relacionada con una aptitud para la programación que con la capacidad verbal, lo que sugiere una diferencia con el lenguaje humano. Anecdóticamente, existe una alta correlación entre la aptitud musical y la capacidad de programación, lo que sugiere alguna relación con la estructura temporal de la música.

Sería interesante saber si las personas que pierden la capacidad de lenguaje después de un accidente cerebrovascular (afasia) también pierden su capacidad de leer y escribir programas de computadora.

Nada parecido. Aprender un lenguaje de programación es como aprender a llenar un formulario largo *, mientras que aprender un idioma extranjero es como aprender a pintar.

* bueno, un poco más creativo que eso, pero básicamente tienes una estructura existente y solo tienes opciones limitadas que puedes llenar en cada lugar

Cred: hablo más de 8 idiomas extranjeros y sé 7 lenguajes de programación.

Hay un tema de Quora “ Aprender idiomas ” que no tiene tantos seguidores como debería tener. Considera seguirlo. Además, tengo un blog de Quora sobre idiomas y aprendizaje de idiomas: Selected Language Posts y un blog real en http://www.learnlangs.com .

Los economistas probablemente le dirán que “esta es una pregunta normativa”. Lo que significa que cada persona a la que le plantea la misma pregunta probablemente le dará una respuesta diferente en función de sus diferentes experiencias.

Durante los últimos 19 años he aprendido a dominar dos idiomas extranjeros o humanos a saber; Francés y el idioma turco (a la inversa luchando con el alemán y el idioma español). Esa es la parte del idioma extranjero y para la parte del lenguaje de programación puedo decir que soy muy bueno con python, java, c ++ y C #.

Sinceramente le diré (por supuesto, según mi experiencia) que aprender un nuevo lenguaje de programación solo es similar a aprender un idioma extranjero cuando se trata de reglas o sintaxis . Cada lenguaje (ya sea humano o de programación) tiene sus reglas. Por ejemplo: el turco sigue una estructura de oración sujeto – objeto – verbo (que puede ser extraño para algunos hablantes de inglés) pero es exactamente el mismo para algunos lenguajes de programación, tienen diferentes reglas sobre cómo están compuestas. Y eso me lleva al hecho de que ambos siguen la lógica.

Aprender lenguajes de programación y los idiomas extranjeros son similares cuando se trata de abarrotar (sí, tienes que abarrotar cosas en ambos casos). La gente siempre te dirá cosas como “no te preocupes después de meses o años, estas cosas te serán fáciles”. Lo que sí están diciendo es que, “después de meses o años de cramming, será fácil y las cosas se desvanecerán fácilmente”.

Tanto para la programación como para los lenguajes humanos, necesita un IDE adecuado ( entorno de desarrollo integrado ). Sinceramente, no creo que hubiera sido tan competente en el idioma francés si no hubiera crecido en un vecindario básicamente francés y estuviera constantemente en contacto con mis amigos que no entendían nada más que francés. Mismo caso con el lenguaje de programación Java, sin Eclipse … o cualquier IDE que admita java, me habría perdido como una aguja en una pila de heno. Mi punto: -> En ambos casos, necesita un entorno que permita y favorezca su crecimiento.

Por supuesto, no haría ninguna observación sustancial sin mencionar la similitud de ambos cuando se trata de practicar. Necesitas practicar constantemente cuando se trata de programar computadoras y aprender un nuevo idioma extranjero. Como mi papá siempre dice “La gente piensa que soy un mago, pero mi magia es la práctica”.

Existen otros patrones de similitud tanto para los lenguajes de programación como para los lenguajes humanos, pero ~~~ esos son los mejores que se me ocurren.

Las diferencias entre aprender lenguajes de programación y lenguas extranjeras (prefiero las lenguas humanas) no son muchas, al menos según yo. Pero diré que con el aprendizaje de un lenguaje humano, siempre existe la posibilidad de mezclar cosas y aún así ser entendido . A veces la mayoría de los hablantes de turco me entienden cuando digo “descargar etmek (en realidad indirmek)”, que es el verbo, para descargar. Por otro lado, muy pocos lenguajes de programación lo perdonarán o lo entenderán cuando ponga “” en lugar de (). Java nunca imprimirá HELLO si, por algún medio, escribe system.out.println (“HELLO”) ; (su ‘s’ debe ser mayúscula), los humanos pueden tolerarlo, pero las máquinas no.

Si pone mi respuesta bajo algún tipo de análisis de análisis cuantitativo, probablemente verá que aprender un idioma extranjero tiene una estrecha relación con el aprendizaje de un lenguaje de programación.

En ambos casos, tienes que:

  • aprender la sintaxis del lenguaje y la gramática
  • Aprende las expresiones idiomáticas y los matices del idioma, incluidas las trampas y las trampas.
  • practicar regularmente para lograr fluidez; cuanto más práctica, mejor

De lo contrario, hay diferencias notables:

  • un lenguaje de programación solo se usa para codificar algoritmos; se utiliza un lenguaje natural para expresar pensamientos e ideas humanas que tienen una base cultural; Un lenguaje natural puede ser usado para expresar emociones y dolor.
  • el uso de un lenguaje de programación debe ser extremadamente preciso; El uso del lenguaje natural puede ser muy informal, incluso descuidado.
  • el uso correcto de un lenguaje de programación debe ser lógicamente correcto; El uso del lenguaje natural puede ser ilógico, sin sentido, incluso caprichoso.
  • en la mayoría de los casos, conocer un lenguaje de programación hace que sea relativamente fácil elegir otro; en la mayoría de los casos, saber una lengua extranjera no ayuda realmente a aprender otra

Es completamente diferente, aunque ambos son válidamente considerados idiomas en el mismo sentido. Sin embargo, hay algunas similitudes más adelante en el proceso.

Se definen los lenguajes de programación. Los lenguajes naturales no lo son. Si nada más, un lenguaje de programación tiene una definición matemática rigurosa dada por la semántica del compilador o intérprete. En los viejos tiempos, esa era la definición del lenguaje. Durante los últimos 50 años, se han inventado mejores herramientas, como la semántica formal, para hacer que la definición sea mejor y más fácil de entender.

El proceso de aprendizaje de un lenguaje de programación implica comprender la semántica de los elementos del lenguaje y cómo encajan entre sí y verlos en términos matemáticos. Esto es todo lo que se necesita para ser competente en un idioma. Una vez que se aprende el idioma, se hace posible razonarlo.

Sin embargo, para convertirse en un experto en un lenguaje de programación, uno debe poder tener una comprensión intuitiva de los patrones. Esto sucede a través de la experiencia y la repetición, lo que hace que el aprendizaje de Hebbian suceda. Requiere mucha práctica y experiencia, y toma mucho tiempo.

Para aprender un lenguaje natural, este aprendizaje hebbiano es prácticamente todo lo que hay. Es posible imponer algunos formalismos y reglas sobre el lenguaje natural, pero

  1. Sólo raya la superficie, y
  2. Las formas más rápidas y efectivas de enseñanza de idiomas, como las técnicas inmersivas y las técnicas inmersivas modificadas, son particularmente ligeras a la hora de imponer formalismos en el lenguaje.

En mi experiencia, no mucho.

Los lenguajes de programación tienen reglas sintácticas muy bien definidas. Si tiene un solo punto y coma fuera de lugar, su programa no funcionará.

Los lenguajes naturales están llenos hasta el borde con excepciones y etimologías arcaicas. A menudo tienen una gramática extremadamente flexible y son lo suficientemente robustos como para que puedas arreglártelas con solo un puñado de verbos y sustantivos en cualquier orden.