¿Vale la pena que los lenguajes informáticos sean políglotas? [cerrado]

14

A menudo se puede escuchar que los programadores deben aprender muchos idiomas diferentes para mejorar ellos mismos. Todavía voy a la escuela y no tengo mucha experiencia en programación (poco más de un año). Pero la intención noble de mejorar las habilidades de programación se convirtió en algún tipo de OCD: siento que no me calmaré hasta que aprenda todos los lenguajes de programación relativamente conocidos.

Y aquí está la pregunta en sí misma: el hecho de que los lenguajes de programación sean políglotas realmente te ayudará (y no me refiero a los habituales "El programador debería saber al menos todos los paradigmas", quiero decir realmente todos los idiomas que usualmente escuchas acerca de)? ¿Alguien tiene experiencia similar? ¿Ayuda con trabajo / habilidades / carrera? ¿Con qué frecuencia puedes aplicar esas habilidades?

    
pregunta Anton Barkovsky 01.07.2011 - 14:57

8 respuestas

10
  

"El programador debe conocer al menos todos los paradigmas"

Eso ayuda

  

Me refiero a realmente todos los idiomas que usualmente escuchas

Eso no ayuda. Aunque una vez que conozcas todos los paradigmas puedes aprender un idioma a la semana.

Simplemente es más óptimo pasar una semana aprendiendo ese idioma cuando necesitas ese idioma.

  

Un buen programador es un programador perezoso

Side-note:

Aprender idiomas comunes / populares no es tan útil como aprender "todos los paradigmas". El primero no cubre el segundo. Por ejemplo, el aprendizaje del Ser es increíblemente útil para comprender la OO prototípica. No es un lenguaje común ni popular, pero es mucho más útil que aprender python cuando ya sabes ruby.

Diseño del idioma:

Conocer la mayoría de los idiomas es útil si está escribiendo / diseñando un nuevo idioma. Así que hay un caso de uso sólido para ello, pero es bastante nicho.

Lo que te recomiendo que hagas en su lugar:

Lea el Código Completo 2 al menos 3 veces

Los idiomas van y vienen a la izquierda y a la derecha dependiendo de "lo que es popular". La tecnología se desaprueba después de meses o años, dependiendo de cómo sea la curva tecnológica. (La web desaprueba la tecnología a una tasa de cada 6 meses).

La técnica de programación y la teoría de la ciencia de la computación siempre se mantienen igual.

    
respondido por el Raynos 01.07.2011 - 15:02
4

No se trata de saber codificar en una multitud de idiomas, se trata, como usted dice, de los paradigmas. Cuantas más opciones conozcas, mejor. El conocimiento de varios idiomas sin duda ayuda, pero si sigue aprendiendo los mismos tipos de idiomas, llegará rápidamente a un callejón sin salida.

La clave es saber qué idioma / sistema es mejor para implementar una parte de su proyecto. Incluso si se ha decidido por un idioma principal (como lo hace la mayoría de los proyectos), todavía tendrá todo tipo de herramientas, scripts, automatización y soporte de compilación que deben escribirse. Por lo general, una variedad de otros idiomas o herramientas son mejores que su idioma principal.

Solo para aclarar, me parece una tontería intentar aprender todos los idiomas que realmente escuchas: hay cientos de estos y, a menudo, son solo pequeñas variaciones en otros idiomas.

    
respondido por el edA-qa mort-ora-y 01.07.2011 - 15:06
3

En mi humilde opinión, no lo hace. En primer lugar porque no puedes aprender un idioma en menos de un año. Se requieren 2 días para poder escribir código en él, pero se necesita mucha experiencia para escribir con fluidez y un código bien formado para el idioma dado. Por qué GC funciona como lo hace, dónde asignar memoria, qué construcciones son más rápidas, cómo concatenar correctamente las cadenas, cuáles son los rincones peligrosos del lenguaje, etc.

