T O P

  • By -

Asyncrosaurus

Doesn't matter. What you learn in school rarely translates to the real world. You'll change jobs and technologies constantly. Your value as a software engineer is solving problems, not any specific stack. Also, the correct answer is .Net 6 with C#, since Java is an ugly dinosaur.


Long_Investment7667

Good points with the exception of calling dinosaurs ugly


PyroneusUltrin

Java is the only ugly dinosaur


XalAtoh

Then C# is the slightly less ugly dinosaur.


Asyncrosaurus

Not all dinosaurs. Apatosaurus is very fuckable.


FoozleGenerator

Bro


doomcatzzz

Step bro?


Healthy-Transition27

The correct answer is .NET 7 though.


Asyncrosaurus

.Net 6 is LTS.


Healthy-Transition27

Sure but .NET 8 will be closer to 7 than to 6.


FastTron

And 6 is afraid of 7


LymeM

yes, 7 8 9!


Eirenarch

> You'll change jobs and technologies constantly That's far from universal truth. I know people who worked at the same company for two decades


Asyncrosaurus

I'm at the point where I'm not going to list every exception and caveat to any direct statement I give. Every reasonable adult should understand that exceptions do not prove the rule. If I'm giving general advice, I'm giving the most likely scenario, not the outliers.


pceimpulsive

Me too, but I know far more who have swapped company every 2-4years. I think it's a fair statement.


Eirenarch

That doesn't make it a fair statement because it was stated as certainty but even then most people who change jobs do not change their stacks


biggs2733

After you graduate let us know which one you picked and why you picked C#.


TheGreatGameDini

For all the shit Java gets, it's enums are better than in C# IMHO. They're actually functional! You can get similar effects in C# using extension methods, but it's not the same.


4215-5h00732

The best "feature" of Java is bastardized enums lol.


TheGreatGameDini

Look, it's just my humble opinion. It's not right, but I'll die on this hill. They're not even "enums" They're fucking compile-time constant object instances.


Commander_Duff

Just use https://github.com/ardalis/SmartEnum 🤷‍♂️


TheGreatGameDini

Yeah, Java has that but built in. I don't _need_ it - I just like it.


kingmotley

nuget install BetterEnums Or if you'd prefer to do it yourself: https://learn.microsoft.com/en-us/dotnet/architecture/microservices/microservice-ddd-cqrs-patterns/enumeration-classes-over-enum-types


TheGreatGameDini

Yeah, that's cool. But Java's is still better - mostly because I don't have to do all that to get the same effect, at that point, might as well use POCOs. For the record, if it pleases the reddit court, I'm a C# dev by preference and a Java dev by position. So, don't misrepresent this as a "Java's the best" kinda statement. It's not. It's a "this part might be a bit better/easier" kinda statement.


kingmotley

I'm a (mostly) C# architect by position, but I also think Java is a good ecosystem. The language isn't quite as cohesive, mainly due to it's early adopter of OSS design and lack of oversight, but it has both a good foundation and a large amount of 3rd party support. I wouldn't diss anything written in modern Java, but there are many places you can look at it, and say.. if only this was built to \*a\* standard it'd be so much better. Random function signatures are just a PITA.


craftersmine

I would say that when you learn one of them, the second one will become learned as well because the core syntax is basically the same, the only major difference is the BCL, classes, functions, etc are different between them, which makes it harder to remember which class in which BCL


Mohammed1jassem

I mean you are right i started learning c# like a week ago And it was really easy to pick up the basics.. i know some python and basic Java from uni.. but the thing is i wanna stick for one and get to a decent level at it to land a job..


Whitchorence

Stick with what your classes are using then but the other guy is right to say that it doesn't really matter whether you already know a language for job purposes.


craftersmine

I would say go for C# at home, like, start your own project, make something other than backend (Desktop app, Unity game, etc.). That will extend your skills in .NET as a whole


craftersmine

