Hi fellas, i've been programming with the java language for over three years now. Even though i might not have worked on serious projects, i've contested in some programming contest and I enjoyed it all. I really am at a cross road here, I just got introduced into windows application development. And I think my friends down here are doing very well with it. I think I might want to switch over into coding with c#. But guyz, i think i can do a lot more with this stuff(Java). Kindly advise, as deemed fit based on your experience on which you feel might be the best way to go. Thank you all in advance!
It would help if you would start thinking of yourself as a developer - that is a technology agnostic developer, rather than a Java-developer vs. a .NET-developer.
It's always a good idea to familiarize yourself with as wide a range of languages and platforms as you feel comfortable taking on.
So if you want to start getting more into .NET development, that's great! You've already got three years of Java development under your belt, and that experience is not lost if you shift your focus to .NET.
In fact you'll find that will probably greatly benefit you as you familiarize yourself with any new language. A great many concepts (OO-related for example) are largely technology agnostic.
Of course in practice it's impossible to keep up with every feature and framework of every platform or language, so you'll probably need a primary focus. Most software companies uses a specific technology stack, so if you want to work for any single company you should focus on the technologies they use. Then again, as a consultant it could be beneficial to maintain a broader scope. It's really up to you.
Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.
My friends are doing well in XXX is a poor way of making career choices. You are not a herd animal. You don't have to do what everyone else is doing
Look at what what options are available to you, and what distinguishes you from others. One of the strategies that is reccomended in career growth is to "Fit in, Stand out". Which means that you should have skills and knowledge so you maximize the number of opportunities available to you, and at the same time have unique skills that helps you stand out from the competition. Certainly, both Java and C# has enough of a user base that you will have the same amount of opportunities in the medium term. What really matters is which technology you can stand out in. If you think you can stand out in Java, stick to Java. If you think you can stand out in C#, by all means, switch to C#