¿En qué lenguaje de programación es mejor incursionar para un nuevo desarrollador que es principalmente autodidacta, Python, PHP, C#, o Java?

Mi primera intención era traducir una respuesta existente. Pero como me di cuenta de que ninguna respuesta era lo suficientemente satisfactoria (para mí) decidí añadir una respuesta yo mismo.
La elección depende enteramente de lo que quieras hacer con la programación. Pero, cualquier especialización comienza con la salud general, esa decir con la base. La base es el lenguaje de programación C. Una vez que eres capaz de escribir programas decentes y pequeños y tienes un conocimiento básico de programación, empieza a estudiar la Programación Orientada a Objetos. La elección obvia sería C++, pero como otros han observado, el lenguaje es muy complicado y – yo añadiría – muy mal diseñado en términos de Programación Orientada a Objetos.
Por lo tanto, empezaría a preguntarme qué quiero hacer con la programación. Si quieres programar aplicaciones para Android, entonces la mejor opción es Java o Kotlin, aunque definitivamente sugeriría Kotlin, ya que es más moderno, más práctico, más fácil de aprender y fue diseñado para no repetir los defectos de Java. Si quieres programar para IPhone, la elección obvia es Swift, si tu entorno será exclusivamente Microsoft, opta por C# o incluso C++ con el que la mayoría de las aplicaciones están hechas tanto para Windows como para Linux.
Si quieres ser un desarrollador web, entonces el mejor lenguaje para eso sigue siendo PHP. Hoy en día ha alcanzado un nivel de madurez que no sólo lo convierte en un lenguaje muy eficiente, sino que también es un muy buen lenguaje orientado a objetos, con muchas funcionalidades de soporte, patrones implementados, muchos buenos frameworks para la web (Symfony, Laravel, CodeIgniter, Zend y muchos más). Y no sólo esto. Si quieres programar aplicaciones web, la mayoría de los servicios de hospedaje trabajan con CPanel y la pareja PHP/MySql sigue siendo la más soportada por él. Así que todavía tenemos que lidiar con PHP por largo tiempo, te guste o no. JavaScript es principalmente para el desarrollo del front end (también podría ser usado como backend pero la mayoría de la gente no lo usa para esto), recomiendo un conocimiento intermedio del lenguaje y luego pasar a uno de los modernos frameworks como Vue o React (yo personalmente recomiendo Vue). Descarta JQuery ya que ahora está completamente obsoleto. También se requiere un buen conocimiento de HTML5/CSS, pero estas son herramientas de marcado, no son difíciles de aprender. La mayoría de las veces el código HTML es generado pero definitivamente deberías ser capaz de leerlo. Una vez que tengas la base de CSS usa un buen framework CSS como Bootstrap o Foundation. Te ahorrará mucho tiempo porque CSS no fue diseñado para programadores y estas hojas de estilo no siempre funcionan de manera lógica o consistente. No pierdas tiempo haciendo CSS tú mismo y luchando por esa infame regla que no se muestra como tú quieres. Usa Bootstrap. Alguien más ya ha hecho el trabajo sucio. No reinventes la rueda. Sólo concéntrate en la programación. El tiempo es corto, no lo pierdas haciendo css tú mismo. Ya cometí este error y, en lugar de volverme loco haciendo css desde cero para cada proyecto, debería haber dedicado mi tiempo a cosas mejores.
Para resumir: una vez que conozcas las bases de la programación, elige una de las opciones anteriores de acuerdo con tus objetivos. Luego aprende la Programación Orientada a Objetos con ella. También deberías aprender JavaScript al mismo tiempo. Luego intenta aprender algo relacionado con la gestión de proyectos. Especialmente cualquiera de las metodologías ágiles si quieres ser parte de un equipo o crear uno tu mismo. Y no olvides de estudiar las bases de UML, especialmente los diagramas de clase, de secuencia y de paquetes. Los necesitarás mucho si quieres diseñar proyectos grandes. Estudia los principios de OO, SOLID, GRASP y algunos patrones de diseño de GOF. Son reglas que te ayudarán mucho si quieres organizar y diseñar grandes sistemas reutilizables. También podrías dar un vistazo a los patrones de diseño de Martin Fowler, pero son bastante complejos, puedes escribir un framework completo con ellos.
Si te gustan las matemáticas también puedes estudiar los algoritmos. No los necesitarás de inmediato, pero valdrán la pena a largo plazo y de darán una buena devolución de tu esfuerzo a cambio.
Finalmente Python sería un buen complemento en cualquier caso. Es un más válido, sin importar la especialización que puedas tener.
Aquí tienes el cuadro completo.
Todos mis consejos se basan en la experiencia personal y el sentido común, pero como todos somos diferentes, siempre hay espacio para añadir o modificar cosas. Las cosas no siempre son lineales, de todos modos espero que ayuden.

Deja un comentario