Code Warriors
Young computer programmers battle for fame, money, and the love of algorithms
By JENNIFER JACOBSON
Santa Clara, Calif.
The nerds have taken over the Marriott. On a Thursday morning in March, eight college students stand shoulder to shoulder in a brightly lit conference room, readying their brains for battle. Seconds from now, they will sit down at computers and fill their screens with lines of code that few other mortals could comprehend.
So begins the fifth annual TopCoder Collegiate Challenge, a computer-programming tournament in which contestants write algorithms to solve complicated problems while racing the clock. To survive, contestants need to master geometry, number theory, and formal proofs. For academe's cyber set, this is March Madness.
Run by TopCoder Inc., a Connecticut-based software company, and sponsored by Yahoo, the contest and its $20,000 prize for first place bring together some of the world's top young programmers. The two-day event, one of several programming contests held each year, also attracts recruiters from leading technology companies, who come to dangle lucrative offers for jobs and internships before young computer jocks.
After all, it is not easy to find students who can write a super-fast computer program to solve a problem like this: "Determine how many different character strings of a given length can be created using the letters A, B, or C."
Nearly 1,300 students entered the competition, the first two rounds of which took place online in January. Only 24 finalists earned a trip here to Silicon Valley. Some have come from the nearby California Institute of Technology, others from as far away as Poland.
As the first group of eight contestants prepares for combat this morning, a computer-generated voice introduces each of them to a small crowd of spectators. One by one the students step forward, smile at the applause, then walk to the stage, where desktop computers await. "The semifinal competition is about to begin," says the voice, programmed to sound like a British woman. "Good luck."
The challengers here will need plenty of luck to beat Tomasz Czajka, the tournament's reigning champion and No. 1 seed. A 23-year-old doctoral candidate in Purdue University's computer-science program, he won three major tournaments last year, two of which were open to professional programmers. He has earned nearly $100,000 on the contest circuit and feels as mighty as a mainframe.
Mr. Czajka (pronounced chee-ka) believes that his ability to relax during the contest gives him an edge over more stressed out competitors. "This is really like a holiday to me," he says.
Still, the during the competition he seems a bit hyper. He walks fast and talks faster. As the contest begins, his rivals show little, if any, emotion, but Mr. Czajka tries to psych them out by flashing a big grin and pumping his right fist into the air.
In his native Poland, Mr. Czajka is a superstar. He has swigged coffee with Aleksander Kwasniewski, the Polish president, and garnered plenty of attention from the nation's press. In his homeland, he says, people treat him like a star athlete.
Tall and thin, Mr. Czajka liked to play volleyball in high school, but he admits he was not very good. In coding contests, however, "he is scarily good," says James McKeown, TopCoder's director of communications. "He is the man."
Programmed for Victory
The son of two computer programmers, Mr. Czajka grew up in Stalowa Wola, a town east of Krakow. After his parents bought him a computer for his 10th birthday, he and his father would sit and write programs together. At 13 he started entering math competitions and attending science camps, where he learned the mathematical roots of computer science, like algorithms and beta structures.
At 14 Mr. Czajka entered his first high-school computing contest, in which students had to solve three problems in five hours. He did not win, but the competition thrilled him. He knew then that he was hard-wired for cerebral combat. "It's like sports," he says. "You either run fast or you don't."
He won several computing contests and TopCoder events before graduating from Warsaw University last year with a bachelor's degree in computer science. Upon earning a Ph.D. from Purdue, he might seek a job at a research laboratory. Perhaps he will return to Poland. Who knows? For now, his passion is cranking out code at warp speed.
On the first day of competition, Mr. Czajka -- better known by his nickname, Tomek -- sits at his computer, alternately chewing on his pencil, scribbling calculations, and typing furiously. He and the seven other contestants have been given three problems to answer in 85 minutes. Points are awarded for the accuracy of their code as well as for speed.
The remaining 16 contestants, who will compete later today, huddle at the edge of the stage, watching a computer monitor that displays what Mr. Czajka has typed. The room is silent, save for the click-clacking of keyboards.
One of today's problems asks contestants to write an algorithm with which to calculate how much water would spill out of an x-sized container if a y-sized object (that may or may not float) were dropped into it.
To get started, students must work out some basic geometry. Mr. Czajka types, s=waterH++objW+11(wid*len).
The waiting contestants are so transfixed that they do not dig into the dishes of candy and potato chips scattered throughout the room. They have no time to ogle Nalu, a curvaceous, green-eyed mermaid who swims on a computer screen in a corner of the room, courtesy of Nvidia, a Santa Clara-based computer-graphics company. Nobody plops down on the big, comfy purple couch that Yahoo provided.
Among the contestants watching Mr. Czajka's code unfold is Ralph Furmaniak, a mathematics major at the University of Waterloo, in Ontario. Mr. Furmaniak, the 39th seed in the tournament, jots down his own calculations to the problems on a pad of paper, for practice.
He concludes that he could write the proper programs for each of the problems, but plans to return to his hotel room and code them on his computer, just to be sure. He hopes that such geeky diligence will pay off -- and that Mr. Czajka is beatable. "No one can deny that he is consistent," Mr. Furmaniak says.
Only halfway through the round, the champion needs a bathroom break. A "minder" escorts Mr. Czajka to and from the men's room. A few minutes later he hurries back to the stage.
After a sweat-inducing hour, it is time to see whether Mr. Czajka's codes work. The disembodied voice of the MC announces that the coding phase has ended. Now comes the challenge phase, in which the eight contestants can win points by finding flaws in each other's solutions. The catch: If their challenge is wrong, they lose points.
Mr. Czajka submits one challenge that fails, then a second. The crowd gasps. "He's in trouble," says a spectator.
The challenge phase drops Mr. Czajka to second place, at least momentarily. The champion looks frazzled. His alarm clock did not go off this morning, he says. He paces as he waits for the results of a computerized "systems test," the final analysis of the competing codes.
A few minutes later, a TopCoder employee announces that all three of Mr. Czajka's codes were successful, giving him enough points to win the round. He grins and punches the air. He is going to the finals.
Moments later, a petite blonde woman named Laura Bohland strolls over to chat with him. She is a recruiter from Yahoo who knows how to flatter. "You are one of the greatest engineers," she tells him, and "you have a great personality on top of that."
For several minutes she describes the joys of interning at Yahoo. Working for the company, she tells him, would be like extending his college years. She mentions that Sugar Ray, the pop-music group, played at the company's 10th-anniversary party. Before she leaves, Ms. Bohland asks him, "You have my contact information, right?"
Mr. Czajka nods. "They've been trying to hire me for a long time," he says later. "They always hit on me."
Yahoo representatives, he says, have told him that if he worked there this summer, he could do whatever he wanted while earning about $7,000 a month. But Mr. Czajka is not sure about the offer. For one thing, he has never heard of Sugar Ray. For another, he is waiting on an internship offer from his first choice, Yahoo's chief rival, Google.
'You Have Fast Heads'
That night Yahoo recruiters take the contestants on a tour of the company's headquarters, a few miles away in Sunnyvale, where they hobnob with senior vice presidents over plates of roast beef and ice-cream sundaes.
The next morning, few contestants are up early enough to watch the wild-card round; the winner will compete in this afternoon's finals. After lunch all of the students get a pep talk from Steven S. Skiena, a professor of computer science at the State University of New York at Stony Brook and one of the authors of Programming Challenges: The Programming Contest Training Manual (Springer-Verlag, 2003).
Mr. Skiena believes that programming contests are valuable learning experiences, even for contestants who do not reach the finals. "Programmers have to learn skills as opposed to facts," he says. "Thinking algorithmically is very, very hard. You learn it by doing and practicing."
In his talk, he tells the contestants how "awesome" they are, cracking them up when he says: "You have fast heads. You have fast hands. You have balls." It is a reference to the fact that these students thrive under pressure -- and that every last one of them is male.
A half-hour later, the laughing has stopped and the lights have dimmed. The four finalists are battling for the coding crown.
Some students not in the finals gather around the monitor displaying Mr. Czajka's progress. One of them snaps a photograph of it. The onlookers see that the champion has not attempted the most difficult of the three problems. There is talk of an upset.
"My money is on the Dutchman," says Mr. Skiena, referring to Mathijs Vogelzang, a student from the University of Groningen, in the Netherlands, who has taken the lead. "He is not afraid of Tomek."
When the round ends, Mr. Czajka realizes that his only hope for victory is to find bugs in his competitors' codes. He dashes off three challenges.
As they wait for the results, Mr. Czajka and Mr. Vogelzang stand next to each other, all nerves. "Maybe mine is wrong," Mr. Vogelzang says. "Yeah, that would be great," Mr. Czajka replies. They both laugh.
A few minutes later, a TopCoder employee proclaims Mr. Vogelzang the winner. Mr. Czajka's challenges have failed. He looks surprised. Still, he smiles and congratulates his rival.
The new champion walks to the front of the room, where he receives a game-show-size check, nearly as long as he is tall, for $20,000. Contests like this, Mr. Vogelzang says, make him doubt his plan to become a doctor.
Mr. Czajka says he is satisfied with second place. He has just won $10,000, after all. But he vows to return to the next tournament, in the fall. "To win," he says.
http://chronicle.com
Section: Students
Volume 51, Issue 31, Page A31