r/AskComputerScience • u/Mission-Maize8454 • 3d ago
C++ or Java?
Which programming language has the most return on investment? Impact on real world systems, and is more rewarding? I have minimal programming experience and working on AS in CS.
4
u/Key_Net820 3d ago
IMO C++ not because it is more used, but because it is way easier to go from C++ to Java than the other way around.
Most full stack development does not use C++ and you'll mostly be using C++ for lower level things like embedded software, but the principles of object oriented programming and design patterns are the same for both, and having C++ is way more practice than Java.
1
u/donaldhobson 11h ago
> but because it is way easier to go from C++ to Java than the other way around.
Fair. Learning C++ is hard, at least in part because there are quite a lot of C++ specific footguns. So a C++ person going to java mostly just needs to learn that a lot of the footguns have been removed. A java person going to C++ needs to learn every footgun in the language.
0
4
u/eager-potato-555 3d ago
C, all the way best language to shape you as a software engineer.
In terms of ROI? Sorry to say this, but it depends on your local job market. If I had to make an educated guess, I would pick:
* python
* go
* js/ts with any frontend framework of your choice
3
u/Tai9ch 3d ago
If you're interested in being a professional programmer, which language you learn first doesn't matter much. Especially trying to look years and years in the future, there's basically no chance that whatever language you happen to pick first is the one you'll be working in.
You want to learn the broad skill of computer programming. Either C++ or Java is a fine place to start (as long as it's not too old a Java version).
That being said, if you start with C++ or Java, you don't want to learn the other one as a second language. They're too similar. Learn C or JavaScript next instead.
2
u/Traveling-Techie 3d ago
If you want to make money take management classes.
1
1
1
u/Traveling-Techie 2d ago
I was expecting criticism for saying this, and I had my defense ready: I’ve worked at a lot of software companies, and the programmers always made less than their managers. But I got no criticism. I guess it’s non-controversial.
2
u/YourPwnResearch 3d ago edited 1d ago
I have an extremely strong opinion on questions of this nature.
You shouldn't worry about this question right now. Pick any language, get hooked on programming, and build up your skills. There is no right answer, because this is deeply personal.
Getting experience is the skill that has the most return on investment.
Many, if not most, Gen X programmers started off with 8-bit interpreted BASIC. We don't use that professionally today.
A more interesting question is which programming language you should learn second. And that has a much simpler answer: you should pick one that's as different as possible from your first, so you unlearn your bad habits.
So if (say) you learned C++ first and then decided to try Java second, that would arguably be a mistake, because they're too similar: both imperative, both C-like syntax, similar object model, etc. Go with something very different like Scheme or Haskell instead.
If you're truly in this for the long haul, if personal reward is what you care the most about, then that's what you need to do.
1
u/Mission-Maize8454 3d ago
I'm in it for the long haul.
1
u/YourPwnResearch 1d ago
That's good to hear!
Both adults and children learn through play. That is your goal right now. Pick any language, and play.
1
u/Mission-Maize8454 1d ago
Get better over time with time and effort no one was born naturally knowing any programming concepts.
1
u/Leverkaas2516 3d ago
I don't think you can nail down an answer as to which of the two will give you more earning potential. They are different, and used for different projects. Learn both if you can. If you have to choose, learn whichever has the highest potential to land you a job. My guess is that's Java. It is easier to ramp up and become productive with Java.
I've done embedded work in C++ and backend work in Java. I've used either or both at four different jobs in two decades. I'm still more comfortable with Java but these are just tools. You should expect to learn more than one language.
1
u/Level-Challenge2759 3d ago
If youre early in an AS in cs id pick whichever your program teaches better both have plenty of real world impact c gets you closer to systems game engines embedded etc java is huge in enterprise and backend dont chase roi too hard yet build solid fundamentals first,,,,
1
u/gmatebulshitbox 2d ago
Java is for money. Because banks and enterprise use java for their software. Banks and enterprise is good money but boring job.
1
u/NegativeCollege8167 2d ago
java has a higher return on investment for someone with minimal programming experience. It's widely used in enterprise environments, particularly for backend systems, and it's known for its portability across different platforms. Plus, the object oriented nature of Java makes it easier to learn and apply to real world systems. You'll find that Java's ecosystem is extensive, with a lot of libraries and tools that can help you build comprehensive applications.
1
u/ButchDeanCA 2d ago
You’re doing an AS in CS but talking like at least a BS in CS. If you’re doing an AS just do Java, it’s a nice and gentle language with features similar to C++, and given your timeline, why can’t you learn both?
Next comes the fact you are in this purely for the money, you are just the kind of mentality that doesn’t make it.
1
u/CowBoyDanIndie 2d ago
If your only goal is making the most money you should look for another field. You will burn out and stop programming. Or at least just plan to work your way into management. Every 30-40+ year old dev I know and work with who is making big money is inherently interested in tech.
1
u/alex_pushing40 2d ago
C++
1
u/Middlewarian 2d ago
C++ is my favorite and Java is way down the list. I'm building a C++ code generator that helps build distributed systems. It's implemented as a 3-tier system. The back and middle tiers only run on Linux. The front tier is portable. My goal is to bring software services and code generation together in one platform.
1
u/Signal_Guard5561 2d ago
C++ because it helps you write both better C++ and better Java. Even if you’re not writing Java learning how your code compiles and how it interacts with the computer is very useful in both languages but more direct in C++
1
u/Mission-Maize8454 2d ago
Yeah but syntax is different such as the key words and function names, there's no std::, cin or cout in Java.
1
u/Signal_Guard5561 2d ago
Ur asking for answers and you’re not happy with my answer so idk what to tell u
1
1
u/Itchy_Satan 1d ago
The fuck is wrong with kids these days!? C++ or Java? That's like building a house with stone tools.
It's 2026, FFS. Use Rust!
1
1
u/Mission-Maize8454 1d ago
My thinking is CE, and physical hardware are the least replaceable in the job market.
1
1
u/rkozik89 15h ago
Whichever one you can get a job for using. At the end of the day pay comes from experience in a language you were paid to get and not which one you are a technical expert in.
1
u/donaldhobson 12h ago
C++ is infamous. Java is merely outdated and mediocre. https://yosefk.com/c++fqa/
Unfortunately C++ is used in quite a lot of places. But also, C++ is 2 to 3 languages crudely nailed together. Most C++ developers only know a fraction of the language. Not always the same fraction. This means there are multiple mutually incomprehensible dialects of C++, each using some obscure features while avoiding others. So if for some reason you do want to learn C++, you need to pick which dialect you wish to learn.
Rust is nice, rust is perhaps the closest language to a cohrent sane modern version of C++. Python is ok, it's a fairly inoffensive scripting language. Zig is interesting for it's low level simplicity, more a modern C. Haskel is abstract and elegant in it's own way.
What are you wanting to do with a programming language?
1
u/Mission-Maize8454 11h ago
Hi, robotics, program real world intelligent systems that are helpful and make a difference, I don't want a skill set that's automated by AI like I think software development is.
1
u/DanKegel 5h ago
If you want to enjoy your work, learn Go and Rust.
Solve the same leetcode puzzles in both languages to get a feel for how they work.
15
u/Relevant-Cut-884 3d ago
C++ is an excellent learning language , it has concepts you will not find in any programming language , like pointers , garbage collection and also it is the main competitive programming language for its speed
Java is also good though
The most important thing is to start learning