Como dijo James Jefferies, esto necesita aclaración. Sin embargo, supongo que te refieres a los lenguajes de programación, ya que esta pregunta está etiquetada con cosas sobre ellos. (De cualquier manera, sin embargo, aprender una nueva cada año es una idea maravillosa. Hace tiempo que lo sugiero a los programadores, e incluso si te refieres a los idiomas humanos, eso te ayudará a desarrollarte como persona y posiblemente a tus perspectivas de carrera).
Como no menciona los lenguajes de programación que ya conoce, no asumiré ninguno.
Por lo tanto, no sugeriría a C como lo hizo Katja Bergman. La sintaxis es en realidad bastante pequeña y simple, PERO tiene muchos conceptos que un principiante probablemente no entenderá, y eso puede hacerte tropezar muy mal. Requiere una gran cantidad de “mantenimiento de registros” mentales que serán tediosos, así como el hecho de tener que implementar muchas de las pocas conveniencias que obtiene con la mayoría de los otros idiomas más modernos. Guarde C para, digamos, # 3 o # 4, al menos . Y ciertamente no te molestes con C ++ hasta que hayas obtenido un control decente de C; C ++ es como C con toneladas de complicaciones adicionales atornilladas.
La sugerencia de Steven Ferrer sobre Python es buena. Es posible que se sienta frustrado por su sensibilidad a la sangría exacta; algunos consideran que esto es algo bueno, otros no tanto. Creo que ese aspecto es excelente para cuando escribes un código que los demás tendrán que entender, no tanto para aprender como uno de tus primeros idiomas. Aparte de eso, me gusta, así que quizás sea tu segundo idioma o algo así.
- ¿Cómo se puede aprender React y Redux durante el fin de semana?
- Cómo aprender 5 nuevos idiomas.
- Quiero aprender Data Science. Terminé mi graduación en la cadena de comercio. ¿Soy elegible para el curso?
- ¿Cuáles son algunos trucos de 5 minutos que puedo aprender para mejorar mis habilidades de Photoshop?
- ¿Cuáles son algunos sitios excelentes para que los escritores aprendan sobre diferentes estilos de escritura?
Para principiantes, sin embargo, le daría la ventaja a Ruby. Su sintaxis es aún más hermosa (IMHO), en parte porque fue diseñada específicamente con la felicidad del programador como un objetivo explícito. Su orientación a objetos es mucho más consistente que Python (no te preocupes si no entiendes lo que eso significa, lo sabrás después de aprender ambos idiomas), y también tiene una gran comunidad que se comunica activamente con los nuevos programadores. También es el lenguaje del marco de aplicación web Rails, que es muy popular en estos días. (Dicho esto, también lo es Django, que está en Python).
Hablando de aplicaciones web, si tiene la intención de realizar cualquier desarrollo web, es casi seguro que necesitará JavaScript. No me gusta como lenguaje, pero es casi ineludible en la web.
Sin embargo, una vez que hayas aprendido uno o dos, te animo a que vayas en direcciones diferentes. Hay muchas maneras diferentes en que puede poner los idiomas en categorías, como si están orientados a objetos, imperativos, declarativos, funcionales o algunos mixtos; si su tipeo es fuerte o débil; si su escritura es estática o dinámica; nivel alto o bajo; compilado o interpretado; y muchos otros.
Por lo tanto, esto podría ser un buen plan para los próximos años:
- Ruby (incluyendo los fundamentos de Rails)
- JavaScript (incluidos los conceptos básicos de Node.js y al menos un marco de front-end, como Backbone, Ember, Angular o React; esto lo expondrá a una orientación de objeto “prototípica” en lugar de una OO “basada en clase”) ; Puedes combinar esto con Rails para hacer grandes aplicaciones web.
- Python (incluyendo los fundamentos de Django)
- Elixir (para conocer la programación funcional ; incluir los conceptos básicos del marco de la aplicación web de Phoenix y de OTP para conocer la programación distribuida )
- C # (principalmente porque es popular y un lenguaje decente, y le dará otro ángulo en OO y lo expondrá a la pila Microsoft / .NET)
- F # (mientras que el MS stack está fresco en tu mente, y te da otro ángulo en la programación funcional)
- Java (para desarrollar aplicaciones “empresariales” y aplicaciones móviles Android); puede intentar crear aplicaciones móviles con un back-end API Java o en cualquiera de los anteriores
- Swift (para desarrollar aplicaciones móviles iOS ); de nuevo, intenta hacer que se comunique con un back-end API
- C (para ver la programación imperativa y obtener una mejor comprensión de lo que está sucediendo “debajo del capó”)
- Ensamblador (incluso una comprensión más profunda de debajo del capó): realmente no necesita dominar esto, tal vez podría obtener una comprensión suficiente al mismo tiempo que estudia C
- C ++ (combinar “bajo el capó” con OO)
Creo que es suficiente por ahora. El paisaje cambiará bastante en esos años, haciendo que algunas cosas suban o bajen de importancia e introduciendo nuevos jugadores. Siéntase libre de reorganizar de acuerdo con los intereses que desarrolle (sin juego de palabras). Mientras tanto, siempre trate de retroceder mentalmente y echar un vistazo a lo que los hace a todos iguales y lo que los hace diferentes. Esto te ayudará mucho en el aprendizaje de los últimos. También aprenda sobre los principios generales de cómo escribir un buen software (para cualquier definición de “bueno”) rápidamente .
Ahora, en caso de que te refieras a los idiomas humanos : el inglés es el más importante, pero obviamente lo tienes. El francés ayudará, pero en esa categoría creo que el español sería más útil. Obtén un control decente de uno u otro, luego intenta algo muy diferente. En el resto de las categorías de idiomas, creo que el chino mandarín sería el más útil, y el hindi también podría serlo. Si no quieres ser tan diferente, prueba un idioma germánico como, por supuesto, alemán, holandés, sueco, etc. (el inglés es una gran ayuda allí). Ya que conoces a Igbo, asumiré que eres de y posiblemente aún en Nigeria o en algún lugar cerca de allí, por lo que algo más cerca de casa podría ser más útil, como el swahili o el árabe. O puede convertirlo en una especie de juego, siempre tratando de elegir el que esté más alejado de cualquiera que ya conozca, sin importar lo útil que sea. 🙂