I want to get a reality check because from what I see on here, it seems like only a handful languages are ever discussed. I don't work in either language professionally and I feel I'm missing out on major career opportunities.
I understand the reasons why Java/C# don't get discussed too much, I just want to know how many of us use it.
Thank you.
EDIT: Thank you for the responses so far, it seems that I am indeed throwing away a lot of career opportunities.
As an aside, for the Java stack, is learning Core Java , Servlets / JSP, Hibernate (or other ORM) enough to meet the basic skills required for most of these jobs?
The bigs ones are Java, C#, JavaScript (usually Angular, and a handful of Node.js jobs) in my area. Followed by Ruby. Python is usually listed as a nice to know and there are also a handful of Python jobs around. Go is started get get listed as a "nice to know language" in a handful of jobs. It's extremely rare to see a job mentioning Haskell and I can't say I've ever seen a job looking for somebody who knows Rust.
However, I don't read Hacker News for the Java/C# news, that's for sure. There's plenty of Javascript-related stuff here, which is also relevant to what I do, and I'm always interested in learning more about (and trying out) various other languages and frameworks.
I've been learning Node.js, and I've been contemplating learning Elixir. I may or may not need any of that in the future, but I think they are valuable to learn about anyway. Learning a different way of thinking about things improves my awareness of what is possible.
I don't think C#/Java is a waste of time, but don't stop there. Learn as much as you can about other languages and platforms. You'll find yourself in a better position than someone who is uninterested in anything that doesn't directly apply to the job they are doing right now.
Java: The sad fact is that there is a huge surface area here, and which bit you focus on is going to depend on what kind of work you want to be doing (and where you're doing it).
As a bare minimum I'd want to look at the following standards: JPA (JSR-338); Dependency Injection (JSR-330); JAX-RS (JSR-339).
A solid understanding of Spring Framework would help, as that's pretty common. If you're deploying onto an application server, Wildfly would be the direction I'd look at.
From there it's religion - your best bet is to look at the jobs your interested and bone up on the toolchains that keep coming up.
Hope that helps :)
You have way more options for OSS nowadays and you don't have to be as reliant on Microsoft's black-box frameworks. I think these changes could improve the popularity of C# in the coming years.
Our customers include SAP, Samsung, Intuit, TIAA, Red Hat - mostly from technology cloud providers, financial services, and insurance. Every one of our customers have Java in their environments and value that our product was built in Java.
For C#: ASP.NET MVC, ASP.NET Web Api, WCF or ServiceStack for services, Entity Framework for data access.
Java is the Cobol of the future so there should be plenty of job opportunities on that platform in the foreseeable future. Big IT service companies doing custom enterprise apps have however moved most of the development work offshore (India or Eastern Europe) at least here in Northern Europe but there's plenty of opportunities for more senior developers and architects.
Despite all that boilerplate and complex application servers Java EE is actually quite nice for distributed enterprise apps with complex integration requirements. So if corporate environment doesn't turn you off and you want to get started with Java EE, I'd suggest in addition to core Java you take a look at EJB3, JPA and CDI. JAX-RS is nice for REST. If you want to write your front-end in Java, take a look at JSF (and some "rich" component library like PrimeFaces) instead of JSP. Servlets are the technology behind there so it's "good to know".
Spring framework was very popular before EJB3 and JPA, and still remains popular in contexts where you don't have/need an EJB container. But if you know you are targeting a full Java EE app server most of the neat features offered by Spring are also available in vanilla Java EE.
The job isn't all C# by any means, but language choice is flexible, and C# was a good fit here. I expect to be using it more on future projects.
Edit: I've been working with Java professionally for just short of 8 years.
As for C# I would image there are a decent number of people who use it for .NET. The only time I ever used it was in my senior capstone, though.
I build Windows, iOS and Android (Xamarin).
(Edinburgh, Scotland)