Monday, May 24, 2010

Is it learning c#.net enough. Should I learn java too.?

After getting Phd in Physics I decided to do what I have always wanted to, become a real programmer. I was thinking about Java first, then I realized that Windows has about 90% of the market. Besides I think it easier to learn .net beacuse of Visual Studio and single vendor MS. I know that i am leaving out here server market witch is not dominated by Microsoft. But I would rather use here Rails or ASP.Net. Is there a point these days to learn Java. You say it is cross platform. Yes it is but reality is that Business apps are mostly written under Windows, on the server side I would use ASP.Net or Rails. I can live without programming for Mac. What do you think. My point is that it may not be necessary these days to learn Java if you start when .net is an option.

Is it learning c#.net enough. Should I learn java too.?
It depends on whether you enjoy working in a non-Microsoft environment. Some people love IBM and Sun environments, and some people find them maddeningly frustrating.





Personally, I love the Microsoft development model. I use .NET for almost everything I do, and I have been very successful at it - career-wise and with regard to the products I have had a hand in. There are other people who would pretty much tell me to my face (not too few of those here on Y! Answers) that I am an idiot/communist/fascist/moron/ all-around-jackass for preferring .NET. But again, it is really just a preference. I know a number of people who flourish in a Linux environment developing sites with PHP and MySQL, and I work with great, smart people who excel in an all-Windows environment, with .NET and SQL 2005, writing online banking software for one of the biggest banks in the world. The point is, you can write great software regardless of the language. Don't let anyone tell you that you won't be able to "get it" or that one forces you to be a better programmer than another.





I tend to think of Java as the Neanderthal predecessor of .NET - in my opinion, Microsoft took all of the things Java got right and incorporated them into .NET, and fixed a number of the things Java got wrong.





I also like the unified programming architecture model - some people deride it as narrow and undemocratic, but I like having a clear hierarchy of how a programming framework is going to work - Microsoft says so. That means everything in the libraries are going to be 100% consistent. There's no trying to account for differences in taste and different programmers' opinions on how something should work. I think that a large number of other programming environments that are considered "better" by much of the Open Source side of things tend to suffer from this scattershot effect, trying to please numerous voices but never hitting all the targets.





Also, regarding the server market... it really depends on how you break down "market". For small-to-mid sized development, PHP and Perl dominate the market. For enterprise development, .NET dominates the market - last stats showed that .NET has 60% of the enterprise development market, with all other platforms fighting over the remaining 40. Java is a secondary player in the web/server arena.





There are plenty of reasons that Java is good, but I won't go into them because I think the reasons I like .NET better have more weight. But again, it's a personal preference. Don't let anyone tell you one is better than the other for x, y, or z.





It will never, ever hurt to have more than one framework under your belt. Learning .NET *and* Java will only make you a better programmer. But if you are trying to decide between one and the other, I like .NET.
Reply:Yes!!!





I think it's important to understand that you need to be an excellent programmer first, and then good with specfic languages second.





The reality is that in order to get any software job, you need have experience with the software being used at the time. But to get that, you need to be a good programmer in general. Java and C++ are better than ASP.net when it comes to being a better programmer, becasue while it is often easier to do things with ASP.net, it's even easier to use ASP.net if you know JAVA well. The best java programmers, are the ones that know C++ and can tell you why JAVA is better. The problem with the MS based products is that they force you to do things in the MS way, which doesn't cross over well, and in fact, isn't even the best way to use MS in many ways.





Also, have a solid understanding relational database, and object theory. Once you have the background down, you'll be able to dance into any environment and product and stand toe to toe with the best.





I know people with PHDs in Physics, who are now in software, As far as I know, they are all using Java.
Reply:Fu(k Java! I have worked in both for years and .NET is far superior. As you mentioned, market share ensure employability and what's the point unless you are the ultimate nerd and just program for "fun?"





Anything you can do in Java (except writing "cross platform" you can do in .NET. Plus, .NET may become "cross platform" soon enough anyway.





C++ has a niche market (for graphics, device drivers, high-end performance libraries). For business applications (where the money is) go .NET.
Reply:so far, all the answers are pretty much accurate. You will probably NOT find much consensus on what is good and what is bad. I have the same disagreement with a coworker over .NET %26amp; MS-SQL Vs. PHP/MYSQL.





One thing I KNOW is clear.


Learn to get your logic perfected in such a way that you can translate your Pseudocode into a language of your choice. LOGIC is the one thing that doesn't change, only the syntax does. If you can think logically, you can code in just about any language.





Study the language you like the best, and then dabble in others just in case you are called upon to change code.
Reply:NO! learn Java and C++! I am so thankful I did.
Reply:I think you should ask yourself what market you'd like to work in.





Wanna develop games? Shoot'em ups? Then C++ is the way to go.





Wanna make a lot money, even if it's in boring environments such as banks? Go with Java.





Want a lot of choice, not necessarily paid extremely well, and you're no interested in games programming? Go with C#.


1 comment:

  1. I'd like to expand my knowledge about java this is why I am browsing around and drop here. Thanks for this post.

    ReplyDelete