There are different paths to a good programmer in Bioinformatics. You need to figure out what suits you best. As most of the answers above focus on one path, I am talking about a different one.
If we ask what programming languages those famous computational biologists (e.g. Richard Durbin, Lincoln Stein, Ewan Birney, Jim Kent, Mike Brudno, Sean Eddy, Nick Patterson, Goncalo Abecasis, Gene Myers and more) use, the list is quite small: C/C++ and shell by all, and Perl by most. It is true that 15 years ago we did not have many choices, but this implies that learning even the old-school programming languages like C and Perl (just two) is sufficient to make you a good computational biologist. Some regard the versatility of programming languages makes one a good programmer, but this might not be necessarily true. To me, what is important is the thinking instead of knowledges.
Another trend behind the famous guys is they do not heavily rely on libraries. Many, if not all, of them implemented their own libraries from the scratch, including hash tables, search trees, string manipulation, sorting, special functions, random number generators, statistical tests, format parsing, basic sequence alignment and more. Doing this may be considered by some as "reinventing the wheel", but to me this is why they are successful. Personally, I do not think one can grasp the essence of programming and master the skills, unless (s)he fully comprehends the fundamental elements which can only achieved by reimplementing by oneself.
Taking this path requires years of learning and much more efforts than learning a scripting language and using libraries, but in the long run, these efforts will pay off.
Of course, whether to take this path depends on your own strengths and interests. For the majority, answers by others are more suitable. I am just giving a minor alternative.
EDIT: About Perl and Python. I used to try Python2.6, but came back to Perl in the end. The most important reason, which we have frequently overlooked, is that Python's regex engine is very very slow. For simple regex (not for complex), it can be 10X slower than Perl. While I use scripting languages mainly for format parsing, being 10X slower is unacceptable.
which answer should I choose? All of them are good.
Subjective question. No wonder you could not pick an answer ;) I also vote to close this question, to not have more answers.
I am worried that if we close it, it will be re-opened again later. There are no restrictions to subjective questions here in Biostar, we are here to discuss and to make useful debates. This question will be useful to the newbies in the world of bioinformatics to understand which programming languages they should concentrate on (maybe I should not have modified the title)
I recently covered this topic in depth. Here are the 10 most important languages for a programmer to master. In my view, a coder who does not know at least one of these is wasting his or her time on weak technologies:
http://hackishword.com/blog/2014/the-10-most-important-programming-languages-ever
Also, here's another decent post on the subject, but I highly recommend you go with my list of 10, spoken from someone with a lot of coding under my belt: http://www.businessinsider.com/best-programming-languages-2014-12#ixzz3NZpkvjuJ
A good C++ hacker can outcode an entire army of Java fanboys, and any fanboys of any other language for that matter.
You must be joking. Btw this is an example why posts like "top 10 programming languages by Lisp guru" should never be written.