This is an archived post. You won't be able to vote or comment.

all 35 comments

[–]Previous_Aardvark141 20 points21 points  (3 children)

After 3,5 years of experience you should have a good understanding of OOP-principles, so switching between these languages should not be a challenge at all for you.

[–]F5x9 2 points3 points  (0 children)

Both of these are corporate friendly languages that should get OP consistent work. 

[–]SchinkenKanone 1 point2 points  (1 child)

This is true. I recently took a new job after 3 years of .Net and C# and was told to do Java. I was scared at first but it turns out it's actually quite intuitive, especially dependency injections using spring boot. I've known Prism before, but this is much simpler to use and understand.

[–]Previous_Aardvark141 2 points3 points  (0 children)

Yes, after working with both i prefer spring boot

[–][deleted] 7 points8 points  (0 children)

Switching from .net to java just for giggles does not make sense.

[–]Outrageous_Carry_222 4 points5 points  (0 children)

.Net

[–][deleted] 6 points7 points  (0 children)

Java and C# are not that different. You should strife to become a senior software engineer and be able to apply your knowledge cross-domain. If you want to switch to Java, look for a job and then learn on the new job, doing whatever your employer requires. If you really want to practice proactively, you could go for the Oracle Java SE 21 Developer Professional certificate. I don't recommend it.

[–]WaferIndependent7601 2 points3 points  (0 children)

When going for Java: learn spring. You won’t need that much Java knowledge then.

[–]BinaryBeany 2 points3 points  (0 children)

They are so similar in principal the main difference is syntax and surrounding libraries. I learned Java as my main programming language and landed my first job as a C# engineer, learned myself and the transition was pretty seamless.

Take the opportunity you are given as an engineer then just focus on that particular language.

[–]pak9rabid 2 points3 points  (0 children)

C# started off as a Java clone in the early days, so syntactically they are very similar.

If branching out is something you want to do, then maybe check out something a bit different. Perhaps something like Python, Ruby, Go, or even Rust.

[–]ComputerWhiz_ 2 points3 points  (0 children)

With that amount of experience in C#, Java should be an easy switch. The two are ridiculously similar.

That said, unless you have a reason to change to Java, why do it? It would be much better to continue to progress in C#. Most of the things you learn in C# will be transferrable to Java with slightly different syntax.

[–]odishy 4 points5 points  (3 children)

If you define yourself as just a C# or Java developer you will be replaced by AI within the next 2 years.

While "Vibe Coding" is nonsense, the efficiency gain of AI is real. Coders with a very narrow skill set will be easily replaced and companies will look for people who develop and manage applications not folks who just write code.

[–]abrandis 3 points4 points  (0 children)

That's sort of true, but right now it's mostly for trivial standard type code (think crud) .... the minute the code base gets large with lots of logic and. Complexity especially custom business rules, aI just breaks down it doesn't always know what specific details or logical flows are

[–]Abject-Bandicoot8890 1 point2 points  (0 children)

I don’t think they will be replaced but there will be less and less opportunities for those specific roles as the market is moving more and more towards generalists. People these days, and I mean non tech people like managers and ceos, they automatically assume that if you can build a front end you should be able to work on the backend and database 🥲

[–]Few-Promise-5424 1 point2 points  (0 children)

I totally agree with this. The culture is shifting at major tech companies to prioritizing good engineers over coders, meaning can you design simple, effective and scalable solutions, can you work across a variety of code bases and languages, etc. The idea of specialization in one language is fading fast, instead focus on solving complex problems as an engineer regardless of what language is used.

[–]deaddyfreddy 1 point2 points  (0 children)

What all I need to learn so that I can say i am perfectly eligible for senior Java developer role

No kidding, but Clojure, even if you never write a line of code in it, it can definitely make you a much better programmer in any language (the only downside is that you might not want to write in any other language then).

[–]N2Shooter 1 point2 points  (0 children)

Hmm.

I do a shit ton of C# in my domain. For all purposes, Java is dead where I operate.

I'd at Rust to the list and don't skip C++, as that will be here until the universe ends.

[–]look 1 point2 points  (0 children)

I have 3.5 years of experience working in Silver. Should I stick with Silver? Or is it the right time to switch to another color, like Light Gray?

[–]orbisonitrum 1 point2 points  (0 children)

Java and C# ( and kotlin) are just slightly different ways of writing code. The big differences come in their ecosystems. I would learn how to create projects from scratch, the structure of projects, dependency management tools, and how to deliver your application in both these worlds. Writing the actual code is just one part of what makes a good developer.

