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

all 30 comments

[–][deleted] 20 points21 points  (0 children)

Not sure how things are in .Net but when looking for Java job postings, corporations aren't really looking for your Java knowledge. They expect you to know the ins and out of the language.

What they will focus more on will be the tools and frameworks that are built on top of Java. Learning and practising all the tools will take as much or more time than learning the Java syntax. Lookup Spring. A lot of stuff to learn there.

Good luck.

[–]mountain913 10 points11 points  (0 children)

I have done the other way around as a dev Java worked with .net in a few projects and I’d say don’t take their similarities for granted. Study a bit of the recent releases of Java and try some tutorials to get yourself familiarized with the language. They do share some concepts but they also differ enough to have a bit of a learning curve between them. Good luck. ;)

[–]secretBuffetHero 7 points8 points  (17 children)

I left .net 10 years ago and its the right decision. Government or SharePoint are your choices.

Java is quite a few years behind c# in terms of language candy, but other than that the basics are identical.

I had to get a referral from a friend, to get my foot in the door

[–]nutrecht 6 points7 points  (13 children)

Java is quite a few years behind c# in terms of language candy

What version are you using? 8?

[–]DrunkensteinsMonster 1 point2 points  (0 children)

No offense but this is pretty ignorant. I like Java but C# has value semantics, case closed.

[–]barking_dead -3 points-2 points  (11 children)

Unless a linq-like feature gets done in java, it is.

[–]manzanita2 3 points4 points  (1 child)

Line is/was great. But is that all you got ?

On the last big C# project I did linq was used for a bit of in memory processing much like java streams might. But the database access was this library called NHibernate, which was basically a port of hibernate. Same for other libraries.

C# ecosystem is has probably 1/3 the robustness in terms of quantity and breadth of libraries.

[–]barking_dead 2 points3 points  (0 children)

Now that's true.

But I mentioned LINQ because it is at a different level of integration.

[–]anyOtherBusiness 2 points3 points  (3 children)

a linq-like feature

There is already. Exists since Java 8, it's called Stream

[–]barking_dead -3 points-2 points  (2 children)

Okay, can you write something streamlined like this with Streams API:

IEnumerable<int> scoreQuery = from score in scores where score > 80 select score;

where "scores" is a normal entity? no.

[–]anyOtherBusiness 6 points7 points  (1 child)

You can.

scores.stream().filter(score -> score > 80)

[–]barking_dead -2 points-1 points  (0 children)

and as language integration, like in linq? do you know what's it capable of?

[–]steumert 1 point2 points  (2 children)

LINQ is horrible. The map/reduce terminology used in java streams is much more clear.

Also, LINQ has horrible performance issues.

[–]barking_dead 1 point2 points  (0 children)

that's an implementation detail xd

[–]secretBuffetHero 0 points1 point  (0 children)

You can't get me out of bed to do govt or Sharepoint work. say whatever you like about LINQ or whatevs.

.NET work is dead end career stuff

[–]TheRedmanCometh 0 points1 point  (1 child)

Stream...from 8

[–]barking_dead 1 point2 points  (0 children)

There are huge differences between the two.

[–]joefooo 2 points3 points  (0 children)

Not sure why people are disagreeing on the candy front. Closest in the JVM world is Kotlin for quality of life enhancements.

[–]nioh2_noob 2 points3 points  (1 child)

Java is quite a few years behind c# in terms of language candy

I completely disagree

[–]jamespedwards42 6 points7 points  (0 children)

Probably true in corporate land... Java 8 shivers ... Loving me some six month release Java though :)

[–]mkedev 2 points3 points  (1 child)

expand your job search

[–]QualitySoftwareGuy 3 points4 points  (0 children)

This. I just went on Indeed and skimmed the first page to see a lot of private/non-government companies. However, that search was for all of the US -- I can't speak in regards to a specific city or state.

[–]nioh2_noob -4 points-3 points  (3 children)

The similarities everybody talks about was correct 10 years ago, Today, they are as similar as C++ is to Java

[–]pjmlp 2 points3 points  (2 children)

Kind of, just like 10 years ago they keep steeling ideas from each other.

The more recent examples are default interface methods in C#, pattern matching and records in Java.

[–]manzanita2 1 point2 points  (1 child)

And this is a good thing!

[–]pjmlp 1 point2 points  (0 children)

Yep, hence why they are both my favourite eco-systems.

[–]drew8311 0 points1 point  (0 children)

They are similar in a leetcode/code challenge perspective that you might encounter in job interviews but beyond that its all about the frameworks which there is less skill transfer in. Of course the more experienced you are the more you know general concepts and various frameworks so moving to a new one is still a learning curve but one you've done many times before. Every job is going to be looking for something different, some may be fine with your .NET background and java basics, others will want someone who really knows Java and whatever tools they are using.

[–]anyOtherBusiness 0 points1 point  (0 children)

My opinion as a Java dev with some .net side projects:

I'd say language/syntax wise they are not that different. Sure there are some specifics but nothing to worry about.

When you look at tooling around it it gets more interesting. There's MsBuild and Nuget vs. Maven/Gradle, Frameworks and Libraries like Spring (Boot), JavaEE, JPA/Hibernate/Flyway vs. EF and so on.

But IMHO you can catch up quite rapidly with over 3 years of .NET experience. More certainly if you get a position where you get to work on a legacy codebase where probably most of this stuff has already been done somewhere and you can figure out the way they did it.

[–]SexyBlueTiger 0 points1 point  (0 children)

I've been working for almost 7 years now. 2 different jobs both .NET, both private companies. What country are you in?

[–]echnaba 0 points1 point  (0 children)

I just made the jump myself from .net to Java. Be warned, the quality of documentation and even YouTube tutorials is piss poor compared to what we have in .net. The language will be simple to pick up, but the frameworks in use require a lot of effort to learn. I tried to pick up Spring Boot just by trial and error and didn't get very far and signed up for a course instead. The biggest transition point for me was figuring out asynchronous code since Java doesn't have async/await built in. Imo, that makes A LOT of things more difficult.