C, C++ and Java may seem simply annoyances to programmers weened on scripting languages. But learning one or more of these languages is worthwhile, for many reasons.
One reason is this: Vast amounts of software engineering literature provide examples using these languages.
Currently, I’m reading “Working Effectively with Legacy Code” by Michael C. Feathers.
All the code in the book is (of course) C, C++ or Java. But the principles documented in the book are language independent.
The last example in the book, on extraction refactoring, is something I’ve been doing for years, and didn’t know there was a name for it. That’s pretty cool.