views:

249

answers:

7

This is more of a directional question. I've been taking computer science classes for about 2 years(a graduate with my A.S. degree this fall) and I'm sort of wondering everyones opinion on where the market is headed towards today with programming languages. I'm getting better with c++ but I still have a lot to learn and I'm pretty knowledgeable in Java as well. On that note, I love linux programming, and enjoy c++ the most and would never try to program any Windows applications in c++. I would use java for sure, but would anyone suggest picking up a .NET language like C# for this purpose? Also, how big is the "linux programming" world related to c/c++? Is it large enough to where I can make a career out of it easily without having to pick up some of Windows' .net languages?

Basically it comes down to, how many linux programming jobs are out there, so I don't have to program Windows apps?

+3  A: 

Best way to determine this is to determine where you want to work--at least if that's important to you--then search a job site for programming in that location and look at the skills the various job postings are looking for. This will give you a good idea on how you should focus your skills.

Russ
+4  A: 

I wouldn't eliminate the possibility of programming C++ in windows. There are a lot of applications where I work that still use C++ on a windows platform (things like back-end services, or places where speed is critical.) That said, Java and C#/.NET both seem to be rather hot.

bporter
There's also large systems that were started years ago and are vital to the company. They can't be discarded, and it's utterly impractical to rewrite them in C#. That's why I'm still using MFC.
David Thornley
+2  A: 

I suspect, based on no facts whatsoever, that there are quite a few more windows programming jobs, due to the simple fact that windows is installed on more computers. But then a lot of servers use Linux, so it's not quite so straightforward.

If you are coding on Windows, Java is still a perfectly acceptable alternative anyway, at least from what I've seen (the SW house I work has a roughly 50/50 split between Java & C#).

But at the end of that day, you need to love what you're doing, and if you love coding C++ for Linux I'm sure there are enough jobs to keep you going if you look hard enough.

Grant Crofton
Plenty of work on server side programs.
Thorbjørn Ravn Andersen
I would argue the exact opposite. As a user you see Windows on Desktops a lot. But most people do not see what are in the server rooms where most of a companies computation power is housed. Now I am not saying Windows does not have a stake in the server room but I don't think you would call it the largest set of machines (depending on company and industry of course). PS. Wikipedia as a source is not a good indication of research. Use it as a starting point then pick some real research pointed at in the reference section.
Martin York
There is nothing wrong with Wikipedia as a source when it points to the actual reference article or link as proof.
khai_khai
+1  A: 

There are lots of jobs for Java programmers. And you don't need to "code for Windows" or even use Windows to develop in Java.

I've been into Java development for a while, using GNU/Linux operating systems.

Fernando
+3  A: 

It depends more specifically what type of programming you want to do. Do you want to write number crunching apps? Systems programming? Games? Compilers? Enhance your knowledge of C/C++. There are jobs out there for all those things.

Neither Java nor .NET is a bad choice. I would say the majority of computer related jobs are in these fields. However, its a very different type of programming compared to what you do with C/C++. Much more high level, usually line of business apps or some sort of consumer grade application.

If you want to learn some web programming you have all types of options. PHP is one of the most popular web languages. ASP.NET is very popular right now in either the VB or C# variations.

There are jobs available in everything.

If you really want to boost your programming cred. Learn and love SQL, CSS/Javascript/AJAX(if applicable), RegEx and a scripting language. These may be secondary skills to your programming language choice, but they are in my opinion, essential to being a skilled programmer. They will make you all that much more marketable.

Mike Cellini
What you have said in your bolded portion is that it is essential to be able to do web programming to be a skilled programmer. Why is that? Why is being able to do web programming more essential than, say, embedded programming, or assembler programming, or high-performance numerics?
David Thornley
notice I said "if applicable" about the web related stuff. SQL, RegEx and scripting, whether its vbscript, python or something else are essential tools, used in many places besides web programming, and they are skills that translate regardless of what language you might be learning for you next job or project.
Mike Cellini
+2  A: 

In my opinion what gives me the most edge from my Master Cs studies isn't particular programming languages I learnt at university. It's the concepts that are general for all programming languages such as concurrency, data structures, algorithms, numerical analyzis, maths and so on. The language is a tool you will learn at your first job.

So I would say; don't aim to be a one-trick-pony become a generalist.

FuleSnabel
+1  A: 

Remember that you don't have to find a lot of jobs--just one. There is certainly plenty of work to be found in C++/Linux--don't worry just because the market for C#/.Net might be bigger in absolute terms.

If you're passionate about it, you'll be/get good at it. If you're good, you'll find some place that can use you.

Drew Hall