¿Qué lenguajes de programación vale la pena aprender y por qué?

Muchas personas suponen que hay un lenguaje particular o un conjunto de idiomas que son la clave para millones cuando se trata de programación. Por desgracia, este no es el caso. Si bien hay muchos programadores bien pagados, puedo asegurarles que este no era su enfoque. El ‘mejor pagado’ depende de varios factores, no solo en el idioma en el que dominas.

Conocer el idioma no te hace valioso, resolver problemas sí

En primer lugar, muchas personas han podido tomar un curso de “campamento de entrenamiento” en un idioma, aprender el núcleo en muy poco tiempo y conseguir un trabajo. Sin embargo, al igual que con muchos trabajos, se vuelve muy diferente cuando entras en el mundo real. La programación es más que una habilidad que aprendes y aplicas, sino aprender una forma de pensar. Debe dominar el uso de esa habilidad para resolver problemas del mundo real de manera eficiente. ESO es lo que es valioso para un empleador a largo plazo.

A medida que cambien las necesidades de las empresas, también lo harán los salarios

También a medida que las tecnologías cambian, también lo harán las habilidades mejor pagadas, en lo que respecta a la programación. Un gran ejemplo es Swift. Swift es MUY popular en este momento debido al aumento en el mercado de programación móvil. Sin embargo, no hace mucho tiempo que Objective-C era el ‘recurso’ para iOS y dispositivos móviles. Debe cambiar con los tiempos si desea mantenerse en la cima. Eso significa comprometerse con el aprendizaje continuo. No significa que aprenderá todos los idiomas, pero tener un buen conocimiento práctico de muchos le servirá bien.

Hay MUCHOS idiomas por ahí

Algunos pueden considerarse muertos, pero si hay un sistema que lo ejecuta, es posible que sea necesario mantenerlo y podría dar lugar a una oportunidad muy lucrativa. Esto no significa que deba pasar su tiempo aprendiendo un idioma muerto. El punto es que hay oportunidades con cada idioma, bueno y no tan bueno. Encuentra un idioma que disfrutes y ve desde allí. Aprende varios idiomas y continúa aprendiendo. Ese es un mejor enfoque de la programación como carrera.

Si lo haces por dinero, haz otra cosa

Si no disfruta de la programación y se trata únicamente del dinero, encuentre un camino diferente. Te volverás rancio y nunca alcanzarás tu máximo potencial de ganancias si no disfrutas lo que haces. La programación es un compromiso continuo.

Dicho todo esto, aquí hay algunos de los salarios actuales de algunos idiomas populares:

Salario PHP en San Francisco, CA – $ 126k / año

Salario Java en San Francisco, CA – $ 122k / año

Salario rápido en San Francisco, CA – $ 138k / año

Python Salario en San Francisco, CA – $ 128k / año

Saqué esto de YouWorth . YouWorth es una aplicación móvil gratuita para iOS y Android que rastrea los datos salariales del programador. No solo soy embajador del producto, sino que lo uso yo mismo. La aplicación permite a cualquier persona importar habilidades de LinkedIn y rastrear su valor en el mercado laboral a lo largo del tiempo. También me notifican si hay un cambio en las habilidades que se están viendo. Eche un vistazo a YouWorth y haga un seguimiento de lo que le interesa y creo que encontrará una mejor respuesta a su pregunta.

Soy profesor en la Universidad de Varsovia, y recientemente, junto con mis colegas, me enfrenté a una pregunta similar: ¿en qué lenguaje de programación debería basarse un curso introductorio de programación?
Terminé con solo dos sugerencias. Aquí están junto con algunas razones:

  • Python: su principal ventaja es que puedes escribir muy conciso, pero
    Código claro y legible en Python. También es alcance, todo lo que puede necesitar ya está allí, por ejemplo: programación orientada a objetos, construcciones funcionales, estructuras de datos integradas, toneladas de bibliotecas útiles.
    Además, es popular, por lo que el conocimiento de Python también es práctico.
    El cuadro adjunto por el usuario es bastante informativo, y Python aparece allí en bastantes lugares.
    Principal inconveniente: falta de un sistema de tipo estático (los tipos de valores se verifican cuando el programa se está ejecutando).
  • Un lenguaje funcional, Haskell u Ocaml: la programación funcional es un ámbito separado. Aprenderlo cambia tu percepción de otros lenguajes de programación. Python y las versiones recientes de Java y C ++ incluyen elementos de programación funcional. Entonces, las técnicas de programación funcional no son solo juguetes académicos, son útiles en la práctica.
    Haskell es puramente funcional (sin programación imperativa).
    Ocaml incluye también construcciones imperativas (no funcionales) e incluso programación orientada a objetos.
    Principales inconvenientes: son menos populares.