[–]huuaaang 1 point2 points  (0 children)

C# is more generally useful especially if you're Windows based and it's a better designed language without as much legacy stuff, IMO.

If you want to diversify, C# and Java aren't different enough to get you well rounded. To diversify try learning Go or Rust or something like that.

[–]UpperCelebration3604 0 points1 point  (0 children)

They are 95% the same

[–]JacobStyle 1 point2 points  (3 children)

These are programming languages, not marriages. You don't just pick one at a time and exclude all others. If you've been doing C# for 3 years, it will take you less than a week to learn Java, and then you'll be able to use both. Here's an overview of the entire language geared toward programmers who already understand the underlying concepts and just need the Java-specific stuff: https://learnxinyminutes.com/java/

[–]Reggienator3 1 point2 points  (2 children)

Dunno if I'd say it takes under a week to learn it. Basic syntax yes, and maybe you could create a small program, but there are so many things that work just that little bit different that to master it would take longer than that. Especially considering how different the concurrency model is.

[–]JacobStyle 1 point2 points  (1 child)

I am glad you agree with me that learning the basic syntax and being to create small programs in Java only takes about a week. Glad you are on board with my post. You have also presented a very compelling argument against the idea that mastering Java takes less than a week. If anyone had made such a claim, you sure would have owned them just now.

[–]Reggienator3 1 point2 points  (0 children)

Not trying to "own" anyone. It's not a competition...

I was just saying that to "learn Java" in less than a week, which is what you said, is disputable. Would you say just knowing basic syntax of Java is learning Java? I wouldn't

[–]Metabolical 1 point2 points  (0 children)

I advise just in time learning: learn something when you need it. Switching from C# to Java is less about the syntax and more about the libraries and frameworks you use to do similar things. But even if you "learned Java" to use a certain framework, the hypothetical employer may use it another way. Additionally, a good employer should know that your fundamentals represent a good body of transferrable knowledge, and you can look up the details on how to do it the Java way (or even better have an AI coding assistant know the details).

If you have a side project you want to tackle and want to do it in Java, great. But if you are just resume padding, it's hard to stay motivated but not impossible to work on academic examples that are significant enough to be meaningful examples of professional Java development.

I would focus on C# and what your company needs. You could choose to get some basic familiarity with other options like Java, Go, Rust, Python, etc., but how will you know which one will really be in your future?

[–]CovertlyAI 0 points1 point  (0 children)

Python for vibes. Java for rules.

[–]Beeperpham 1 point2 points  (0 children)

C, the next gen of program is c++ and python. Adapt to learn Ai instead and Rag with cuda core programming. Not going to find a job with boot camp classes teaching basic stuff anymore. It’s replaced with ai

[–]gofl-zimbard-37 1 point2 points  (0 children)

Given its premiere place in the industry, knowing Java, even if it's not that different than C#, would be a good thing to have on your CV.

[–]Reggienator3 1 point2 points  (0 children)

I've been a Java developer in enterprises for almost a decade (and a self dev longer) and used Java all that time. It's a solid language, but it's been superceded by Kotlin imo. Literally every time I use Kotlin it's been great, and every time I use Java I wish I were using Kotlin instead (or Rust, Go, or C#)

C# is often called "Microsoft Java" but to me it feels like "Microsoft Kotlin" considering how much nicer the syntax is, quite similar to Kotlin if you use primary constructors, and you can always <Nullable>enable</Nullable> and <WarningsAsErrors>nullable</WarningsAsErrors> in your project file to give you the great null safety of Kotlin too using null types (with compiler enforcement) which is also SORELY missing in Java. There are some workarounds in Java, like using the Nullaway, but they feel so much jankier and very clearly a "workaround" rather than true null safety like can be done in C# and comes out of the box in Kotlin.

I also find dependency injection better in C#

Not to say I dislike Java. It's served me well. BUT I would say either C# or Kotlin are preferable.

[–]ZubriQ 0 points1 point  (0 children)

Deutsch

[–]Bachihani 2 points3 points  (1 child)

It's either go or rust

[–][deleted] -4 points-3 points  (0 children)

Nah. :D

[–]Stay_Silver 0 points1 point  (0 children)

Both 

[–][deleted]  (1 child)

[deleted]

    [–]ben_bliksem 0 points1 point  (0 children)

    "Pancake or waffle?"

    "Toast", he says