I agree that every developer should _learn_ C - but not necessarily as the first language. C is something like the lingua franca of open source. There are vast amounts of C libraries and even more important: C based APIs. Most FFIs of other languages have C as their common base for interfacing.

Why should they _not_ learn C as a first language? C is a crufty language with many idiosyncraties. Many things are more complex than should be. It motivates to write bad and unsafe code. It misses out many important concepts for which you would sooner or later have to learn another language to get in touch with them.

The merits of programming with memory management and other low level stuff in mind, I think Rust is a much better language. The No.1 Reason? Rust motivates to write good and clean code and it makes writing bad and unsafe code difficult. As it easily can get used in projects with C interfaces or interface C code it really is a good replacement for nearly anything you would use C.

Another important language to learn: JavaScript. It has a bad repute by developers of the past, but it grew to a quite good, fast and versatile language. With TypeScript it even got a very good static type system - tailor-made for its typical dynamic traits. Even more important: JavaScript plays the "lingua franca" role of C for the "web platform". You just cannot get around it anymore.

Developer — Author — Photographer — Guitarist

Developer — Author — Photographer — Guitarist