¿Qué lenguaje de programación será el más útil en el futuro si empiezo a aprenderlo ahora?

Para responder directamente a tu pregunta, me gustaría ir con Python, ya que no solo es uno de los lenguajes de programación más fáciles de aprender, sino que también tiene algunas de las mejores herramientas para el aprendizaje automático y las aplicaciones de estilo AI.

Pero también quiero enfatizar que si realmente quiere tener éxito en el campo de la IA (y en cualquier otro campo de la informática), nunca se trata de saber el idioma correcto, conocer hasta el último detalle en la sintaxis o mantenerse al día. de las “actualizaciones” en el idioma. La mayoría de los científicos de datos exitosos en el campo de la IA y el aprendizaje automático dedican muy poco tiempo a estos detalles. Incluso si te conviertes en un maestro de Python, lo más probable es que aún no tengas idea de cómo comenzar a construir una pieza de software que utilice el aprendizaje automático o las técnicas de inteligencia artificial. En mi opinión, la habilidad más importante es la resolución de problemas. La mejor manera de prepararte para el éxito en el futuro es ejercitar continuamente estas habilidades de resolución de problemas mediante la creación de software tangible y la inmersión en problemas relacionados con la IA. Un error común en el campo de la IA o el aprendizaje automático es que todo se trata de aprender la sintaxis y el código, pero para poder desarrollar este software, también es importante comprender los aspectos teóricos del campo. Y muchos de los problemas de estilo de IA requieren la habilidad de descubrir el modelo correcto para la situación (por ejemplo, encontrar una buena heurística para modelar un problema de búsqueda). Estos tipos de problemas son increíblemente difíciles y requieren mucha intuición, una intuición que solo se construye realmente a partir de los proyectos y la teoría. El campo de la IA y el aprendizaje automático también es matemáticamente intensivo, y también es importante dedicar tiempo a comprender las aplicaciones de la teoría matemática para resolver estos problemas. Aprender la sintaxis de un lenguaje de programación no te va a ayudar mucho con esto. Pero al profundizar en la teoría y aplicarlos a sus propios proyectos, comienza a desarrollar la intuición y las habilidades de resolución de problemas que se necesitan en este campo.

Algunos recursos que podrían ser útiles en su esfuerzo:

CS61A Berkeley – un buen recurso para aprender Python, así como para programar paradigmas

Aprendizaje automático – Universidad de Stanford | Coursera – Uno de los mejores cursos en línea de aprendizaje automático.

Inteligencia artificial: un enfoque moderno – libro completo sobre los conceptos de IA

No importa. Lo que debe aprender es la programación (resolución de problemas con computadoras), no un lenguaje de programación. Vea Enseñe a usted mismo la programación en diez años para obtener más información.

Y aprenderá mucho más que solo codificar en algún lenguaje de programación. Consulte la respuesta de Basile Starynkevitch a Si quiero codificar para ganarme la vida, ¿cuáles son los idiomas que debería aprender y las cosas que debo hacer?

No se puede predecir el futuro, la única forma de tener habilidades de prueba en el futuro es adaptarse. Cuando las cosas cambian, cambia con ellos. Solo puede dominar un idioma si lo usa prácticamente en productos o sistemas reales.

Los lenguajes de programación como C / C ++ son muy importantes para construir sistemas o módulos de alto rendimiento en tiempo real, mientras que lenguajes como Java o Python son más simples pero lentos. Por lo tanto, cuando se trata de qué idiomas aprender, necesita al menos dos idiomas, un lenguaje de bajo nivel de alto nivel de producción como C o C ++ y un lenguaje de alto nivel con scripts como Python.

También puede usar Python para el código de nivel de producción, pero puede ser lento, por lo que puede optimizar algunos módulos usando el código C / C ++ para ganar algo de velocidad. Las bibliotecas de aprendizaje automático (ML) están escritas en C ++ como TensorFlow. Así que C ++ no irá a ninguna parte pronto.

