OP is at a stage in life where fluid intelligence is still very high and crystallized intelligence is growing rapidly. This is the time in your life where you are perhaps most able to absorb new ideas and ways of thinking, before you get set in your ways and less receptive to different ways of thinking.
If that's the case at the Uni OP is studying at, then he should be come fluent in C - because from experience as a TA, it's not necessarily the CS knowledge/fundamentals that tend to be lacking when people struggle with classes, but rather that they're fighting a new language. Even if they have years of previous experience...especially in these days, when Python or JS tend to be the first (and only) language to many freshmen.
> several better options these days
Every other option requires you to buy into some additional paradigm-of-the-day.
You can easily lose decades going down the wrong programming rabbit holes.
> You can easily lose decades going down the wrong programming rabbit holes
total rubbish.
Look at how much time we lost with OO. I am only recently coming to grips with how bad it is. C++ was the "thing you are interested in today" back then. And it wasn't well thought through.
What were people doing before Rust?
C is great.
> Why do you think the industry keep circling back on old stuff?
What does this even mean? Can you give some examples?
> Look at how much time we lost with OO
Okay, what do you mean by 'lost' because I find OO to be extremely useful (if used appropriately). Ditto functional, ditto logic.
Are you suggesting we should scrap all of these and just use code procedurally and nothing else? Because that would be a massive step backwards in my view, and I do have decades of experience so I can't understand why you're so negative about anything else but procedural. And maybe C++ was just a bad implementation in hindsight. But it took us a long way.
There is a lot of good wisdom from the 60s, 70s, 80s that people forget and end up re-inventing. I don't think I'm the first person to make this comment.
> OO
It's very subjective I'll admit. But I don't like OO, and it took me along time to realize why. There are many people who feel the same way. The difficulty is in explaining it. Because you have to look at large systems, explore the evolution of these systems, and pluck enough examples where things don't work.
I can't learn from that.
You've given me nothing to work on, nothing to learn from, nothing I can even oppose because your objection is so nebulous. I can't even knock down your claims because you haven't really made any except "muh, OOP baaad". I haven't learnt anything, equally you haven't learnt anything... what was the bloody point in you saying anything at all?
> I think knowing that this viewpoint exists is a good lesson in itself
I'll skip the sarcastic reply and just say I draw rather different conclusions.
It’s not usually a great idea for production code anymore, but for learning it’s fantastic.
Is lambda calculus or the PDP instructions set a closer match to which language?