Leí Un programador debería concentrarse en al menos cuántos idiomas? , y descubrí que no sé idiomas en los números 2 y 3 de la primera respuesta. Quiero aprender más idiomas para aumentar mis conocimientos y habilidades de programación. Sin embargo, generalmente en las empresas usan un marco fijo e idiomas y los cambios rara vez. Así que no estoy seguro si puedo tener la oportunidad de aprender esos idiomas y creo que sería lo mismo para otros programadores.
Sin embargo, he visto muchos desarrolladores que conocen varios idiomas aquí. ¿Cómo tienes la oportunidad de aprender muchos idiomas?
Actualizar
Creo que hay muchas personas que se sienten incómodas porque parece que no quiero estudiar en mi tiempo libre. En realidad, eso no es cierto. :) Soy un programador entusiasta y es por eso que publiqué este tipo de preguntas aquí. Estudio en mi tiempo libre, pero pensé que no sería suficiente ser hábil en los idiomas. De todos modos, gracias por todas las respuestas!
fuente
Respuestas:
Creo que la mejor manera de aprender un idioma es usarlo inmediatamente para hacer algo útil o que necesites .
Por ejemplo, me encontré en la necesidad de automatizar muchas operaciones que tenía que hacer manualmente cada vez. Tareas repetitivas, creación de archivos y carpetas, etc., así que simplemente elegí un lenguaje de script para hacer una herramienta útil. Fui por Perl y comencé a aprender la sintaxis y las funciones que necesitaba para crear mi script, gracias a los tutoriales y libros en línea.
En un par de días tuve mi herramienta en funcionamiento, luego en mi tiempo libre seguí aprendiendo cosas nuevas sobre el lenguaje y agregando más funcionalidades.
Otra gran opción que viene a la mente es: si no encuentra un idioma que le guste o cree que no se ajusta completamente a sus necesidades, aún puede crear su propio idioma .
Lo estoy haciendo ahora con Perl, elegí una sintaxis que me ayudaría a resolver mejor mis problemas específicos (ya que está escribiendo su propio idioma, es posible que desee elegir la sintaxis correcta para el trabajo, la que mejor describe y resuelve sus problemas de dominio específicos).
¿El resultado? El desarrollo ahora es mucho más rápido y el código en sí es mucho más descriptivo porque es un lenguaje específico de dominio. Hace unas semanas hice una pregunta relacionada con este tema con muchos enlaces útiles.
Puede usar cualquier lenguaje de secuencias de comandos para crear uno nuevo, incluso con PHP.
fuente
Este tipo de preguntas siempre me desconciertan. He usado 7 idiomas profesionalmente, he escrito código en alrededor de 5 idiomas más en entornos académicos y de pasatiempos, y puedo leer el código en quizás una docena de idiomas más. Ni una sola vez aprendí un idioma por el simple hecho de hacerlo. Siempre hay un objetivo concreto e inmediato en mente. Por ejemplo, este fin de semana aprendí suficientes bibliotecas de Android para comenzar a trabajar en una aplicación para mi familia. Si tuviéramos iPhones, habría aprendido Objective-C.
Mi sensación es que conocer varios idiomas es un síntoma de ser un programador experto, o al menos entusiasta, no una causa de ello. Si no puede pensar en una razón convincente para aprender un nuevo idioma, no sé cuánto le beneficiaría.
fuente
La mejor manera de aprender un nuevo idioma cuando tienes un problema que resolver. En lugar de simplemente usar lo que le resulta cómodo, dedique un tiempo a analizar qué herramientas (lenguajes, marcos, bibliotecas) podrían ser útiles para ayudarlo a resolver el problema. Si tienes tiempo para aprender la nueva herramienta, anímate. Es posible que no pueda hacer esto en el trabajo, cuando tiene presiones de horario y limitaciones tecnológicas impulsadas por factores externos, pero no hay ninguna razón por la que no pueda adoptar este enfoque para proyectos personales.
fuente
Solo tienes que hacer el tiempo para hacerlo. Mira el libro "Siete idiomas en siete semanas" de Prags. Te dará una introducción a siete idiomas muy interesantes y desde allí puedes ir a todo tipo de lugares.
fuente
Solo comienza a usarlo. Obviamente, construir un sistema de producción desde cero en un idioma al que nunca haya estado expuesto es una mala idea, pero aquí hay algunas sugerencias:
fuente
Elija algo relativamente pequeño que haya hecho en un idioma y desarrolle un reemplazo directo en otro idioma. Haz esto solo para desafiarte a ti mismo. Para completarlo, aprenderá mucho sobre el otro idioma.
Justo en la última semana, decidí aprender y volver a escribir un back-end de servicio web en NodeJS (anteriormente un servicio JSP). Solo me llevó alrededor de un día hacer que el servicio básico funcionara, y unos días más tarde Extendí su infraestructura, manejo de errores, registro y agregué monitoreo en vivo. Ahora es superior al original. Si la gerencia lo acepta o no es irrelevante, ya que aprendí algo y estoy muy feliz con eso.
fuente
Considero que una fracción de mi trabajo es "investigación". En 1998, la investigación significó corregir errores Y2K. La investigación del mes pasado significó aprender Subversion. He estado investigando durante 40 años. Cuando enumero los idiomas, debo enumerarlos en orden alfabético.
Cuando aprendo un idioma, leo el manual de referencia de principio a fin. Entonces lo uso por unos meses. Luego leí el manual de referencia nuevamente. La segunda lectura revela muchos trucos e implicaciones que me perdí la primera vez.
La investigación práctica cubre lenguajes normales, como C # y Pascal. La investigación avanzada cubre lenguajes extraños, como LISP y FORTH. Probablemente nunca usará LISP profesionalmente, pero aprenderlo amplía considerablemente su mente.
Por supuesto, en mi entorno, no me pagan por el tiempo, me pagan por la entrega. Si puedo dar a luz en dos semanas, usando seis horas al día, puedo usar las otras tres para investigación. Si lleva doce horas al día, bueno, entonces no hay investigación.
Toda investigación, por supuesto, debería tener alguna utilidad potencial para el que me paga. Las pequeñas utilidades son buenas; la próxima vez que desee procesar su código fuente C, pruébelo en Python. (No, no conozco Python, pero he oído que es bueno para la manipulación de cadenas).
fuente
A veces las oportunidades provienen de tu empleo. Por lo general, hay uno de los tres impulsores para este tipo de oportunidad.
Es una tecnología completamente nueva. Por ejemplo, muchas compañías pagaron la capacitación de C # para sus desarrolladores en los primeros dos o tres años después del lanzamiento de .NET.
Es facil de aprender. Por ejemplo, en una tienda de Linux, encontrará que necesita escribir scripts .bash. Si ha estado utilizando sesiones de terminal, etc., y hay otros desarrolladores que tienen experiencia en escribirlas, debería poder adquirir esta habilidad, aunque solo sea para automatizar algunas de sus propias tareas.
Es una habilidad técnica poco utilizada, y su empresa no quiere pasar por el tiempo y los gastos de encontrar un consultor para hacer el trabajo. Por ejemplo, aprendí a escribir XSLT porque necesitábamos una manera fácil de transformar algunos archivos XML (log) para mostrar.
Otras oportunidades que necesita hacer fuera del trabajo. Elija con cuidado: ¿qué tecnologías considera útiles en el futuro? En estos casos, debe dedicar tiempo y esfuerzo a aprender y aplicar la tecnología. Esto debería ser parte de un plan general de carrera, y es posible que deba pagar las clases. (Tuve suerte: cuando aprendí Java, lo enseñaban por la noche en un colegio comunitario local).
fuente
Respondiendo a su pregunta, desde mi propia experiencia (soy bastante nuevo en la industria, así que no mucho) aprendo nuevos idiomas haciendo una investigación para ver qué idioma se adapta mejor a mis necesidades. En la universidad, tenía un proyecto de criptografía que requería el uso de enteros grandes. Se estaba volviendo bastante complicado en C ++, así que recurrí a Java ya que proporcionaba la clase BigInteger. En mi trabajo actual, pude ver que las secuencias de comandos de shell no podían resolver completamente mi problema sin volverse demasiado complejo, así que aprendí Perl. Aprender sobre la marcha es mi consejo como requisito único. Por supuesto, si te encuentras aburrido, hay todo un mundo de idiomas para explorar.
fuente