hi all, right now i have to choose from: moving from my current position as a java software developer to a position of C software developer, in the same company, and the second option would be to quit and find another company who hires java developers. while the second option may not be hard to do (there are plenty of companies in my area that hire java developers), the conditions in my current company are excellent (high salary - which i will probably not find on another company, good working conditions overall, nice colleagues). i have to add the following facts to making a decision: i only have about 1 year experience on java overall and right now i'm not working on any technology in particular, just pure basic java.
i'm not sure what to do. right now i'm thinking that on the long term, if i find a company the works with java web development, i could gain experience in something other than "basic java", but on the other hand, C is still a big strength in programming languages overall (and probably will be for years to come - http://www.tiobe.com/tpci.htm )
the ultimate decision will be mine of course, but what would you choose if you were me, and why?
You can do both. You can program in C in the office then work on Java during your leisure time at home through personal or freelance projects. You don't really have to choose which one you should abandon, and it's always good that we as programmers don't limit ourselves on what we know or what language we are good at so we keep ourselves competitive. If your current job is really as good as you say it is and you are happy there, then by all means stay there. You are lucky to have found that, and it's always hard to adjust to another company.
If I were you,
There's so much to learn in this industry, and not everybody has the necessary interest.
I wouldn't. I worked with C++ from its beginnings and C for years before that. I got tired of runaway memory references, type-casting bombs and comparatively limited support libraries. I much prefer Java with its rich set of support packages and its tighter compile and runtime checking. My favorite description of it is "C++ without the mace and knives".
However, the C market has been fairly healthy around here in recent times, and at the moment, it might actually pay better than Java. Or at least offer opportunities at smaller companies. My opinion of the local "MNC"-sized employers isn't that favorable these days, and they do seem to be the main sources of Java jobs.
When it comes to destroying a civilization, gas chambers cannot hold a candle to echo chambers.
Its a personal choice, and having good folks to work with, decent salary, and bosses without pointy hair makes up for a lot of other bad things.
IMHO, the C market will stay lively for a while in the embedded space, and in OS kernels, drivers, etc. But its days as a widely used language are over. Too much stuff is hard in C and trivial in Java or Python or Ruby. As processors get faster and faster, for mainstream applications development, the performance gains of C are not important in the engineering design effort.
Great C programmers are very valuable, and worth a lot of money. I'm not sure you can become a great C programmer without working at it for four or five years.
If your interest tends towards higher level problems, how to manage content, user experiences, rapid web development, then C is not the language for your career.
My direct answer to your question, for me, is no, I would not, I'd find a place using Java, Python, Ruby, etc.
I have found that both C and Java are high in demand currently. I have a need for both sides. I would say though if you really want to strive as a Java developer that you better learn the Micro Edition because everything including server apps are starting to go there. I am actually trying to fill such positions. They need people with a strange combination of skills to work on the server side programming for mobile applications. (Who would have ever thought?) J2ME is very high in demand currently. In regard to C; still more in demand than ever as well. In fact the HD/Blu-ray war has brought on a need for people with a conjunction of both Java and C. The Java of course is the micro edition for the software and the C is used for the hardware portion. All those HD DVRs/DVD players require both languages, and you are about to see an entire line as such for Blu-ray as I know some developers who are currently working on them.
So who thinks Blu-ray will beat HD?
Ryan Phillips<br />Recruiter<br />Artizen, Inc.<br />509 Seaport Court, Suite 100<br />Redwood City, CA 94063<br />Phone: (650)-261-9400 X105<br />Fax: (866)-850-2576<br /> <br />Email: email@example.com
Yes, both are hot, embedded stuff is screaming hot, and C works well there.
I think HD/Blue is past any technical differences and will come down to money. People won't want to buy either until one wins. I think the studios will accept cash to support one format or the other, which will push more releases out in one flavor, which will drive folks to pick that one.
Please don't hijack this thread. This thread is here to discuss the topic: would you leave Java for a job on C? A discussion of future technologies should be in a separate thread--which might do better in Meaningless Drivel, but would be ok in Job Discussion since it is tangentially related to the future job market.
I personally wouldn't. In my view stay with skills/technologies in demand.
This will make you more employable, even in a difficult job market. For example a few years ago, if you had EJB in your CV you would have been in demand but now a days you need to have Spring, Hibernate, JSF, Ajax4JSF etc.
Look at the job trends in your area ...... IT job market is more volatile than any other markets. There is no real job security in IT. You need to have your skills up to date.
Since there is a market for C, you are not much on a desperate scenario.
Identify your options. As of now, you havent mentioned what other opportunities you have (like, definite job offer). Try list your options, and usually, you dont even need to think. You can just look at the list and the choice is obvious.
You can stay in the C job, while trying to list your options.