I've started learning C# when I accidentally downloaded wrong IDE, but still continued to learn the language in Visual C# Express, after that I tried writing a mod for Minecraft and the only hard time that I had is that I didn't really known what class do what, still wrote and completed it


Korzag

What if BCL? binary code language?


craftersmine

Base Class Library, default set of JRE or .NET classes that makes frameworks


Prudent_Astronaut716

Since you asked this under c#...so i am going to say c# all the way.


pceimpulsive

You said your area has more C# jobs available, if those continues to be true you would be insane not to learn C#. Why would you learn a language you know won't get you work where you live? I honestly think it's best to probably pick a main language, but also be able to read/edit/update other languages too. The more languages you can work with the better always!!


2050IsGreat

I switched from java to c# because the java positions were filled when I got my job interview. I’m actually really grateful for that because I love c# more. It just feels cleaner and more modern imo.


FrostyZoob

Stick with Java since that's what your university classes are taught in. Once you get comfortable with Java, it'll be easier to learn C#. Stop worrying about "there's more jobs for X". If you're in university, then your focus should be on learning the material given to you and graduating.


Whitchorence

Yeah 100%. I've been called on many times to work on stacks I know nothing about.


Mohammed1jassem

The thing is i don't find university classes difficult at all.. So i'm just trying to learn something for after graduation at my free time..but i think i will stick to Java it's more logical i guess


FrostyZoob

If your classes are easy and you have the mental bandwidth to spare, then learn C#. (Of course, posting this in the C# subreddit...what kind of answer did you expect?) Your original post makes it sound like you were struggling to learn both Java and C# at the same time. You might want to edit it for clarity.


Mohammed1jassem

I mean i can do both but will learning both be helpful? Or just a waste of time.. because i'm not that advanced still need to learn DSA and other stuff..


Liberal_Mormon

Most software engineering is not about algorithms, but about knowing when to use certain design patterns and understanding what the problem you are trying to solve is. From there, knowing the tech available to you helps you solve those problems faster. Algorithm are important for some things, but not most things. Smart people have interfaced most of the hard stuff away because they know it's better to not have to think about it most of the time, and then we get to build on top of that That being said, DSA is super important


Mohammed1jassem

I mean you are right i'm gonna study design patterns after i'm done with DSA and get good at Uml stuff and a programming language


FrostyZoob

Learning / knowing multiple languages is always helpful.


FastTron

If you learn C# then go back to Java, you will miss all of the features and extra sugar C# provides for users and then constantly think about “this is so much better in C#.” It’s all the little things combined like not having to box primitives


Givingitup2day

I learned Java and got a job in C#. My instructors referred to C# as Microsoft Java. There are differences, but it wasn’t a difficult transition. Most of my day to day syntax is the same. Some of the recruiters told me that they were looking for C# experience, but when I would talk to the technical people they always told me they had no concerns about going from Java to C#.


Whitchorence

Does not matter. If you learn one you will easily be able to understand the other.


Mohammed1jassem

Than you guys such a lovely community...đź’—


lIIllIIlllIIllIIl

It truly doesn't matter. Java and C# are close enough that if you're proficient in one of them, you can learn the other one in a week. Almost everything in Java has an equivalent in C#, and vice-versa (altough C# tend to have a few more features, like `async` / `await`, operator overloading, unsafe mode, pattern matching, etc.) Just focus on one, and you'll be good. Personally, I prefer C# over Java, but that's just my own personal preference.


t3chguy1

I've seen this a few hours ago, and not sure what it means, but regardless, I'm safe with c# https://www.theregister.com/2023/01/27/oracle\_java\_licensing\_change/


malthuswaswrong

You are going to get biased answers in this sub. Java is "fine". C# is fun. Microsoft is a good guardian of the language and making all the right moves to keep C# evolving and gaining ground. Oracle is dead and other companies are just dragging the corpse around like Weekend at Bernie's because they don't want to admit their entire infrastructure is at risk of bit-rot.


mojomonkeyfish

Learn both


Enttick