Los lenguajes de programación que valen la pena aprender dependen en gran medida de por qué los está aprendiendo.
Si los está aprendiendo porque quiere asegurarse de que el idioma que quiere un posible empleador esté en su plan de estudios, aprenda los idiomas más populares para el campo en el que desea trabajar.
Si desea aprenderlos para la iluminación y convertirse en un mejor programador, más capaz de pensar de diferentes maneras, independientemente del idioma que eventualmente tendrá que usar, entonces es una historia diferente.

Creo que los idiomas que vale la pena aprender no son los que usará, sino los que le enseñarán a pensar de diferentes maneras. Así que aquí está mi sugerencia:

– C. A menos que conozcas ensamblaje (y posiblemente incluso si lo sabes) ese es un idioma que quieres aprender. Al aprenderlo, no solo conoce C, sino también un subconjunto (relativamente) considerable de C ++ y Objective C (y Objective C ++).
– Charla. Porque quieres aprender qué es realmente OOP (no, OOP no es lo que haces en Java, C ++, Python, etc.)
– Raqueta Porque si no conoces un lenguaje homoicónico y sus macro instalaciones, te pierdes una de las herramientas más poderosas que puede tener un programador. También porque delimita las continuaciones !!! (podría decirse que podría usar cualquier Lisp para aprender sobre la homoiconicidad, pero solo un derivado de Scheme como Racket le proporcionará macros higiénicas y compilación multietapa, y si las obtiene, entonces las macros no higiénicas de Lisp se vuelven bastante fáciles de entender).
– Prólogo Debido a que la programación lógica no es algo que usarás, pero sí quieres saber si existe y cómo funciona.
– Common Lisp y el CLOS. Porque Lisp. Porque OOP (de nuevo, el real). Lo más importante es asegurarse de obtener una implementación decente del protocolo de metaobjetos y estudiarlo (y jugar con él).
Haskell Este es el que realmente te dejará boquiabierto. Pero tampoco es un lenguaje que realmente puedas aprender en X time. Puedes ser un muy buen programador en Haskell y lo has usado durante una década todos los días y aún estarás aprendiendo algo nuevo al respecto. Es más que un idioma. Es una exploracion. Un viaje a la abstracción. Si Smalltalk es “objetos hasta las tortugas”, entonces Haskell es “abstracciones hasta las estrellas y más allá, donde ningún hombre ha ido antes”.

Consiga a aquellos bajo su cinturón y desarrolle al menos la mitad de competencia en cada uno de ellos, y cualquier lenguaje que termine usando en el trabajo estará mejor, como programador , que el 90% del resto.

Como otros han dicho, el idioma que elija depende en gran medida del campo de computación que desee ingresar.

Si está entrando en el desarrollo web, entonces el elemento básico 5 de HTML, JavaScript, CSS, XML y un lenguaje del lado del servidor es donde debe concentrarse.

Si está trabajando en transacciones financieras, entonces cobol sigue siendo un gran jugador en este campo.

La ciencia (específicamente las ciencias como la física y la inteligencia artificial), luego Lisp, Fortran y Python gobiernan el gallinero aquí.

Python también gobierna el campo en el desarrollo de aplicaciones geoespaciales.

Procesamiento de texto? Bien, podría sorprenderle que Perl todavía desempeñe un papel importante aquí, así como en la industria de redes GSM y telefonía móvil, donde también necesitará habilidades de Java y Erlang.

