Believe me or not, but do not jump onto learning anything “cool” before learning these languages mentioned above.
To strengthen OOP concepts, pick Java. It has more job listings, much larger community support, and a very matured ecosystem.
C# is very strong in the Microsoft ecosystem, now open-source as well — meaning it’s being used outside the Microsoft ecosystem too. Similar to Java, but with better features, especially LINQ, which is better than a bunch of chained stream methods and stuff.
The only reason why Java is ahead of C# is because C#’s open-sourcing happened much later, primarily after 2014 under Microsoft — leaving Java far ahead in the open-source adoption race. This also explains why there are more jobs in Java than in C#.
Otherwise, in terms of features, I personally believe that C# is a more feature-rich language than Java. But that being said, you can not write off the fact that C# is indeed born out of Java’s language design philosophy.
Learn C, Python, JavaScript, and SQL very well — then move on to either Java or C# for a strong backend language option in API development.
Choose based on the in-demand, trending frameworks in the job market:
If solely interested in systems programming and WebAssembly, blindly go with Rust and C++.
For programming embedded systems, as of today there are no better options than C/C++, Rust, and Zig.
For AI/ML and Data Science — Python is obvious.
Just because you think you are perfect in that high-paying xyz
language, doesn’t mean that your xyz
programming language is perfect. Things evolve, change, and improve.
Consider yourself surviving in a jungle.
You have only two tools/weapons: a sword and a dagger.
Now, a swordsman is so skilled with his sword, he thinks he can survive in a jungle only with his sword.
Sometimes, confidence turns into arrogance in no time, and moves you away from reality.On the other hand, a wise man takes both — because he knows that a sword cannot do the job of a dagger, and vice versa.
He, who respects and understands time, bows down to the need of the hour.
Every language is powerful in its own use case.
If an xyz
language has high-paying jobs — but if you’re a low-level kinda guy (microcontrollers and stuff..) like me — you’d choose passion over money.
(⚠️I am not into programming microcontrollers and chips(this is big brain stuff..), I Just enjoy coding in system-level language)
Or say you enjoy writing code in that particular language or love its features more than any other high-paying languages — then you should pick and choose what makes you happier, because satisfaction is priceless.
My Definition of a Good Complete Developer :