As someone who learnt C as a first language only 2 years ago I think it can be good. Although it depends. If you learn it at university, like I did, then it's great because they teach you in a structured way and you get the help you need. Self-learning, not so much. It can be hard to know what to learn in what order and finding the right resources to explain concepts. You may just end up more confused than when you started.
So my conclusion is that if you can find someone to teach you C then it's good. Otherwise you may be better off sticking to some easier language.
From humble beginnings at an MSP, I've adventured through life as a sysadmin, into an engineer, and finally landed as a developer focused on fixing problems with automation.
How many students actually use that knowledge learned outside of uni is probably a very small sliver, however. There's not a lot of need for C/++ for most things people are building nowadays (see: CRUD business apps, SaaS web apps, etc.).
I wish Rust had existed when I started learning development instead of starting with C because I appreciate the memory model there way more and its compiler messages are amazing.
"How many students will actually use X after university" can be applied to any course. The point isn't to teach a useful technology, but rather to teach the fundamentals of how programming languages and computers work. I know there are several more parts needed to cover it all, but learning C is a very good place to start. Even though I hate C and will hopefully never use it professionally, the things it has taught me will always be there in the back of my head when programming.
Sr. Software Engineer at CallRail building microservices to support 3rd party integrations. PhD student at the University of Nebraska studying bioinformatics, machine learning, and algorithms.
As someone who learnt C as a first language only 2 years ago I think it can be good. Although it depends. If you learn it at university, like I did, then it's great because they teach you in a structured way and you get the help you need. Self-learning, not so much. It can be hard to know what to learn in what order and finding the right resources to explain concepts. You may just end up more confused than when you started.
So my conclusion is that if you can find someone to teach you C then it's good. Otherwise you may be better off sticking to some easier language.
//Learn C the Hard Way// by Zed Shaw is an excellent path if you're not in university.
I'm honestly just kinda tickled that, all these years later, they're still teaching C at colleges.
How many students actually use that knowledge learned outside of uni is probably a very small sliver, however. There's not a lot of need for C/++ for most things people are building nowadays (see: CRUD business apps, SaaS web apps, etc.).
I wish Rust had existed when I started learning development instead of starting with C because I appreciate the memory model there way more and its compiler messages are amazing.
"How many students will actually use X after university" can be applied to any course. The point isn't to teach a useful technology, but rather to teach the fundamentals of how programming languages and computers work. I know there are several more parts needed to cover it all, but learning C is a very good place to start. Even though I hate C and will hopefully never use it professionally, the things it has taught me will always be there in the back of my head when programming.
I can't comment on Rust as I've never used it.
This. So much this.
This is the best take I've seen on the subject, well said.