Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I know a bit of C++, Java and Ruby. I want to be proficient in one of these now and I don't know how to pick. I was wondering if picking one over the other would be advantageous in any way for competitive programming?

share|improve this question

closed as not constructive by gnat, World Engineer, BЈовић, Walter, ChrisF Jul 11 '12 at 12:54

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

I've had some (minor) experience with the ACM ICPC, which I suppose is quite similar to most programming contests. If I had to pick a language, I'd do so in the following order:

  1. Your level of competence / comfort in the language. Number of problems solved almost always trumps time taken to solve them, so your priority is to get things working.
  2. The degree to which that language helps you with different types of problems. Some languages just have better support for certain things. Take string manipulation for example - many serious teams have at least one person who is (very) competent in a language which is good at string manipulation.
  3. The general verbosity of the language. While the limiting factor will probably be your ability to come up with solutions, it does help if you don't have to write "useless" things, like the types of exceptions you might be expecting. This is a programming competition, you are not meant to write the code for maintainability.
  4. The speed of the language, in general. If running time is slow, you are probably using the wrong algorithm, and in any case, you won't have time to micro-optimise the code. Many people make their choice based on this, and in my opinion, poorly.

BTW, this topic is fairly well documented and discussed on the net - simple googling will lead you to a variety of topics and stories.

share|improve this answer

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