Taro Logo

Should I learn Java or C++?

Profile picture
Software Engineering Intern at Taro Community8 months ago

So i'm a entry level engineer and was reading some post on twitter about getting deeper in CS to be taken seriously. The post mentioned learning a lower level language and I always wanted to learn C++. But when i asked my friend who is senior that then went on to become a CTO at his own company he told me I should learn java since it's low enough that a lot of systems are built on it which in return means more jobs. When I looked at job listings for both languages there were fairly the same amount of job postings but he's saying it would be easier to get in entry level with java and that C++ is more for mid and higher levels. also i always wanted to learn C++ because i saw that with python is mainly used at hedge funds which eventually in my career i always wanted to join one, so which one should I choose? And please make a choice for me lol and not respond with "whatever you feel like doing", because i'm kinda indecisive with this choice.



  • 5
    Profile picture
    Tech Lead @ Robinhood, Meta, Course Hero
    8 months ago

    Short answer: Java

    Longer answer:

    As a heads up, C++ was my first language (that's what UCLA started us off with), but I transitioned to Java due to Android.

    • Java has way more relevance than C++ in the modern age, especially in the US and India. There should be more job postings for it too.
    • Java is essentially C++ but with less stuff to worry about. The garbage collection in Java is automatic for example. Pointers are abstracted away from you.
    • While the pay for C++ engineers should be higher (I feel like it's a hard language with more room for optimization and supply of C++ engineers is lower), I think the more abundant job postings for Java should cancel it out (which you definitely want as a junior engineer).

    And please make a choice for me lol and not respond with "whatever you feel like doing", because i'm kinda indecisive with this choice.

    I get that, but "Do whatever you feel like doing" is actually the right way to think about this. Zooming out, you should figure out (and let the Taro community know) what you want to build, not what language you want to write in. The language is just a means to the end of building cool stuff.

    Do you want to build websites? Mobile apps? ML infrastructure? Rest APIs? The answer to this question will narrow down the language pool and allow people to give you a much more opinionated recommendation.

    I recommend watching this video too if you haven't already: This Is How Software Engineers Should Initially Learn

  • 1
    Profile picture
    Tech Lead/Manager at Meta, Pinterest, Kosei
    8 months ago


    Better answer: choose the language which you can learn faster. Sometimes this means starting with the project you have in mind (e.g. Android), and then you back into the language. Java has more obvious application-level uses that are interesting.