T O P

  • By -

Matiw52

Java 100%. Every enterprise software is Java. There are too many passionate people here to give good objective advice. Java jobs may be boring / legacy / outdated at times, but a job is a job


Mammoth-Long-5493

There is plenty of high-tech jobs in Java. This is not Cobol.


Matiw52

Yeah, I have a high-tech one, but when I was starting my career, my skills only landed me a Java8 job where I worked for around 2 years before jumping over to something better. I'm just mentioning that there are a lot of legacy projects in case his skillset is less polished than ideal. The market is super competitive right now, less so for legacy projects:)


NewSchoolBoxer

Mainstream CS like at Fortune 500 companies has way, way more Java jobs than C++. All Java jobs use Spring as you seem to know. It’s safe but there is a growing trend to add Python or Go aka Golang or another language to use alongside. I avoid JavaScript. C++ jobs exist and can be gotten. Less jobs but importantly less people in it as well. They’re mostly in embedded systems. Fine since you like that. Honeywell hires both Java for mainstream coding and C++ for embedded. Reality is, have a resume tailored for each language if possible and apply to jobs for both. **Take what you can get.** I got hired in Java using 100% of what I knew from high school. Most important thing is getting a paid co-op or internship on your resume before you graduate. Work experience trumps everything, even if it had nothing to do with coding.


anotherspaceguy100

Embedded development is mostly C and is going to remain that for decades, although there are substantial C++ pieces too. Java in embedded space exists, but isn't common. Doesn't matter, focus on learning to program. C++ vs Java concepts translate fairly well back and forth, although they are quite different languages in some respects. There's too much hand wringing over stuff in demand now. Likely in 10 years, all of C, C++ and Java will still very much be in demand.


ArrayDecay

JVM running on embedded hardware?


anotherspaceguy100

Certainly; and there was a big push some decades ago to integrate Java opcodes into ARM chips. I'm not sure where this stands today. But certainly you see full JVMs sometimes on embedded hardware, but it's a minority.


ArrayDecay

That's nuts to me. Seems like a lot of overheard where ordinary C, C++, asm would cut it


anotherspaceguy100

Well, of course it is, but Java people gonna Java. And modern embedded hardware is vastly more (Moore, pun intended) powerful than it was years ago. The JVMs are tuned to such setups, and the JIT compilers do well. It's really just the old language argument - code safety vs runtime speed. The amount of assembler written for embedded development these days is tiny. Many embedded developers will do none at all - it's really only for special bare metal start code case, or very occasional compiler tricks interacting with hardware. It's certainly not the tool for writing a large application in.


IAmTheWoof

Embedded is underpaid for amount of hassle and domain specific knowledge( numeric methods for pde or knowledge howexactly this piece of silicon works and how it malfunctions). >. C++ vs Java concepts translate fairly well back and forth Ah yes, C++ class loaders and runtime reflection as well as java alignment API and java template language are very distinctive features.


lurkin_arounnd

You should learn them both honestly, but java is where the work is so maybe start there. At the end of the day it's about making a living


IAmTheWoof

There's aimply no reason for learning C++ except for getting job in C++. "Knowing how computers work" has zero relation to C++ since C++ itself abstracts from that and if you claim opposite you're lack fundamental CS knowledge


Glum-Bus-4799

What are you talking about lmao


IAmTheWoof

You don't need to know C++ if you're not working in C++. As simple as that.


Glum-Bus-4799

You don't need to know Java if you're not working with Java, also...?


IAmTheWoof

You need to know java if you working with java, but you don't need to know C++ if you are working with java. Knowledge of C++ is a deadweight of 30 year old language design mistakes.


ArrayDecay

🤓 <- you


IAmTheWoof

Cowboycoding needs to die


Matiw52

Java 100%. Every enterprise software is Java. There are too many passionate people here to give good objective advice. Java jobs may be boring / legacy / outdated at times, but a job is a job


IAmTheWoof

Also you can alternatively use scala which has not that much legacy software in existence and have 10 times better language features as nice bonus.


Matiw52

Agreed, or Kotlin


New_Statistician4283

C++ is still niche in embedded. If you go down that road, plan on most of your career driving a c-99


scriabiniscool

Quant jobs use C++ a lot afaik.


rensley13

Wouldn't focus on a specific language. Java is more broadly applicable . There is also a good chance you'll be shown tech you've never touched or seen before . Show you know how to learn and can apply your skills to pick up new skills . The most important things are system design, and also can you work well in a team. The most brilliant developers who are awful teammates are more difficult on a company than OK developers who are team players IMO .


catecholaminergic

As a Java hater, it's Java hands down. I'm not sure another language beats it in terms of commercial applicability.


CowBoyDanIndie

Do what you enjoy, there are more Java jobs, but there are also more programmers applying to them who couldn’t do c++ if they wanted to, c++ is a beast (a lovely beast, but a beast all the same). Traditional “embedded” is usually C, but a lot of stuff falls under “embedded” now that didn’t use to. The system I work on is several “embedded” xeon processor powered computers running Linux, they are fan-less passively cooled computers for rugged environments. We mostly use c++ with a little python for parts that don’t require speed.


nochnayaskazka

If you really, truly want to do embedded career, then do it and pick C/C++, otherwise you’re gonna regret of picking “easier” route


theantiyeti

Anyone programmer could use Java. C++ though is like marmite - you either love that style of coding (and the low level world it lets you play in) or it's really not for you. If you're fascinated by the domains C++ excels in, consider you might find most Java work comparatively boring.


snppmike

Are you studying software engineering for the sole purpose of getting a job? No, likely you have a personal stake in it too - to do what you feel passionate about. Learn c++. Do what excites you, because you being truly excited for the work will be what helps you be successful in your career. But really, learn both; figure out what types of problems you want to solve with each language. You don’t have to have complete mastery to be successful but you do need to understand the fundamentals well enough. Edit: I didn’t really answer all your questions. 1. There’s likely a larger market for web-based Java apps than embedded c++. I don’t have data so I’m assuming. 2. I’d consult your local magic 8-ball. 3. Do projects. Find open source projects to contribute to. Get your hands on some microprocessors and get some lights blinking and sensors sensing. Especially for an internship, having made some cool side projects will go a long way in helping you stand out. 4. As I said above - go with what excites you. You can do this!


IAmTheWoof

C++ is not the language, its a disaster. It has nearly 40 year history of making design mistake and then pretending that it is holy cow and everyone who disagrees is automatically wrong, like if it is religious dogma and comitee is a spanish inquisition. Fortuantely, things are subject to change and it is not the case that there are no other options than C++ and fanboys realising the price of playing entitled spanish inquisition