Java también es un gran jugador en el mundo de los servicios web empresariales, junto con C # y VB en la plataforma .NET, mientras que en la parte inferior de la pila, muchas nuevas empresas nuevas que intentan mantener los costos bajos prefieren lenguajes como PHP .

Si está buscando la programación de sistemas, como maquinaria integrada, robótica y automatización industrial, entonces todavía se usa el lenguaje tradicional C e incluso ensamblador, mientras que C ++ es prácticamente el rey si decide ingresar a la programación de juegos.

No se olvide también, los administradores de sistemas a menudo necesitan saber cómo programar el shell de Linux / Unix, con intérpretes de comandos como Bash, Csh, Ksh que se parecen mucho más a los lenguajes de programación en estos días, aquí también se encontrará con Perl y PHP y JavaScript en forma de NodeJS.

Hay cruces por todas partes, y todo tiene sus fortalezas y debilidades.

Aprenda a programar un poco de ellos, y lo más importante, aprenda a escribir un buen software, no cómo usar un lenguaje específico.

¡Un buen desarrollador puede recoger cualquier herramienta en su caja de herramientas y usarla, un mal desarrollador intentará usar el mismo martillo para clavar cada clavo!

Fuente de información: escribir software de una forma u otra durante la mayor parte de los últimos 30 años y aún descubrir que tengo mucho que aprender …

Vale la pena aprender cualquier lenguaje que lo haga productivo en algunos entornos relevantes para usted y que lo haga ver la computación y / o el desarrollo de formas novedosas.

Common Lisp cambió para siempre la forma en que veo la sintaxis y la distinción entre un lenguaje y su biblioteca (ahora es casi arbitrario e inútil). También me hizo descubrir el desarrollo interactivo y algunas de sus increíbles habilidades, como actualizar el código de una aplicación en ejecución. Su despacho múltiple me abrió la comprensión de OOP fuera del paradigma habitual de clases con métodos.

Common Lisp y Scheme fueron los lenguajes con los que aprendí la mayor parte de lo que sé sobre programación funcional.

E me hizo ampliar mi comprensión de la seguridad a la noción de robustez, descubrir programación distribuida y cambiar completamente mis puntos de vista sobre el paralelismo con el uso de promesas y bucles de eventos en lugar de subprocesos múltiples. También me enseñó a razonar sobre seguridad.

Factor me hizo descubrir una forma diferente de abusar de las nociones de sintaxis y metaprogramación. 🙂 Además, la capacidad de su depurador para retroceder en el tiempo me hizo ver la actividad de depuración bajo una luz completamente nueva. (otros depuradores tuvieron efectos similares, a saber, DrRacket’s one y Omniscient Debugger)

Haskell me hizo darme cuenta de cómo se pueden aislar los efectos secundarios y redescubrir el poder de la coincidencia de patrones que encontré brevemente en ML. La apertura de las clases de tipos también cambió profundamente la forma en que veo y diseño las API y su uso de la escritura. En Common Lisp, ahora siempre uso la noción de protocolo de objeto en lugar de herencia.

Javascript me hizo aprender que las clases no son la única forma de crear objetos.

Assembler fue instrumental en mi comprensión de la compilación y el funcionamiento de bajo nivel de un programa de computadora.

Creo que su pregunta es un poco como preguntar qué herramientas debo aprender, llaves, martillos y cinceles, destornilladores o taladros.

La programación es solo una herramienta para hacer algo. No deberías ser un programador más de lo que deberías ser un perforador, sino una X que usa la programación para hacer algo. Por ejemplo, los ingenieros electrónicos utilizan la programación para controlar su electrónica. Los diseñadores web utilizan lenguajes de marcado y secuencias de comandos para generar páginas web. Los físicos pueden usar un lenguaje para simular la física. En la industria financiera, las personas escriben programas para ayudar en transacciones comerciales o financieras.

