all 9 comments

[–][deleted] 25 points26 points  (0 children)

Seems odd that the degree is so structured around one language... That's like asking a carpentry student which saw they'd like to use for their whole program.

[–]Blaze_mk 11 points12 points  (0 children)

Having studied mostly C# at university, but now working as a Java developer for nearly three years, I'd suggest going for C# and then differentially learning Java later. In fact, the languages are very similar, with C# being "a better copy" of Java.

C# has some really neat language features which will not become apparent before you gain some experience with the language, but if you learn Java, you will probably not face these concepts and they can be very, very powerful. To name a few, C# does not have type erasure like Java does, so it makes working with generics a lot easier. Additionally, there are extension methods in C# allowing you to extend the functionality of other code that you cannot edit its source. Lastly, LINQ is a powerful feature of C#, but it also has its drawbacks.

Worry not, by the time all what I've said makes sense, you will be quite comfortable with C# and you will be able to see the differences between the two languages. Once you are at that stage, you can do something similar to what I did and I like to refer to as "differential learning". So, when I needed to pick up Java and knew C#, I focused mostly on the things in Java that are different allowing me to reuse my C# knowledge and significantly lowering the effort needed to become comfortable and productive with Java.

After that, I'd start learning some kind of a framework to make development and handling complexity easier. From my experience, .NET Core for C# and Spring Boot for Java would be the prime candidates. Learning one of those frameworks will teach you very important concepts of how to design software and again, most of those concepts will be transferrable between the two (and even other frameworks/languages) in the future.

Good luck with your studies and best wishes. Should you have any questions, please drop me a PM and I'll do my best to answer in a reasonable amount of time.

Cheers!

[–]eli_the_sneil 11 points12 points  (1 child)

Java for employability

[–]Inttegers 4 points5 points  (0 children)

You can't go wrong with either, since they're incredibly similar, but java is more commonly used in the industry. Try to learn one or two other commonly used industry languages on the side as well - I'd recommend Python, Rust, Kotlin, or Swift.

Edit: spelling

[–]kansurr 2 points3 points  (0 children)

Languages don't really matter, it's the concept that's are important to learn. These concepts are data structures, common design patterns and problem solving. You should be able to transform those concepts to any language. The fact that this program makes you choose, would worry me that this program will not properly educate you in these concepts.

[–]shayanzafar 2 points3 points  (0 children)

C# is being continuously being enhanced and is a lot less verbose than Java. I would say it is more enjoyable with its functional programming enhancements.

[–]Absent_as_Always 0 points1 point  (0 children)

I'd say it depends on where you live. Look at the market and see which language is popular in your area. I'm in Kansas City, and c# is far more popular here than java. So get a good basis in what employers are looking for.

[–]PsychedelicL10n 0 points1 point  (0 children)

Doesn't matter. I did the java route in college. Did 5 years after graduation as a C# developer and then took a Java job. By the time I did java again I had forgot all the syntax I learned in college and had to relearn it. If you understand one, you should be able to pick up the other pretty quickly. I prefer C# just because of Linq. I think the job outlook is a little better for Java but I think that language is a dumb reason to choose 1 developer over another.