Instructores de lenguaje y ciencias de la computación: ¿Es usted un lenguaje de programación de computadoras que cuenta como idioma extranjero en la escuela secundaria?

No, no lo soy.

Aprender un idioma extranjero requiere que usted desarrolle un extenso vocabulario, domine su gramática y, hasta cierto punto, se familiarice con la forma en que las personas se expresan en el contexto de las culturas donde se usa el idioma. Hay una literatura relacionada, geografía, historia, dichos comunes, sociedad contemporánea, etc. , etc.

Los lenguajes de programación apenas tienen vocabulario, gramáticas artificialmente simples y muy poca cultura de la que hablar. Más bien, tienen una lógica relacionada, dominios de aplicación comunes, bibliotecas de funciones y estructuras de datos utilizadas con frecuencia, sistemas de tiempo de ejecución, plataformas de implementación comunes, etc.

Ambas son cosas que vale la pena aprender, pero difícilmente se pueden sustituir unas por otras: no puedes encontrar una nación de personas que expresen sus pensamientos y sentimientos en Javascript más de lo que puedes programar una computadora en portugués.

Los lenguajes de programación y los lenguajes naturales son cosas diferentes para diferentes propósitos.

Tratar de contar los lenguajes informáticos como idiomas extranjeros es un poco de alcance, sin importar cuáles sean sus argumentos. Lo que a mí me parece más que a nadie es que alguien se muestre perezoso con sus créditos de la FA y quiera encontrar una solución rápida para la que no existe.

Lo que constituye una lengua extranjera es cualquier lenguaje verbal o no verbal que permita una expresión ilimitada y encarne las culturas de las personas que esencialmente dieron vida a estos idiomas. Los lenguajes de computación no encajan en esta categoría.

Para ilustrar la diferencia entre un lenguaje extranjero y un lenguaje informático, le pregunto esto: ¿cómo argumentaría a favor o en contra de su propio argumento en un lenguaje como Python? Python no es lo tuyo? Prueba HTML. O RubyOnRails. Tal vez tratar de expresar tu propio argumento es demasiado difícil. ¿Cómo pedirías un vaso de agua usando un programa de computadora? Podría definir una función para hacer la pregunta, pero aún necesitaría un lenguaje humano para poder expresar ese pensamiento. Ahí radica la diferencia.

La adquisición de idiomas extranjeros se ha vuelto aún más importante en un mundo activamente globalizado. Necesitamos más personas con las habilidades para derribar las barreras del idioma para que todos podamos trabajar juntos. ¿Alguna vez has notado cuántas culturas extranjeras enseñan inglés como segundo idioma? ¿O español? O chino? Esos tres idiomas mundiales tienen la mayor población de hablantes, y como resultado, todos quieren ser universales y poder comunicarse entre sí. Simplemente no puedes hacer eso con un lenguaje de computadora.

De todos modos, la conclusión es que no se puede contar un lenguaje de programación para el crédito de FA. Creo que puedo asumir que no estás interesado en convertirte en bilingüe, así que toma algo como el español. Las aulas de idiomas extranjeros tienden a ser muy lentas con una intensidad mínima, por lo que probablemente pueda mantenerse al día.

Enseño hebreo, pero también soy competente en programación. Hay muchas coincidencias en las habilidades requeridas para la programación y el aprendizaje de idiomas, pero aún son muy diferentes.

Aprender un idioma, además de abrir al aprendiz a una nueva cultura (probablemente la razón más importante para aprender un idioma), puede enseñar cómo los sistemas pueden evolucionar y cómo se ven los sistemas evolucionados (a diferencia de los sistemas diseñados). Debido a que los lenguajes están formados por miles de años de historia, cualquier lenguaje humano es mucho más complejo y expresivo que cualquier lenguaje de programación. La gramática, la sintaxis y el vocabulario de cualquier lenguaje humano son mucho más grandes y más difíciles de dominar que los modismos de cualquier lenguaje de programación (incluso perl: D). Puede aprender un lenguaje de programación de arriba a abajo en cuestión de semanas (o días, con experiencia previa en programación), pero incluso el lenguaje humano más sencillo requiere años de estudio fuera de un estudio intensivo o un contexto de inmersión.

