Where I studied Software Engineering the language chosen to teach computer science basics was Java. I had some experience with C#, so I found it a mostly comfortable transition - with a few gotchas. As an example, I distinctly remember losing some marks on an early assignment, for comparing Strings for value equality using “==”. “==” compares on value for Strings in C# and on object identity in Java. I was only slightly bitter about the decision to compare primitives by value and objects by identity with “==”.