well let me ask you differently. Do you want to code java ? ;D If the answer is yes than you should stop writing C.
C is an imperative language and needs a lot of precision and knowledge since you control everything :)
java is less lowlevel and more OOP. They are not that easy to compare they are built on different paradigms.
just ask yourself what you want to achieve and than read up on the common languages in that particular field.
The rest is taste and a lot of religion :) .... but that's also just my opinion / taste.
I've been reading your logic and your statement and to some parts I understand why you say it like that.
But lets be agnostic for a moment and just think of the real important question ... what does he want to do ? that's what I've written. And I stand by it .... but for the sake of argument:
Asking yourself "hey what do I want to do"
Maybe he wants to build apps for the IPhone so java again is useless but Swift would be a good choice.
Maybe he want's to work on a tripple A game so probably C, C++, C# would be more likely to help him.
Maybe he want to work in the phone business so Erlang would be a good choice just because 90% of all mobile phones get handled by Erlang ... .why ? because concurrency is smoothly done in a functional language because there are no state issues ....
Maybe he wants to build interactive Web-Apps so Node / Javascript would be a good choice.
Maybe he wants to Rig and design 3d models in Maya or he likes ML so Python would be a good choice.
Maybe he want to work in banking, or big corporate and he likes the OOP-Paradigm so java is very useful.
There is no "this is the best language" ... Every language is built on a Model .... and there is this good quote "All models are wrong .... but some of them are useful"
Just to be sure I don't necessary disagree with you ... I just wanted to help him think about what he needs and not enforce my opinion on "what is better" because I don't care what he picks ... as long as he picked it on purpose ....