To Train for hacking competitions, one must hack.
Polynomial is right when he says that the skills needed to be successful in a CTF or hacking competition are not learned in a day. The best way to get better is to find online CTFs and practice under the gun.
Here is a link to some Online CTFs. I would start with these. Defcon posts links to CTFs that you can participate in to qualify for their CTF. Defcon CTF Links
Next I would go to a Security Conference that allows anyone to compete in the CTF and compete. Smaller ones, bigger ones, medium sized ones all work. Practice there and afterwards go over the solutions people post to the problems you don't understand.
Like Polynomial said, a lot of different kinds of Security Knowledge is important. These CTFs are not won by 1 person. They are won by a team. At DerbyCon this year I recall talking to the winning team who was about 6 members. Some teams (depending on the CTF rules) have dozens of members offsite in order to aid the team and provide a bigger knowledge base. These larger teams are usually split into smaller teams that have specialties. This means learning everything can be valuable....but learning everything about one thing is also valuable if you are really badass at that one thing.
If you get more into the CTF/ConferenceSec community then you will likely end up becoming part of a team to actually have a shot at winning some of these bigger name CTFs.
Dig in. CTFs are fun whether you get first or last as long as you actually give it some effort .