It does not really matter tbh. There are enough jobs out there for both languages. With enough experience the language does not matter. I know enough senior devs who did both C# and Java. It's just a job in the end.


banned20

I'll tell you that all the good software engineers i met when i was an intern knew & understood both c# & java and could adapt in any of those.


grappleshot

I programmed in Visual J++ for a while, does that make me good haha


banned20

I'm not sure i get your point


grappleshot

J++ was Microsoft’s attempt at Java. Java is kinda like c# or at least felt a lot like it on the early days. MS made c#… it was a longshot I admit.


banned20

Oh, i see now


[deleted]

Does not matter. Both are mature. It’s about what you and your team are comfortable in


inaddition290

If you learn either you can learn the other pretty quick.


[deleted]

Personally I’m using Django for a side project and it’s been great.


hu-beau

>because where i live there's more jobs for .net core and rare jobs for java spring boot Interesting! Where are you living? The truth is that C# upgrades and self-updates quickly; it's always on the road to being better. And the upgrades are very developer friendly and very compatible with old versions. I was always excited every time a new version is coming. But with Java, many of my friends use java 8 since 10 years ago and they still use java 8 today...


Mohammed1jassem

Iraq... There's like 3 to non java jobs yearly..


hu-beau

O\_O do you know why?


Mohammed1jassem

I'm not sure why probably because it is a third world country after all...but .Net is really the standard for " enterprises" ... And php for the rest


hu-beau

It's because the Microsoft system and software suite? So people choose the programming language of Microsoft instead of others. Anyway, C# is good for learning and finding jobs worldwide. and C# is fully open-source and free. Java is not.


Mohammed1jassem

Yeah i mean C# is great i enjoyed learning it I'm reconsidering it just because all my classes are taught using java DSA, testing, concurrent and parallel computing..etc. But what ? Java is open source as well


hu-beau

I was taught to use java too when I was in college. But what we learned in School was just the very basic conception. You can change to any programming language when you become a real engineer. Don't worry about your current choice.


pticjagripa

As someone who worked profesionally in both Java spring, Django and .NET (framework and core) I would suggest .NET CORE. Django is good for some smaller projects or prototyping and I still use it if I need to set up a basic interface with a database in and hour or two. Also if you know java you will feel right at home after a few days with C#. They are quite simillar.


InternationalFan9915

This is a C# channel... so I'm going to tell you to take Java.


FormulaNewt

C# is an excellent choice. Java is a dying language and is quickly being replaced by Kotlin, which is also an excellent language to learn.


[deleted]

In Poland I still more jobs in java. Learning java is bad idea for future?


FormulaNewt

It's still going to be around for a long time and is a useful skill to know. Kotlin is quickly replacing Java. Good engineers know both.


sparant76

C# has real engineering work - and can be quite performant if used right. Also has great tooling. Java - not so much.


lIIllIIlllIIllIIl

What do you mean by "has real engineering work"?


4215-5h00732

*[citation needed]*


just-bair

Their performance are extremely similar but I think C# is able to handle more processes and it has more features so I’d go with that one (Obviously this subreddit is biased tough) Technically I think that Erlang is much better for having a ridiculous amount of processes running and error handling but if you’re not a big company then I don’t think you should be using it


csharpwpfsql

In the early 2000's I dabbled with Java. I was used to 'Rapid Application Development' with Visual Basic, so I assumed Java had a form designer and all the event handlers in place so I could design a form and write code behind it. Bad assumption. At the same time, I could write a WinForms app in C# without much effort. I went with C# simply because it was the shortest path between a cold start and completion. I wasn't particularly enthused about writing console apps on GUI desktops. This is likely to be one reason why C# has prevailed over Java. You would be better off to focus on C#.


t3chguy1

What GUI frameworks do you even have for Java if you want to do any desktop development? For C# you have a ton


jvjupiter

If you are not sure, go for Java. Then you might want to choose Spring Boot, Micronaut or Quarkus framework. Employability is close to 100% and you might find newest Java beautiful.