Muy a menudo, el trabajo que intenta hacer especificará la herramienta. Si usted es mecánico de automóviles, normalmente usa llaves y no martillos y cinceles. Del mismo modo, los ingenieros electrónicos normalmente programan código incrustado donde se necesita C / C ++ / Assembly. A menudo, los únicos compiladores disponibles para muchos chips son el compilador C / C ++, nunca he visto un compilador C # para un núcleo de brazo (¡aunque espero que se corrija aquí!) Y si está usando Inmos Transputer , es mejor que repase tu Occam!

Por otro lado, los diseñadores web probablemente no usarían C, sino un lenguaje de secuencias de comandos de nivel superior (quizás PDP / perl / JavaScript, etc.).

Es probable que un físico use algo como Fortran o Matlab / Octave.

Y al igual que un mecánico de automóviles también puede necesitar ocasionalmente un martillo, un programador puede necesitar otro idioma. Los ingenieros electrónicos que solo realizan programación integrada pueden usar un lenguaje de secuencias de comandos (python, por ejemplo) para analizar datos como parte de su trabajo. Ocasionalmente, podrían tener que desarrollar herramientas de PC para interactuar con su hardware, aquí podrían usar Delphi o algún lenguaje nuevo y moderno.

Sé que hay muchas personas que los llaman auto programadores, pero realmente no lo son, son ingenieros, científicos, diseñadores web, diseñadores de aplicaciones de viudas, diseñadores de aplicaciones de Android, etc. La habilidad principal para este trabajo es la programación, al igual que escribir es la habilidad de los núcleos para muchos trabajos administrativos. La habilidad central le permite a una persona trasladarse a industrias similares donde las herramientas son las mismas, de manera muy parecida a la de un mecánico de automóviles que podría pasar a reparaciones de trenes, ya que algunas de las habilidades (usando una llave) son similares. Pero no se puede esperar que un mecánico de automóviles use un cincel y un martillo para encajar en una nueva puerta de lo que se esperaría que un diseñador web programara la demodulación GMSK en un DSP dentro de un chipset de teléfono móvil.

Como buscador de empleo, la demanda ahora es tanto para programación como para secuencias de comandos, pero depende principalmente del campo para el que desea trabajar, vi cientos de puestos y puedo ver lo siguiente:

– Lenguajes de programación (back end / embebido): lenguaje tipo C (C / C ++ / Java / Objective C), si sabes esto puedes aprender cualquier cosa .
– Scripting: Python y Perl
– Bases de datos: SQL (MySQL) y NoSQL (basado en archivos: MongoDB, basado en gráficos: Neo4J, ..)
– Programación estadística: R
– Aplicación web: Ruby on Rails / Javascript … etc.
– Desarrollo móvil (Android, Windows Phone, IOS, OSX): Java / C # / Objective C

A continuación se muestra una lista del pago promedio de un idioma (no escrito en piedra, solo para dar una idea):

12. PERL – $ 82,513
11. SQL – $ 85,511
10. Visual Basic – $ 85,962
9. C # – $ 89,074
8. R – $ 90,055
7. C – 90,134
6. JavaScript – $ 91,461
5. C ++ – $ 93,502
4. JAVA – $ 94,908
3. Python – $ 100,717
2. Objetivo C – $ 108,225
1. Ruby on Rails – $ 109,460

Leer más: CLASIFICADO: Los lenguajes de programación que más pagan

Intentaré enumerar dos:

1- JAVA definitivamente porque es versátil, es penetrante y es poderoso. Está orientado a la web y Android está escrito en Java y las aplicaciones en Andoid también. Hay muchas bibliotecas para hacer casi cualquier cosa. Java es un poco difícil al principio, pero después de eso vale la pena.

2- R. Es un lenguaje de programación para análisis de datos y estadísticas. Puede hacer ciencia de datos con él de una manera muy fácil. La ciencia de datos se encuentra entre los principales campos emergentes y existe una gran necesidad de estadísticos que sepan cómo programar. En R también hay muchas bibliotecas para diferentes tareas.

