¿Es más fácil aprender un lenguaje de programación que un idioma extranjero?

Un lenguaje de programación es mucho, mucho, mucho más pequeño que un lenguaje humano. Todo lo que necesita saber sobre un lenguaje de programación se puede resumir en un libro corto. (Para algunos idiomas, puede caber en una tarjeta 3 × 5, con espacio para hacer garabatos). Los “vocabularios” de los idiomas (también conocidos como API y bibliotecas) tomarán más tiempo, pero aún son mucho más delgados que un diccionario de idiomas. (y también son más exigentes).

Los lenguajes naturales son mucho más expresivos que los lenguajes de programación. El dominio de un lenguaje de programación es bastante pequeño. Todo lo que hace es mover los bits en la memoria, y se le proporcionan algunas herramientas de organización para hacerlo. La única ventaja en un lenguaje natural es que ya conoces un lenguaje natural, mientras que la programación requiere que aprendas algo sobre el dominio de las computadoras.

Incluso los lenguajes humanos diseñados para ser simples aún tienen una asombrosa variedad de tiempos verbales, aspectos, casos, pronunciaciones, reglas de transformación y otros objetos puramente gramaticales. Eso es antes de que te pongas sobre las complejidades únicamente humanas de la semántica y la pragmática; tienes la ventaja de saber un idioma, pero aún tienes mucho que aprender.

Y, por supuesto, la mayoría de los lenguajes humanos no fueron diseñados para ser simples; la mayoría son tan increíblemente complejos que incluso los hablantes nativos no entienden realmente por qué hacen las cosas que hacen. (¿Por qué es “fui a la tienda” pero “no fui a la tienda”? ¿De dónde vino el “¿por qué? ¿Por qué está el” no “en el medio? ¿Cómo” fue “se convirtió en” ir “? “Ni siquiera pensabas en eso, si hablas inglés como nativo. Es solo porque los humanos tienen áreas del cerebro dedicadas a todo lo que es posible. El inglés está lejos de ser el peor delincuente aquí. El inglés es mayormente sobre problemas de ortografía y pronunciación; las reglas gramaticales son comparativamente simples.)

Aprender un lenguaje de programación es mucho más fácil que aprender un lenguaje hablado, por un buen margen. Al menos si ya conoces a otro.

Los lenguajes de programación se basan en el lenguaje inglés, la sintaxis matemática y la lógica. Están diseñados para ser fáciles de entender. Además, la mayoría de ellos son muy similares. C # es básicamente el mismo lenguaje que Java, con algunas diferencias menores. Ambos son muy similares a C ++, que es una extensión de C. Python y JavaScript tampoco son tan diferentes. Combinados, estos idiomas tienen una cuota de mercado cercana al 50%, y todos están basados ​​en el mismo idioma (C). En realidad son más como dialectos.

Si sabe cómo programar, puede aprender un nuevo idioma y hablarlo con fluidez en pocos días. No se puede decir lo mismo de los idiomas hablados.

Respuesta corta : mismo tiempo y dificultad para llegar al nivel intermedio / avanzado.

respuesta larga :
Esta pregunta tiene demasiadas variables en cuenta, por lo que trataré de asumir estas condiciones previas:

  • nunca programó antes, y usted es un usuario de computadora regular (alfabetizado)
  • El lenguaje natural que está tratando de aprender es de una familia de idiomas absolutamente diferente de los idiomas que conoce, es decir, ni siquiera puede leer un alfabeto.
  • está intentando aprender un lenguaje de programación comparativamente avanzado sin bibliotecas o marcos adicionales, solo el núcleo. Necesita aprender conceptos relacionados importantes sin los cuales no puede resolver ningún problema no primitivo.
  • está intentando dominar la lectura y la escritura en lenguaje natural y una buena comprensión de las funciones avanzadas y la fluidez en el lenguaje de programación y no solo en la sintaxis
  • debe poder conversar con fluidez en uno y codificar una solución para cualquier problema práctico de tamaño y complejidad limitados en el otro

Para una persona promedio que estudia a tiempo completo una u otra, tomará por lo menos un año, tal vez 2. Aún así, cometerá errores tanto en el lenguaje natural como en el de programación.

Dos diferencias principales son: el lenguaje natural es mucho más vasto pero requiere menos pensamiento lógico y más memorización. El lenguaje de programación requiere que usted entienda conceptos como los algoritmos básicos, las estructuras de datos y el estilo, además de la sintaxis de aprendizaje, requiere más capacidad mental y menos memorización.

Así que en breve un par de años para cualquiera de los dos (escuela a tiempo completo). Ahora, si agrega todas las demás variables, como el fondo, la familiaridad con varios conceptos, su edad, su tipo personal, etc., dependerá mucho.

