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.

I have taken my major as computer science and Engineering and I am really confused at this moment. My first course was about learning C and C++ and I learned the basics of those. Now I am really confused what to do next.

Some says I should practice algorithms and do contests in ACM-ICPC for now. Others tell me to start software development. But As I started digging its really a vast topic and there are many aspects of these, like web design, web-development, iOS-development, android... etc many things. And I am really confused about what should I do just now.

Any advice for me to start with?

share|improve this question

closed as primarily opinion-based by GlenH7, Thomas Owens Jul 1 '13 at 15:54

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise. If this question can be reworded to fit the rules in the help center, please edit the question.

Start with what you think you'll enjoy working with. –  Per Alexandersson Jun 29 '13 at 16:43
But I have to make sure that helps with my career in future, shouldnt I? And I was wondering how will this programming contests be helpful? –  Tamim Ad Dari Jun 29 '13 at 16:46
Community: Since this question keeps coming up in one form or another ("what should I do next?"), and it's technically off-topic for the site, I suggest we curate this one as a canonical question. –  Robert Harvey Jun 29 '13 at 17:08
You have a tray full of various exotic and flashy fruit before you. You can be sure there are no outright poisonous ones, so the only practical advice is "Start nibbling"! –  Deer Hunter Jun 29 '13 at 17:08
Being discussed here on meta –  GlenH7 Jul 1 '13 at 15:54

3 Answers 3

up vote 4 down vote accepted

I've come to realize it doesn't really matter what you're working on, at least as far as career path goes, as long as you continually put forth effort to learn whatever you possibly can. You'll be led from one thing to the next, increasing in knowledge.

So yes, pick what you think is most interesting to work on at the time. But whatever you choose, make sure you're putting forth your best effort to learn it, and learn it well. You'll have a hard time being truly successful in this field if you just rest on your laurels once you've learned something new.

It's a fun journey, being led from one technology or concept to the next. With each thing you learn, you'll find that you're a better programmer (unless you just learned Basic. :) )

share|improve this answer

Whatever you choose for a career, you're going to be doing it for a very long time. You may as well enjoy it, because if you don't, you won't be a good programmer. Programming takes too much concentrated effort to do things that you think might make you more money, but make you wish for a noose.

That said, if you want to know what you need to study to be competent at programming, look here: http://sijinjoseph.com/programmer-competency-matrix/

For more general career advice for programmers, look here: http://www.kalzumeus.com/2011/10/28/dont-call-yourself-a-programmer/

share|improve this answer

If you are good at programming contests, I believe they are helpful both on the resume (CV) or in general skills development.

You may find it helpful to distinguish between fundamental skills, such as algorithm selection and design, mathematics, etc., and job-specific skills, such as skill in a particular programming environment or language. Job-specific skills you need will change over the years and most of that knowledge becomes obsolete quickly. Although software developers are vulnerable to fads and industry-generated "technology" obsolescence, the fundamental skills needed have not changed much over the years.

Unfortunately, most job candidate selection is based on keyword matching specific "technologies" with that on a resume, or the university attended. There is nothing especially intelligent about recruiting in the tech industry. You have to pick platforms and technologies that are both interesting and in demand.

share|improve this answer

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