8.7 years ago
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.