Es muy interesante que la gente tenga respuestas afirmativas y no.

Hablamos inglés. Bueno, la mayoría de nosotros en este foro lo hacemos. La mayoría de los lenguajes informáticos utilizan un número muy pequeño de palabras en inglés. Así que es natural comparar el inglés, que tiene más palabras por lejos que cualquier otro lenguaje humano, con estos idiomas parecidos al inglés reducidos artificialmente.

Pero digamos que comparamos el hebreo moderno, con sus pocos miles de palabras, con Common Lisp. El hebreo es casi ciertamente más fácil de aprender.

Además, si conoces el idioma, ¿realmente sabes el idioma? C # es un lenguaje bastante pequeño, aunque más grande que la mayoría. Aún así, es bastante inútil sin el .NET framework. Hace años, alguien estimó que había 45,000 métodos y propiedades en .NET. Hay mucha gente que sabe 45,000 palabras en inglés. Nunca he conocido a nadie que sepa más que una pequeña fracción de las “palabras” de .NET. La mayoría de la gente simplemente adivina y espera que a Intellisense se le ocurra algo que suene bien, utilizando su conocimiento del inglés para adivinar.

También podemos ver cuánto tiempo lleva aprender. Un semestre es suficiente para aprender una parte funcional bastante justa de C # o C ++, pero en ninguna parte se encuentra la fluidez. Me parece lo mismo para el español o el alemán.

Los expertos en lenguajes informáticos pueden llegar a una parte razonablemente funcional de un nuevo idioma en aproximadamente una semana, pero eso parece tener mucho que ver con las similitudes internas. Si puede descubrir qué es lo que un lenguaje está tratando de hacer, entonces puede adivinar fácilmente cómo funcionará algo nuevo y acertar la mayor parte del tiempo. Eso no es realmente cierto para los idiomas humanos, no importa lo que diga Noam Chomsky.

Un lenguaje de computadora (CL) no tiene tiempos verbales, modales, sustantivos, adjetivos, no puede usarlo metafóricamente o con sentidos múltiples y ocultos. CL utiliza solo operadores imperativos (palabras reservadas y métodos de biblioteca,), opera con datos y compara sus valores o atributos.

Con un CL moderno, le muestra a la computadora cómo manipular entidades abstractas llamadas objetos. Todavía es un arte crear bien tales objetos, pero la gramática y el léxico utilizados son mucho menos complejos que la mayoría de los lenguajes naturales (NL).

Lo contrario es que NL se comunica a otros humanos que pueden rellenar los orificios, mientras que para una computadora debe ser muy exacto con respecto a lo que desea (bueno, eso lentamente, lentamente puede cambiar …)

En CL, también debe ser muy competente con la lógica, no en el sentido de que los filósofos quieran aproximarse a la lógica, sino de la única manera en que la lógica existe y la computadora entiende. Por ejemplo, la mayoría de las personas podrán corregir los errores de uso de ‘y’ en lugar de ‘y’ y extraer del contexto si es un ‘o’ o un ‘xor’. Al mismo tiempo, la mayoría de los humanos sobrevivirán sin poder invertir correctamente la aserción ‘a => b’ (como ‘! B =>! A’.)

En general, el alcance de CL es mucho más reducido que un NL y esto hace que un CL sea mucho más fácil de aprender que un NL, aunque algunos programadores nunca lo harán bien …

¿Es más fácil aprender un lenguaje de programación que un idioma extranjero?

Un lenguaje de programación informática , aunque diseñado por el hombre, e incluso fluido en su definición, está rígidamente fijo en su sintaxis y significado. Este es un requisito, ya que una computadora no tiene matices ni emociones con las que lidiar: un lenguaje de programación debe ser compilado o interpretado por la computadora.

Un lenguaje humano es mucho más grande, en varios órdenes de magnitud, y está plagado de excepciones, juegos de palabras, homófonos, homónimos y una definición fluida y una sintaxis mal definida.

Considere el contraste entre una computadora que comprende un lenguaje informático (compilador) y una computadora que comprende un lenguaje humano (procesamiento de lenguaje natural). Un compilador de lenguaje, aunque no es un esfuerzo trivial de ninguna manera, sigue siendo posible con precisión y confiabilidad. Por otro lado, el área del procesamiento del lenguaje natural, la comprensión del lenguaje humano, sigue en desarrollo y toca la inteligencia artificial, logrando que una computadora pueda pensar como un humano.

Aprendí muchos lenguajes informáticos y humanos, y dado lo que sé y lo que he experimentado:

Un lenguaje de programación es mucho más fácil de aprender que un lenguaje humano.

Aprender programación requiere que los cerebros piensen de maneras menos naturales que los lenguajes naturales … obviamente.

