También opino que el lenguaje importa mucho menos que aprender los algoritmos y las estructuras de datos. Desafortunadamente, debe elegir algo para usar como herramienta para aprender a programar, al menos cuando todavía está comenzando .
Así que eliges un idioma que te facilite aprender los conceptos que buscas. Si ese idioma también se usa en la práctica, entonces es un extra, pero no un requisito. Dependiendo de lo que esté buscando, elija un lenguaje altamente abstracto (Python, Haskell, Lisp, Scheme, Ruby, etc.) o un lenguaje de muy bajo nivel (Ada, Fortran, C, Pascal, Assembly, etc.), o es posible que desees acceder directamente a la web para que estés más “forzado” a usar JavaScript (pero aun así, te aconsejaría que aprendas más que solo JS)
Busque uno que tenga suficientes recursos para comenzar a hacer proyectos de ejemplo. Libros, tutoriales, cursos, etc. También busque si hay mentores disponibles, ya sea en su área o en línea a través de foros de la comunidad. Intenta encontrar personas en un proceso similar al tuyo, nuevamente cerca o en línea.
Después de haber logrado una comprensión decente de la programación utilizando el lenguaje que eligió ( podría ser entre unos meses o algunos años, dependiendo de usted, el tiempo que ingresó, el idioma que eligió, cuáles son sus objetivos, etc. ) puede descubrir que no está aprendiendo nada nuevo cuando intenta esforzarse más con ese idioma. O, más bien, el número de cosas nuevas se vuelve más escaso y más separado. Este es el momento de mirar un segundo idioma.
Elige algo completamente diferente. Si comenzó con una alta abstracción, opte por un nivel bajo y viceversa. Asegúrese de que el nuevo lenguaje se centre en algún concepto que no se utiliza o es menos esencial en el 1er. Use el segundo lenguaje como herramienta para aprender estos nuevos conceptos (por ejemplo, pruebe un lenguaje altamente orientado a objetos, o entre en la programación funcional, o intente implementar construcciones de bajo nivel a través de la manipulación de la memoria del puntero, etc.).
En general, su segundo idioma tomará mucho menos tiempo para “dominar”. Eso es porque ya conoces los conceptos de tu 1er idioma. Entonces, cuando los dos idiomas se superponen, solo necesita aprender las diferentes sintaxis (ortografía) y semántica (gramática) del nuevo idioma. Los conceptos siguen siendo lo mismo. Sin embargo, el segundo idioma puede presentarle nuevos conceptos, que pueden tomar un tiempo para familiarizarse con ellos.
A medida que avanza por un tercero, verá que se necesita aún menos tiempo. Esto se debe a que ahora las posibilidades de que conozca más (si no todos) sus conceptos son mucho mayores. En algún momento, cualquier lenguaje, sin importar lo que sea, se convierte en algo trivial para aprender: todos son lenguajes de programación y usan los mismos conceptos una y otra vez. Entonces, una vez que conoces todos los conceptos, el lenguaje es intrascendente.
Ahora elige los idiomas por otros motivos. Por ejemplo, porque sus colegas también lo están usando, porque el viejo programa que está arreglando estaba escrito en él, etc., etc., etc.