This is why whenever someone asks me what language they should learn first (if they want to be a professional and not just a hobbyist), I say C. Don't learn a high level language first.
Learning Java before C is like learning to ride a bicycle before you learn to walk. You will need to learn C eventually, but learning C once you already have a high level language under your belt will make the experience frustrating. Having to manage your own memory, build your own data structures, it can be fun, but it's less fun once your brain is already wired to expect these things to be done for you.
In C you program the C Abstract Machine, this machine is a child's drawing of the Digital computers on which C was invented, it's simpler and easier to grasp than they actually were but fundamentally similar. Your computer today does not much resemble this, but your computer is the real machine your software will be executed on anyway. Mistaking the Abstract Machine for your real one is a catastrophic misunderstanding and C feels as though this is the bare metal when it is not.
As a result it's more honest to use a language where it doesn't feel as though you're touching the bare metal, because you aren't anyway†
When I last checked both Oxford and Cambridge teach an ML as First Language. So did the place where I did my degree decades ago although today it teaches Python (which I believe is a mistake). That's because the theory of computation is foundational here, not the practice.
† Even assembler isn't touching the bare metal, you have features like out-of-order execution and register renaming between the machine code you wrote and the actual things done.
Quite a bold assertion. I learned C in university—and while I am sure it was beneficial to my development as a programmer—there have been exactly 0 times since then that I have needed to read or write C.
That’s just my anecdotal experience, but I’d reckon many people can have a very successful professional career while never having touched C.
Learning Java before C is like learning to ride a bicycle before you learn to walk. You will need to learn C eventually, but learning C once you already have a high level language under your belt will make the experience frustrating. Having to manage your own memory, build your own data structures, it can be fun, but it's less fun once your brain is already wired to expect these things to be done for you.