Mi opinión:

  • Kotlin: es un lenguaje 100% interoperable con Java, por lo que puede usarlo para desarrollar en Android y mezclarlo con su código creado en JAVA. Kotlin es un lenguaje moderno, por lo que tiene más características que facilitan el desarrollo que haría en JAVA pero usando menos líneas.
  • Golang: Se dice que Golang es la “C” del siglo 21. Tiene un buen soporte para la concurrencia y compila directamente al código de la máquina. Por el momento se usa más en desarrollo web.

ALGUNA.

Si se encuentra en el punto en el que aún no ha llegado a su propia imagen de TI y sus perspectivas en TI, entonces cualquier lenguaje de programación sería bueno como comienzo.

Los desarrolladores de software hacen sus cosas y obtienen su éxito no por el lenguaje específico que conocen, sino por su experiencia en miles de tareas y situaciones, que son irrelevantes para el lenguaje.

Adoptar un nuevo lenguaje no es un problema para un desarrollador experimentado, por lo que no debe preocuparse por perder el tiempo con el “incorrecto”.

Sugeriría aprender Scala. Una de las razones principales es que puedes usar Scala mientras escribes Big Data: el código “Apache Spark”, que es la próxima gran novedad en el mercado. También te animo a leer los enlaces a continuación por los que deberías aprender Scala.

¿Por qué debería aprender Scala? ¿Cómo es diferente / único / mejor que otros idiomas? ¿Hay operaciones que solo se pueden realizar en Scala? ¿Qué tan rápido es en comparación con Java / Haskell / Clojure / Lisp, etc.?
3 razones simples por las que necesitas aprender Scala
Por eso deberías aprender Scala
¿Por qué debería aprender Scala?
¿Por qué aprender Scala en 2013? – @typesafe

Aquí hay un sitio web con estadísticas de lenguaje de programación

Tendencias en lenguajes de programación – http://ittrend.io

Aprender programación

Vea qué código debe aprender? [infografía]

Creo que depende de tus intereses, también estar actualizado y ver cada período, la clasificación de los lenguajes de programación te servirá bien y te hará ver las cosas con claridad.
Echa un vistazo aquí: https://www.tiobe.com/tiobe-index/

Todo depende de lo que intente lograr, la programación es una herramienta, que dice que si programa para las patadas, puede aprender LISP, el paradigma es tan diferente y matemáticamente puro que será un mejor programador en general, todavía estoy aprendiendo y es alucinante.

More Interesting

¿Cuáles son algunos patrones de diseño de programación funcional?

¿El modelo de cascada es flexible?

¿Alguien conoce un software / plataforma útil para verificar automáticamente si algunas respuestas de la encuesta son correctas?

¿Son los compiladores la pieza de software más difícil de desarrollar?

¿Qué sucede si escribo vacío público estático en lugar de vacío público estático en Java? ¿Eso hará alguna diferencia?

Los desarrolladores que respeto han recomendado de forma independiente Meteor.js, la pila Mean y React para desarrollar el prototipo de nuestra startup. ¿Cómo se comparan y cuáles son las diferencias clave que un CEO debería entender?

¿Por qué la mayoría del software de simulación de ingeniería no ha migrado a una versión de nube de pago por uso?

¿Inicio (al menos desde el punto de vista de la administración) o MNC? ¿Cuál elegir?

Para IIT Electrical Undergrads: Vemos muchas empresas de software y cuantitativas que se abren para estudiantes universitarios de EE / CS como investigación de torres, microsoft, pero me gustaría saber si algún EE UG realmente llega a la última de ellas. ¿O es solo porque los coordinadores de colocación insisten en que las empresas abran para EE UG?

¿Cuánto ha contribuido LinkedIn al aumento de los salarios de ingeniería de software?

¿Se puede visualizar la ingeniería de software antes de escribir cualquier código?

¿Cómo haría para investigar un desarrollador de pila completa usando Github, si no es técnico? ¿Qué miro y por qué?

¿A qué instituto debo unirme para pruebas de software, Seed o MindScripts?

¿Cuál es el mejor programa de estudios autodidacta que puedo aprender antes de inscribirme en un título de Ingeniería de software?

¿Existe una base de datos existente de elementos de menú en todos los restaurantes de Nueva York?