Con qué lenguaje de programación debería empezar a aprender?

Cuando buscas en Google esta respuesta, siempre verás "Empieza con Python porque es el más fácil" pero voy a estar en desacuerdo con esto. La primera respuesta que he visto a esta pregunta dice que hay que evitar el aprendizaje de C. Voy a estar muy en desacuerdo con esto también. Puede que tenga puntos de vista contrarios a la norma, pero voy a sugerir que es mejor aprender C primero, y voy a explicar por qué.

Pero primero, vamos a sacar la advertencia más obvia del camino y decir que siempre depende de lo que quieras hacer. Si todo lo que vas a hacer es desarrollo web front-end, entonces obviamente tu enfoque debe ser HTML, javascript, CSS y los CMS que te sientas cómodo aprendiendo. O si sólo quieres construir aps para IOS, entonces aprende Swift, etc

También si "ser fácil" es un factor para ti, entonces tal vez ve a aprender Python, pero estoy escribiendo esto para las personas que son, con suerte, algo inteligentes, y no se intimidan por un poco de trabajo duro. El mundo que dice "aprende Python primero" a menudo asume que eres un idiota, pero yo no voy a hacer esa suposición. Voy a descartar el término "fácil" y a asumir que quieres saber qué lenguaje te dará la mejor base en computación.

Así que si estás haciendo la pregunta de "con qué lenguaje de programación debería empezar a aprender" estoy asumiendo que es porque quieres obtener una comprensión general de la computación y ser capaz de expandirte en muchas áreas aprendiendo múltiples lenguajes, y quieres una base sólida sobre la que aprender toda una vida de habilidades informáticas. Si este es tu caso, lo más fácil no significa lo mejor, por lo que aprender Python primero no es lo mejor, a pesar de lo que te digan tus búsquedas en Google. Claro, puede hacer que te pongas en marcha más rápido, y que hagas programas más rápido, y tal vez necesites esa inspiración para mantenerte motivado y seguir con ello. Pero esta zona de confort puede no ser algo bueno a largo plazo, cuando descubras que necesitas pasar a otro lenguaje, y tengas el duro despertar de "oh, los ordenadores son más difíciles de lo que pensaba". Además, como Python es un lenguaje de tan alto nivel, estás realmente alejado de la mecánica de cómo funciona un ordenador. Si alguna vez decides que quieres entrar en el hardware o en los sistemas embebidos más adelante, esto será un ajuste más duro que si fueras a sacar los conocimientos básicos de informática primero.

Hay varias buenas razones por las que recomiendo C como primer lenguaje, pero mi razón principal es que en términos de nivel de abstracción de la programación de bajo nivel a la de alto nivel, se sitúa perfectamente para aprender ambos. Es decir, si aprendes C, puedes moverte en ambas direcciones. No es tan difícil bajar un nivel y aprender el lenguaje ensamblador, y no es tan difícil subir un nivel y aprender C++. Por lo tanto, creo que C es el mejor lenguaje para aprender primero para construir una base sólida en la programación. C++ es más difícil que otros lenguajes orientados a objetos, pero dicen que una vez que aprendes C++, pasar a otros lenguajes orientados a objetos como Java o Python es muy fácil. En cambio, si hubieras aprendido Python primero, podrías perder el interés en pasar a C, y volver a tu zona de confort. Si sólo quieres aprender un lenguaje, bien, aprende Python. Pero si planeas aprender varios lenguajes, C se ramifica muy bien en C++ y C++ te prepara para aprender los demás. Y si realmente quieres jugar con los robots y el hardware y los sistemas embebidos, probablemente querrás aprender algunos lenguajes ensambladores, y C se relaciona con ellos mucho mejor, por no mencionar que muchas de esas cosas se pueden hacer en C solo.

Vas a tener mucha más capacidad de personalización cuanto más te acerques al metal, que es una de las ventajas de aprender lenguajes de bajo nivel, y te permite escribir sólo el código que necesitas.

Pero en lo que respecta a una base en la programación, nunca se puede escapar realmente de la historia. Gran parte de lo que los ordenadores han evolucionado hoy en día realmente comienza con C. (no es el más antiguo, es sólo la dirección que tomaron los ordenadores) El sistema operativo linux está escrito completamente en C, C ++ evolucionó a partir de C, y lo mismo puede decirse de Python y Ruby y todos los otros lenguajes comunes hoy en día. Así que si aprendes esos otros primero es como si empezaras tu educación en el quinto grado, a falta de una mejor analogía. Como resultado de esto, gran parte del mundo tiene sus raíces en C. Los sistemas embebidos están en todas partes. C está en todas partes. Pero los lenguajes en los que se basa C también están por todas partes.

¿Se necesita C para ser programador? En absoluto.

Pero creo que tienes que preguntarte, "¿quiero un trozo del pastel, o quiero todo el pastel?"

Si sólo quieres hacer unas pocas cosas con los ordenadores, por ejemplo diseño web, o desarrollo de aplicaciones, entonces sólo tienes que encontrar el lenguaje que hace lo que quieres hacer mejor.

Pero si quieres hacer de la informática tu vida, y no te intimida la dificultad y quieres construir una base sólida en general para aprender múltiples lenguajes, entonces yo iría a por todo el pastel, y aprendería primero C.

Luego pasar a ensamblador y C++, y otros lenguajes según sea necesario.