Algunas personas “entienden” la programación, y algunas personas realmente lo pasan mal y quizás nunca sean competentes. La mayoría de las personas pueden aprender un idioma, incluso si es el segundo.

Con ambos, ayuda comenzar temprano, pero en el caso de un lenguaje natural, puedes elegir un nuevo idioma más fácilmente cuando eres un niño muy pequeño, a veces casi sin esfuerzo. No es típicamente cierto con un lenguaje de programación.

Los cerebros humanos están hechos para usar lenguaje natural. Sí, como muchos han señalado, los lenguajes naturales son excepcionalmente complejos en comparación con los lenguajes de programación, pero no creo que eso signifique que es “más fácil” aprender a programar de manera competente que a dominar un lenguaje natural.

El lenguaje informático es más fácil de aprender. La máquina tiene paciencia infinita.

Los lenguajes de programación, en su raíz, hacen lo mismo. Generan instrucciones de ensamblaje o lenguaje de máquina.

Si aprende lenguaje ensamblador para un par de computadoras diferentes, entonces probablemente aprenderá a pensar en cualquier lenguaje de alto nivel en términos de qué instrucciones de ensamblaje genera cada instrucción de alto nivel. Si tiene un problema para comprender lo que generará una instrucción dada, generalmente puede obtener el compilador o el procesador de idioma para informarle. Esa es una salida opcional de procesador de lenguaje casi universal. Una vez que entienda el código generado, no puede haber ninguna duda sobre lo que realmente hace el lenguaje de alto nivel. No es necesario que pueda escribir lenguaje ensamblador para la computadora de destino, ya que la mayoría de las computadoras tienen ensambladores simbólicos relativamente similares. En los casos en que los detalles de las instrucciones reales son importantes, debería ser fácil buscarlos en la computadora en cuestión.

Este enfoque no es para todos, pero realmente funcionó bien para mí.

Me temo que no hay un enfoque correspondiente a las lenguas humanas.

El lenguaje de programación no es un lenguaje hablado, no lo hablas. El lenguaje humano es un lenguaje hablado. Esto hace una gran diferencia, especialmente si considera que entre las cuatro habilidades lingüísticas (lectura, escritura, comprensión auditiva y expresión oral), la última habilidad es una habilidad activa y la mayoría de las veces es la más difícil para los estudiantes de idiomas.

En lo que respecta a la lengua extranjera, el término común es “adquisición” en lugar de “aprendizaje”. La diferencia es que el aprendizaje es un proceso consciente mientras que la adquisición es inconsciente. Cuando adquieres un idioma extranjero, se convierte en parte de ti, parte de quién eres.

Una parte importante de conocer un idioma es saber en qué contexto cultural y social usarlo. No se trata solo de cuántas palabras sabe, sino de qué tan bien comprende cómo y cuándo (y con quién) usarlas adecuadamente. Esta parte no existe en el lenguaje de programación.

Esta ha sido una lucha constante mía.
Mientras hacía un lío de español y francés a la vez, conseguía aprender Básico, Pascal y C.
Después de esto logré Perl, Php, Python & Ruby a nivel de aficionado.
Ahora, debido a la ubicación y la carrera, la fluidez del noruego y el mandarín son altamente deseables. Sin embargo, me resulta más fácil lidiar con el aprendizaje de cómo desarrollar aplicaciones iOS.

PD: no soy ni nunca he sido programador de carrera, mi trabajo diario es bastante diferente, pero la programación me trae algo de dinero para el barco.

Creo que estos dos objetivos son más o menos iguales en términos de dificultad. Se necesitan algunos años para dominar algunas habilidades profesionalmente y poder resolver problemas difíciles de la vida real. Sin embargo, nos adaptamos a diferentes cosas y tenemos nuestras propias preferencias. Para mí, personalmente, aprender programación fue más fácil que, por ejemplo, el inglés, pero para usted puede ser al revés.

¡Un lenguaje de programación es realmente simple y pequeño si se compara con otros idiomas extranjeros! Sabemos leer y escribir en inglés. Si conocemos un idioma definitivamente podemos crear nuestro propio PL. Por otro lado, si conocemos un PL, será difícil para nosotros crear un lenguaje legible para los humanos, ya que tendremos mucho menos vocabularios para construir y expresar una oración.

Depende … mira mi próxima publicación de autobio en High Volume All Connections Theory

Definitivamente es más fácil de aprender, solo para hablar speak

Depende del idioma que hables, si es inglés, entonces sí, es fácil:

por ejemplo, sabemos que

Imprimir “hola mundo”

imprime esas palabras ‘hola mundo’

pero un francés no sabría lo que realmente significa imprimir

Sí. Me resultó mucho más fácil aprender algunos lenguajes de programación en comparación con aprender algo de francés.