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 una gran experiencia en programación (un poco más de un año). Pero la noble intención de mejorar las habilidades de programación se convirtió en algún tipo de TOC: siento que no me calmaré hasta que aprenda todos los lenguajes de programación relativamente conocidos.
Y aquí es pregunta en sí misma: Will lenguajes de programación de ser políglota en realidad le ayudan (y yo no habitual media "programador debe conocer al menos todos los paradigmas", me refiero a realmente todos los idiomas que normalmente oyen acerca)? ¿Alguien tiene una experiencia similar? ¿Ayuda con el trabajo / habilidades / carrera? ¿Con qué frecuencia puede aplicar esas habilidades?
fuente
Respuestas:
Eso ayuda
Eso no ayuda. Aunque una vez que conoces todos los paradigmas, puedes aprender un idioma a la semana.
Simplemente es más óptimo pasar una semana aprendiendo ese idioma cuando lo necesitas .
Nota al margen:
Aprender idiomas comunes / populares no es tan útil como aprender "todos los paradigmas". El primero no cubre al segundo. Por ejemplo, aprender Self 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 conoces Ruby.
Diseño de lenguaje:
Saber la mayoría de los idiomas es útil si escribe / diseña un nuevo idioma. Por lo tanto, hay un caso de uso sólido para él, pero es bastante nicho.
Lo que te recomiendo que hagas en su lugar:
Leer código Completa 2 al menos 3 veces
Los idiomas van y vienen de izquierda a derecha dependiendo de "lo que es popular". La tecnología se vuelve obsoleta después de meses o años, dependiendo de cómo sea la curva tecnológica. (La web desprecia la tecnología a un ritmo de cada 6 meses).
La técnica de programación y la teoría de la informática siempre se mantienen igual.
fuente
No se trata de saber codificar en una multitud de idiomas, se trata, como usted dice, de los paradigmas. Cuantas más opciones conozca, mejor. Saber varios idiomas ciertamente ayuda, pero si sigues aprendiendo los mismos tipos de idiomas, rápidamente llegarás a un callejón sin salida.
La clave es saber qué idioma / sistema es mejor para implementar una parte de su proyecto. Incluso si ha decidido un idioma principal (como 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 para esto 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.
fuente
En mi humilde opinión, no lo hace. Primero porque no puedes aprender un idioma en menos de un año. Se necesitan 2 días para poder escribir código en él, pero se necesita mucha experiencia para escribir código fluido y 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 código Java / .NET terrible como desarrollador de C ++, ya que muchos desarrolladores de Java escriben código C ++ terrible.
La mejor parte de aprender otros idiomas es que aprendes nuevos paradigmas y quizás tengas una mejor herramienta para algún problema concreto. Diga: necesita una aplicación GUI muy rápida y no pública, .NET es irremplazable allí.
Pero aprender un lenguaje para no usar estructuras en .NET, o no filtrar todos los objetos en C ++, lleva mucho tiempo. Creo que es mejor gastarlo en aprender principios de diseño, plataformas y el idioma que elija.
Pero esta es solo mi opinión.
fuente
No es práctico conocerlos , pero puede ser muy útil saber sobre 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 buscarlo".
fuente
Ayudaría más a su carrera al desarrollar el conocimiento del dominio y luego aprender muchos lenguajes de programación. Sin mencionar que necesitará aprender herramientas adicionales para eso, como cómo usar un generador de perfiles en su idioma, lo mismo para el depurador, el mejor marco de GUI y cómo programar rápidamente con él, qué bibliotecas de terceros comunes existen con compensaciones y modismos específicos del lenguaje.
También es más sabio aprender a hacer más cosas en lugar de muchas formas de hacer lo mismo.
fuente
He trabajado en varios sistemas donde los componentes se escribieron en varios idiomas (el peor infractor me exigió que entregara código escrito en Ada 83, C, Fortran 77, SQL y DCL, mientras que mi último trabajo me exigió entregar código C ++ y Java ) Entonces, sí, hay casos del mundo real en los que necesitas conocer varios idiomas lo suficientemente bien como para ser productivo en ellos (productivo = competente; no vas a ser un experto profundo en C ++ y Java y ... a menos que eres un bicho raro).
Más allá de eso, el punto de tomarse el tiempo para aprender varios idiomas es ayudar a separar los conceptos de la implementación . Para mí, OOP no comenzó a tener sentido hasta que trabajé con múltiples OOPL. Además, en algún momento de su carrera, tendrá que cambiar de marcha rápidamente y comenzar a trabajar en algo totalmente nuevo y desconocido; tomarse un tiempo para extenderse más allá de lo que necesita saber ayudará a facilitar esa transición cuando suceda.
fuente
Creo que sería mejor aprender algunos idiomas diferentes y luego al menos uno en profundidad antes de embarcarse en la necesidad de aprender todos los idiomas posibles. Una vez que tenga una cantidad mínima 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 más que alguien con un puñado de todo. Obtener profundidad es como aprender otro paradigma, cambiará su forma de pensar sobre la programación y abrirá puertas a proyectos realmente complejos y emocionantes.
fuente
Es como aprender a hablar muchos idiomas. Aprenderlos a todos hasta el punto de ser útiles es casi imposible. Apéguese a los que probablemente usará y estará 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 una tontería. No hay suficientes horas en el día para mantener sus habilidades en todos ellos a la vez.
fuente