Los sistemas operativos también están escritos parcialmente en C / C ++ por razones de rendimiento. Como AI es muy difícil de computar, casi siempre necesitará C ++ para implementar módulos pesados ​​computacionalmente.

Si conoces C ++, es mucho más fácil aprender cualquier otro lenguaje, esto hace que las habilidades del lenguaje de programación en C ++ sean una prueba de futuro.

Espero que esto ayude.

Como otros ya han mencionado …

  • Python: dado que muchas de las bibliotecas de AI permiten la programación en python en estos días.
  • Como opción adicional, puede ser bueno saber C. Esta combinación de idiomas nos daría la potencia y la facilidad de programación en Python y volvería a C si
  • Necesitamos escribir algún código que queremos optimizar para el rendimiento.
  • o la interfaz con una GPU, etc. (aunque en muchos casos no es necesario en estos días, ya que se puede acceder al número desde Python que utiliza GPU ).

En realidad, una vez que conocemos un lenguaje imperativo y, opcionalmente, conceptos orientados a objetos básicos ( principalmente una comprensión de “este puntero” ), no es difícil programar en ningún lenguaje imperativo ( orientado a objetos o de otra manera ), salvo la molestia de las diferencias de sintaxis ( en pocos días, sin embargo, nuestro cerebro cambia a la nueva sintaxis que estamos codificando ). Simplemente necesitamos saber cómo resolver un problema, como dijo Basile. Expresar un lenguaje es la parte más fácil.

Si no queremos quedarnos con un solo idioma, podemos comenzar con Javascript como sugiere Bingumalla, y usar el Aprendizaje profundo de Andrej Karpathy en su navegador. Un curso reciente del MIT (enero de 2017) sobre autos de autoaprendizaje y aprendizaje por refuerzo usó convnet.js por su facilidad.

Entonces, en resumen, tal vez sea mejor no atarse a un solo idioma. Por supuesto, es posible que todos tengamos un idioma al que recurrir porque nos sentimos muy cómodos con él.

Aprende JavaScript, esto debería ayudarte a hacer la mayoría de las cosas que ves en la web.

Cuando se dice JavaScript, incluye cientos de bibliotecas que tiene y no se olvida de Node.js y los milagros que puede hacer en el servidor.

Entonces inicie con JavaScript básico y luego comience a aprender los marcos y las bibliotecas.

Y para su objetivo a largo plazo de desarrollar una IA, debe sumergirse en conceptos de aprendizaje automático antes de comenzar a programarlo. Y debería considerar aprender Python, ya que tiene algunas bibliotecas excelentes que ayudan a lograr el aprendizaje automático.

Debes comenzar con Python, ya que es fácil de aprender y tiene mucho apoyo. Después de unos seis meses a un año de Python, debería aprender SQL, ya que tendrá que interactuar con los datos. Entonces probablemente deberías aprender R, ya que es útil para la manipulación de datos. Luego debes aprender Javascript, luego C # o Java. Finalmente debes aprender Lisp, y Prolog, y OPS (o CLIPS). Creo que con estos idiomas en su haber tendrá un muy buen manejo de la programación de Inteligencia Artifcial, como lo es hoy. Las cosas cambiarán durante la próxima década y pueden surgir otros idiomas. Pero siempre que tenga un buen manejo de los idiomas mencionados anteriormente, debe poder adaptarse a los tiempos.

La mejor de las suertes para ti.

Algunos de los lenguajes de programación más útiles que serán útiles en el futuro son:

  1. Pitón
  2. Ir
  3. Rápido

Aparte de eso, si no conoces algunos de los lenguajes de programación orientados a objetos básicos como C, C ++, Java, etc., entonces no debería valer la pena estudiar estos lenguajes. Esto se debe a que lenguajes como C, C ++ le enseñan cómo las computadoras entienden los programas en un nivel básico, que a su vez es extremadamente útil cuando intenta construir proyectos más grandes.

Le sugiero que aprenda que Python tiene un soporte completo y tiene muchos módulos disponibles para cada tarea y es fácil de aprender ya que la sintaxis es muy simple y no cambiará.