Respuesta también disponible en Quora: ¿Por qué deberíamos aprender C en 2021?
Todo dependerá de tus pretensiones como desarrollador. Cuales son tus objetivos. Pienso ahora mismo en dos respuestas.
Primera respuesta
Conveniente y relativamente “fácil”
Siendo honestos no deberías o mejor aún, no estas obligado a aprender C. Simplemente porque desde los 90’s ya cuentas con alternativas y hoy puedes darte el lujo de prescindir de C como lenguaje por defecto.
Esto debido a lenguajes más de alto nivel que te brindan una gama tal de flexibilidad, características y portabilidad pero sin sacrificar el rendimiento. Un ejemplo es Rust, el cual te da una gama de características, soporte multi-paradigma y abstracción pero preservando ese alto rendimiento alcanzable por lenguajes como C o C++ (bare-metal performance), además de soporte para concurrencia y paralelismo incorporado que permiten tomar ventaja de hardware moderno como multi-procesadores a la vez que lidia por ti con los típicos problemas de gestión de memoria. Todo esto sin un recolector de basura (GC) y en tiempo de compilación. Lo cual es genial.
Es decir, como desarrollador estos lenguajes te permiten enfocarte mucho más en que objetivos quieres lograr, en lugar de tener que pensar duramente y profundamente sobre lo que sucede bajo el capo (mucho más a bajo nivel. Ejemplo: interacción con hardware).
Segunda respuesta
Conveniente y relativamente “difícil”
Siendo honestos también deberías aprender C, no estás obligado por supuesto (ver la primera respuesta).
Pero deberías aprender C para obtener una base necesaria en programación y entender como funciona un ordenador: RAM, CPU, Network, IO. Por ejemplo, con C tu conseguirás saber también cosas como registers, stacks, heaps. Además de contribuir a tu disciplina como desarrollador.
C es un lenguaje simple, elegante, potente (veloz) y eficiente. Si quieres verdadero control sobre tu ordenador y hardware especifico sin rodeos, C es el más indicado. Por otra parte, si tu interés es aprender a programar, C también es una opción, ya que C es compacto. El lenguaje en sí es pequeño, si lo comparamos con otros como C++. Después de esto, adquirirás conocimientos básicos de programación y como un programa se ejecuta. Lo cual te servirá mucho si quiere moverte a otro lenguaje más de alto nivel. Es decir será mucho más sencillo aprender cualquier otro lenguaje.
Hay otras razones más avanzadas por las cuales aprender C. Por ejemplo si quieres dedicarte más profundamente a la programación de sistemas operativos, escribir controladores, interactuar con hardware, escribir compiladores, editores, interpretes, etc. Lo cual requiere una dedicación mucho más profunda, años de especialización y codificación con el lenguaje.
Conclusión
También es perfectamente factible aprender a programar usando un lenguaje más de alto nivel como podrían ser Python, Java, C#, Go o similar. Pero C aquí también es una opción. Yo te recomendaría aprender C y luego también al menos un segundo lenguaje. C no es el “monstruo” de los lenguajes de programación como muchos suelen pensar.
Respuestas relacionadas