El lenguaje no es realmente tan importante.
La programación es importante.
Programación
La programación se trata de muchas cosas (que analizo en la respuesta del usuario de Quora a ¿Qué tan bueno debería ser en la programación en C?). Para reiterar esos:
- ¿Qué debería uno elegir, CSE en la Universidad de Jadavpur o ingeniería química en IIT KGP?
- ¿Qué le aconsejarías a un estudiante de CSE en su primer año?
- ¿Cuáles son algunos proyectos innovadores de minería de datos para estudiantes de último año de B.Tech, CSE?
- ¿Qué quieres decir con talleres en ingeniería informática?
- ¿Qué debo hacer si quiero obtener un paquete de más de 25 lakhs p / a y estoy en el primer año de un B.Tech en CSE?
La parte más importante sobre la programación, y por lo tanto sobre la programación en [cualquier lenguaje], es la resolución de problemas. ¿Cómo se descompone un problema ? ¿Cómo se identifican las soluciones ? ¿Qué [elección de] metodología utilizará para resolver el problema? Una vez que se identifica una solución, ¿cómo modela esa solución para que pueda ser programada?
La programación es justo lo que haces una vez que has hecho las otras cosas. Entonces, lo más importante en la programación es aprender las cosas identificadas anteriormente en negrita .
La programación se trata de resolver problemas y escribir en lenguajes de programación se trata de codificar / describir esa solución.
Idiomas
Ahora, para aprender esas cosas bien, necesitará conocer un lenguaje de programación o tres. Los lenguajes de programación son sus herramientas para aprender lo anterior: individualmente no son tan importantes, pero necesita al menos una de esas herramientas.
Las otras dos respuestas aquí, al momento de escribir, sugieren Python , Smalltalk y C. Tengo esto que decir sobre esas opciones:
Python: No sé mucho al respecto (nunca necesité saberlo) pero algunos amigos que respeto hablan muy bien de ello. Puede ser una buena opción porque a) se usa en muchos lugares yb) es más fácil de entender.
Smalltalk: No conozco ninguna compañía, fuera de mi alcance, que use Smalltalk. Es un lenguaje OO muy antiguo y un lenguaje más puro, si mal no recuerdo. Tiene muchos seguidores en la academia, pero prácticamente no estoy seguro de que sea tan útil saberlo.
C: También un lenguaje muy antiguo. Tiene muchos adherentes entre programadores muy antiguos (como yo). Mucha gente que enseña en universidades forma parte del conjunto de programadores muy antiguos (como solía ser). Una de las ventajas de aprender C frente a casi cualquier otro lenguaje, excepto C ++, es que es más probable que lo obligue a comprender cómo funciona el lenguaje en una máquina real. C y C ++ lo obligan a comprender los punteros, la asignación de memoria, la liberación de memoria, la semántica de llamadas a procedimientos, etc., mejor que los lenguajes como Java, JavaScript, Scala, etc. Sin embargo, el principal problema con C es que escribir un buen programa en C suele ser mucho más trabajo que escribir el mismo código en lenguajes más avanzados.
No sé qué curso está planeando tomar y la materia de un curso a menudo dictará qué idioma o conjunto de idiomas se deben usar (es decir: el maestro puede decir “usará Java”). La mayoría de los cursos que he impartido y que he impartido no dan mucho margen de maniobra en el idioma que debe usar.
Probablemente sugiera aprender uno de los siguientes:
- C ++: es OO y te obliga a comprender cómo funciona la máquina tan bien como C.
- Java: un lenguaje OO muy popular y muy flexible que se aplicará a una amplia gama de temas de CS.
- Scala: un buen lenguaje de programación funcional que funciona con bibliotecas Java para que no tenga que construir toda su propia infraestructura.
Dicho esto, no conozco todos los lenguajes de computadora y solo puedo recomendarlos desde el conjunto que conozco o que son altamente recomendados por personas en las que confío.