Escribo un terrible código Java / .NET siendo un desarrollador de C ++, ya que muchos desarrolladores de Java escriben un terrible código de C ++.

Lo mejor de aprender otros idiomas es que aprendes nuevos paradigmas y quizás tengas una herramienta mejor para un problema concreto. Digamos que necesitas una aplicación GUI no pública muy rápida, .NET es irreemplazable allí.

Pero aprender un idioma para que no utilices estructuras en .NET, o no filtres todos los objetos en C ++, lleva mucho tiempo. Creo que es mejor gastarlo en aprender los principios de diseño, las plataformas y el idioma de su elección.

Pero esta es solo mi opinión.

    
respondido por el Coder 01.07.2011 - 15:08
2

No es práctico conocerlos , pero puede ser muy útil conocer sobre a ellos. Lo que quiero decir con eso es que cuando tienes un nuevo problema, puedes decir: "Recuerdo vagamente que [otro idioma] tenía una forma superior de resolver problemas como este. Debería buscar eso".

    
respondido por el Karl Bielefeldt 01.07.2011 - 17:19
1

Ayudarías más a tu carrera construyendo el conocimiento del dominio y luego aprendiendo muchos lenguajes de programación. Por no mencionar que necesitarás aprender herramientas adicionales para utilizarlo, como utilizar un generador de perfiles en tu idioma, lo mismo para el depurador, el mejor marco de GUI y cómo programar rápidamente con él, qué bibliotecas comunes de terceros existen con concesiones. y expresiones idiomáticas específicas.

También es más sabio aprender a hacer más cosas que a muchas maneras de hacer lo mismo.

    
respondido por el Peter Smith 01.07.2011 - 16:31
1

He trabajado en varios sistemas donde los componentes se escribieron en varios idiomas (el peor infractor me exigió que entregara el código escrito en Ada 83, C, Fortran 77, SQL y DCL, mientras que mi último trabajo me exigió que entregara C ++ y código de Java). Entonces, sí, hay casos del mundo real en los que necesitas conocer varios idiomas lo suficientemente bien como para ser productivos en ellos (¡productivo! = Competente; no vas a ser un experto en C ++ y Java y ... a menos que seas un freak).

Más allá de eso, el punto de tomarse el tiempo para aprender varios idiomas es ayudar a separar conceptos de implementación . Para mí, la OOP no comenzó a tener sentido hasta que trabajé con varias OOPL. Además, en algún momento de tu carrera, tendrás que cambiar de velocidad rápidamente y comenzar a trabajar en algo totalmente nuevo y desconocido. Tomarse un tiempo ahora para estirarse más allá de lo que necesita saber ayudará a facilitar esa transición cuando suceda.

    
respondido por el John Bode 01.07.2011 - 16:31
1

Creo que sería mejor que aprendieras unos idiomas diferentes y luego al menos uno en profundidad antes de embarcarte en la necesidad de aprender todos los idiomas posibles. Una vez que tenga un mínimo de amplitud, la profundidad se vuelve realmente importante para su progreso como desarrollador. Habría visto a alguien con profundidad en uno o dos idiomas y un puñado de un par de personas distintas de alguien con un poco de todo. Obtener profundidad es como aprender otro paradigma, cambiará tu forma de pensar acerca de la programación y abrirá las puertas a los proyectos realmente complejos y emocionantes.

    
respondido por el HLGEM 01.07.2011 - 17:42
0

Es como aprender a hablar muchos idiomas. Aprenderlos todos hasta el punto de ser útil es casi imposible. Apégate a los que probablemente uses y estarás mejor. Podría aprender C ++, C # y Java bastante bien, pero tratar de exprimir Perl, Python, VB (no VB.NET), Ruby y JavaScript a un nivel profesional al mismo tiempo es simplemente tonto. No hay suficientes horas en el día para mantener tus habilidades en todas ellas a la vez.

    
respondido por el Christopher Bibbs 01.07.2011 - 15:12

Lea otras preguntas en las etiquetas