Las lenguas humanas también son mucho más abstractas y ambiguas. En un lenguaje de programación, una declaración tiene un solo significado para la computadora. Nunca hay ambigüedad. La computadora nunca tiene que decidir qué significa un comando. Hay algunos idiomas, como Perl, donde el contexto importa para la interpretación de una expresión determinada (Perl fue diseñado por un lingüista), aunque a veces se considera un defecto de diseño. Aún así, dentro del contexto, no es ambiguo para la computadora lo que significa la declaración. Solo puede significar una cosa. Contrasta esto con el lenguaje humano, donde casi cualquier expresión o palabra (o construcción sintáctica o forma morfológica) puede tener múltiples significados. El contexto generalmente deja claro el significado, pero la ambigüedad todavía abunda, por no decir nada del subtexto. Hay una sutileza en el lenguaje humano que es imposible, e incluso sería indeseable en un lenguaje de programación.

Al mismo tiempo, aprender un idioma extranjero no enseña lo que podría ser aprender un lenguaje de programación. La programación enseña lo que se supone que deben enseñar las matemáticas, pero a menudo no lo hace. Nos dicen que estudiamos álgebra o cálculo para aprender a resolver problemas, pero la mayoría de las personas aprenden a memorizar fórmulas que luego olvidarán. Los problemas de la historia, por supuesto, enseñan a resolver problemas.

La programación de computadoras es toda una historia de problemas. Tiene un conjunto finito de herramientas que se pueden componer infinitamente para aplicar a problemas complejos. La programación también enseña diseño y estrategia, hasta cierto punto. Resolver problemas difíciles requiere previsión y metodología. Las lenguas humanas como campos de estudio no están equipadas para enseñar esto.

Sin embargo, y lo digo como profesor de idiomas, creo que es más importante para los estudiantes aprender los rudimentos de la programación que para ellos aprender un idioma extranjero. Creo que las habilidades que enseña son más valiosas. En un mundo en el que cada vez más interactuamos con máquinas y programas de computadora afectan todos los aspectos de nuestras vidas, para bien o para mal, no creo que nadie deba ignorar cómo funciona esta tecnología. Cuando la gente ignora la programación, obtienes … bueno, ¡obtienes el Congreso de los Estados Unidos!

El aprendizaje de idiomas también es importante. Debería tener algunos créditos para graduarse, pero creo que la programación de computadoras debería integrarse profundamente en el plan de estudios de matemáticas, comenzando en la escuela primaria y continuando a lo largo.

Si bien sigo diciendo a las personas que aprender un nuevo lenguaje de programación es similar a aprender un nuevo idioma, hay algunas diferencias clave en la forma en que se relacionan con el “idioma extranjero” en términos de contexto.

Decir que aprender un lenguaje de programación es similar a una lengua extranjera es lo mismo que decir que la poesía es similar a una lengua extranjera.

Ambos usan principalmente el inglés pero lo emplean en un contexto especial. Esto es cierto tanto para la poesía inglesa como para la programación de ambos. Las palabras del idioma inglés más algunas palabras derivadas especiales exclusivas del contexto se organizan en patrones que van más allá del significado literal de las palabras y las oraciones.

Estoy de acuerdo en que aprender la Asamblea, por ejemplo, podría verse como aprender una lengua extranjera pero no C ++. Aprender a codificar en binario calificaría, aprender JavaScript no. Usted ve el patrón, supongo.

Disfruta la vida, es lo mejor!

A menos que, literalmente, vayas hablando en código, no veo cómo un lenguaje de programación podría ser un sustituto de un lenguaje hablado. La intención de aprender a hablar un idioma extranjero es poder comunicarse con las personas que hablan ese idioma (y tal vez ampliar su conocimiento del idioma hablado en general). La intención de aprender un lenguaje de programación es expresar lo que quieres que haga una computadora. No puedo ver a ninguno de ellos ser un buen sustituto de la intención del otro.