Saturday, December 3, 2011

The right stuff

During my tenure as Chair, my main role at the ICPC was to make resources available to our competitive programming teams. Doc Mana took care of the coaching. Grace and Lisa took care of the other details. In the lull that followed, I became a spectator. I checked the scoreboard or else texted the coaches for our standing. My heart rose with every point gained and fell for every position dropped.

This year, I got very heavily involved, more involved than ever before. Aside from mustering resources, I also handled some of the Lite coaching, the food-and-drink prep, transportation, and using my special ability to get in people's faces when it counted. Working this closely with the teams makes you reflect on what it takes to excel in a competition of this nature.

Programming skills are a given. You should be way past making fencepost errors to even try your hand at competition. To be fielded for competition, you should be struggling with the problem, not the programming. The programming should be like breathing.

Still, programming skills are not enough. You need to have rapport with your team mates. You have to understand each other's strengths and capitalize on them. There's no room for infighting, not if you want to win. If there's no chemistry in the group, the solution is to either work it out or change group altogether.

You need to be willing to put in practice time. You have to take the training seriously. You can't be lazy. Yes, this costs you hours with friends, playing Monopoly Deal or Skyrim. Into each life a little rain must fall.

You need the right attitude. You have to want to win. True, there are teams we field for the experience--the younger, less mature teams. After a year or two of playing for experience, it's time to kick butt in a major way. You have to be resilient in the face of failure. You can't be easily discouraged. The problems are hard. You can't fold just because you don't understand them at the first read. You won't always come out on top. There will always be some up-and-coming young'un who will school you in ways you never thought you could be schooled. When this happens, you can't lose focus, you can't lose faith. You have to keep going. Finally, problem solving needs to be intrinsically fun for you. If you find it boring or if you'd rather be doing something else, there's no point in you consuming team resources. Go where you're most happy. If, on the other hand, you get that endorphin high from when the judges respond "Yes", then you should embrace your nerd pride and invest your energies in becoming even better at this thing that you love doing.

If you have the right stuff, the rest is practice.