Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Let me first give you a small background. I am a high school student in my last year of high school. When I get to college, I want to take up computer science, because I really love software engineering.

At home, I do a lot of programming. I never really finish any projects, but I just create all kinds of different "experimental" stuff just to learn different programming languages, technologies, and programming methods. I am a big fan of C# and I also am getting more into other managed languages such as Java.

I've worked with C++ many times, and I know how the language works. Still, I just can't seem to get anything useful done with it. In C#, I can create a useful app in just a few hours. In C++, I will still be trying to understand different 3rd party libraries to get things done. For instance, I was earlier trying to figure out Qt for C++ GUIs, but in C#, you have Windows Forms right there to help with GUI Development.

So I say all of that to ask, what is the job market out there currently looking for? I want to get more into C++, but it gives me such a hard time. By the way, I am interested in business application programming. So would it be wise to concentrate on sharpening my C# and Java skills and leave C++ until later?


share|improve this question

closed as off-topic by MichaelT, GlenH7, gnat, Bart van Ingen Schenau, ratchet freak Sep 8 at 13:56

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions seeking career or education advice are off topic on Programmers. They are only meaningful to the asker and do not generate lasting value for the broader programming community. Furthermore, in most cases, any answer is going to be a subjective opinion that may not take into account all the nuances of a (your) particular circumstance." – MichaelT, GlenH7, gnat, Bart van Ingen Schenau, ratchet freak
If this question can be reworded to fit the rules in the help center, please edit the question.

5 Answers 5

up vote 1 down vote accepted

Just be good at programming. Dont get all hung up on trying to predict where the job market will be in 4 or 5 years. One, because you're too young, and two, because you're not going to be able to do so. This industry changes. 5 years from now is two generations in technology. Oracle could do something stupid and Java may fall out of use. Apple may come out with the iToilet, and we'll all forget about phones and start programming for that. Just go with it and be flexible.

So, learn the fundamentals, start actually finishing these projects you work on to get into the habit of completing projects, and worry about the job market when you get to be a junior or senior. But dont worry too much, if you are good, there will be jobs waiting for you.

share|improve this answer
HA HA HA. Don't give Apple any ideas! I don't feel like making plugins for a toilet. :P –  QAH Feb 26 '11 at 15:43

Remember, you make your job market. That is, there may be very few professional Lua developers out there, but Lua might be what gets you up in the morning. Don't switch to C# or Blub. Do what you love! Another example: very few developers make a living writing games versus displaying business data in atrocious gray forms. Maybe you hate gray forms even though that's the biggest market! Don't do it! If you need to write games, or wireless protocols, or model weather in mainframes, then do it!

As for finding your job market, experiment, experiment, experiment. Build things that make you happy like an iPhone fart app, or a Lamaze coach for your pregnant wife, or a to-do list (just kidding, to-do lists are stupid).

Thrive, succeed, transpire!

share|improve this answer

I started off in a similar position as you. It was always great to see a GUI interface in front of me and Windows Forms makes it easy to create one, as well as auto generate code for it with a simple click. My suggestion to you starting out would be to learn Java or C++ and try building basic programs without a GUI interface. Java may be a little easier to start out with since you are more familiar with C#, which is more like Java than C++. Once you develop an understanding and familiarity with programming, learning different languages such as C++ becomes fairly easy.

I know it is hard to start at the basic level and create basic programs, but it is something that I would suggest doing before trying to create something a little more intuitive. There are many websites online that will help you start out, such as http://download.oracle.com/javase/tutorial/java/nutsandbolts/index.html. I'm sure doing some basic programming will help you get a great jump start in college.

Another thing you can do is contact the college you will be attending next year and see if they can get you in touch with who will be teaching your first programming course. Ask him/her for hints to get ahead, what language you will be learning first, and even what book you may be using (so you can buy it and get a big jump!).

share|improve this answer

I'd focus on learning C++, and aim lower in terms of the types of projects I do for now, unless I knew that the CS program I was pursuing used another language (see below).

Focus initially on simple input/output via command line, doing calculations, and using the STL. Take a look at Stanely Lippman's "C++ Primer" and/or either The "C++ Programming Language" or "Programming: Principles and Practice Using C++" by Bjarne Stroustrup

You're in high school and considering majoring in Computer Science. You have a lot of time to learn things in depth, which might mean being a bit less productive initially. C and C++ are both closer to the metal, and I assume you will have to study one or both of these languages in pursuing your degree. It's possible you might even be doing some assembler programming.

(If you were going straight into the job market, by all means, I'd encourage you to stay with C#.)

Of course, if the CS program you're pursuing uses Java instead, then by all means, continue to study Java. (I don't know if any CS degrees use C#.)

EDIT: You also might want to consider your choice of computer science. You could also look at a business computing degree, in which case C# and/or Java may well be just the ticket.

share|improve this answer
I have done basic stuff in all three languages (C++, C#, and Java). I'm looking for bigger challenges. I was thinking about joining an open source project, but most of them are kind of cumbersome for me to go in and start fixing bugs. What are some more advanced challenges I can take on without getting too hard? –  QAH Feb 26 '11 at 1:24
You sound like someone who likes to produce something useful right away, which I can identify with. So I guess I'd recommend thinking of a tool or product that you or someone you know can use and try to develop it. On the other hand, you could seek to expand your mastery by studying algorithms (which you'll surely see when you study computer science.) and generally get ready for what's coming. –  vjones Feb 26 '11 at 1:31

Since you're going to college and now entering the workforce, just yet, it seems you're asking about the market four years from now. If I were you, I'd take a look at the trend of programming language at a site like: TIOBE and choose a language that's on its way up in popularity (C# or Python). From a learning standpoint, Java, C#, and C++ are all similar languages, so to broaden your horizons, consider learning a dynamic or functional language next (Ruby, F#, Scala, etc.). Even if you don't end up using these languages in business apps, knowing what they offer will help you to be a better programmer.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.