La mayoría de los principiantes tienen la misma pregunta Corriendo en su mente, ¿por dónde empezar?
¿Apenas comenzando? Aprender Python
En lo que a mí respecta, hay exactamente una respuesta correcta aquí. Python es un lenguaje sorprendentemente bien diseñado. La sintaxis es simple pero efectiva, el rendimiento es lo suficientemente bueno para la mayoría de las tareas, la biblioteca estándar es probablemente la más incluida en las baterías de cualquier idioma, el espacio en blanco significativo lo obliga a formatear su código como debería estar haciendo de todos modos, y aún así es Todavía lo suficientemente flexible como para ser raro con.
Después de recoger un poco de Python, puede extenderse en algunas direcciones. Ruby es bastante similar, y no estarías mal para probarlo. Java es un poco más difícil en tus túneles carpianos que en Python, pero sigue aumentando en importancia después de unos 20 años.
- ¿Qué es rentable, publicar cursos en línea en YouTube como gratis o Udemy?
- ¿Puedo aprender hacking profesional en línea sin grado?
- ¿Cuáles son las mejores herramientas en línea gratuitas para aprender un idioma secundario?
- ¿Cuál es el mejor curso de programación de lenguaje en línea que es gratuito y proporciona certificados?
- ¿Cuál es el mejor entrenamiento en línea de qlikview?
Desesperado por el trabajo?
Si quieres hacer algo relacionado con internet, aprende JavaScript. Solo tenga cuidado, aunque parezca familiar, JavaScript es un lenguaje muy peculiar, por lo que no lo recomendaría como primera opción.
Si desea un trabajo serio con una empresa seria, aprenda Java (un lenguaje casi no relacionado). Solo lo suficiente para escribir una clase básica HelloWorldPrinterFactory, puede recoger el resto en el trabajo.
En última instancia, aprender ambos de estos. Java es casi esencial para el software de servidor de alto rendimiento, y la mitad de las personas que están gritando contraejemplos en sus monitores ahora mismo iban a nombrar un lenguaje JVM de todos modos. En cuanto a JavaScript, se está volviendo cada vez más difícil al saber que no hay JS, incluso las herramientas están empezando a tener el sabor de Javascript, y es posible que desee controlar algunas de las peculiaridades que mencioné antes de que tenga que implementarlo en producción.
¿Llegaste tan lejos y no sabes C? Aprender c
Si usted es un programador profesional pero no sabe C lo suficientemente bien como para leerlo y entenderlo, es probable que sienta vergüenza por este hecho. Tienes razón al sentirte así, pero no te desanimes. Sabiendo que Java o C # lo ayudará a llegar hasta allí, el resto es simplemente aritmética de punteros y administración de memoria manual, lo que debe saber absolutamente cómo hacerlo, en caso de que lo necesite algún día.
C ++ es un buen lenguaje, pero en ninguna parte cerca del nivel obligatorio que C es.
¿Quiere un bajo consumo de memoria y un alto rendimiento pero no quiere escribir C?
Prueba Go o Rust.
¿Cansado de OO y quieres probar algo funcional?
Recomiendo encarecidamente a cualquier desarrollador que pruebe alguna programación funcional. Pero, como se ha señalado en otra parte, la “programación funcional” probablemente pone el énfasis en el lugar equivocado, ya que muchas técnicas modernas de programación funcional emergen como un efecto de trabajar con datos inmutables. Un efecto secundario agradable de esto es que existen implementaciones de estructura de datos inmutables para muchos idiomas, y una vez que sepa cómo manipularlas en un idioma, puede hacerlo en cualquier lugar.
Soy un fan bien documentado de Clojure . Sigue siendo mi arma preferida para proyectos personales. Clojure tiene algunas características de rendimiento agradables sobre Python y otros lenguajes dinámicos, especialmente con la biblioteca core.async, que le permite realizar la concurrencia de CSP al estilo Go, pero aún así mantiene su brevedad. También tiene las mejores utilidades para trabajar con colecciones inmutables de cualquier idioma que conozca.
Haskell es también un muy buen lenguaje para saber. Se necesita un poco de esfuerzo para captar intuitivamente todo el sistema de tipo, pero una vez que lo haga, perderá esa seguridad cada vez que use algo más.
Otras opciones para las lenguas educativas pero esotéricas incluyen:
- OCAML
- Erlang
- Elixir (Erlang se encuentra con Ruby)
La respuesta final: realmente no importa mucho
El software es software. Diferentes idiomas y bibliotecas y tiempos de ejecución y máquinas virtuales y compiladores y otras cosas similares expondrán diferentes compromisos, pero al final, su elección de idioma es secundaria a su capacidad para resolver problemas de una manera que la computadora pueda entender. Puedes recoger el resto en el camino. (Otro complemento: intente Aprender X en Y Minutos para obtener una introducción rápida sobre casi cualquier lenguaje de programación).
Si me pregunta, su meta final es llegar al punto en que el lenguaje no sea un obstáculo; cada idioma es una combinación de otros, y mientras más idiomas conozca, mayor será su ventaja inicial al elegir uno nuevo. Mientras aprendas algo nuevo, o intentas hacer las cosas de manera diferente, vas en la dirección correcta.