By Steve Meloan
David Arthur, 2003 Sun Microsystems and TopCoder Collegiate Challenge Champion
The final rounds of the 2003 Sun Microsystems and TopCoder Collegiate Challenge were held Friday and Saturday, April 4-5, at the University Park Hotel @ MIT, in Cambridge, MA. Sun Microsystems was the title sponsor of the seven-week event, which gathered many of the top collegiate coders in the world together online. The competition culminated in a two-day, on-site series of face-offs at MIT.
Sixteen finalists squared off in elimination semi-final matches on April 4, and from there, the remaining four finalists battled it out for the grand prize on April 5. When the dust settled, a field of over 600 top collegiate programmers had been narrowed to just one! The winner, 21-year-old Duke University junior David Arthur, took home the $50,000 top prize in this, his third TopCoder competition. The remaining $50,000 in prize money was awarded at various stages of the tournament, with $15,000 going to the second-place winner, Jimmy Mårdell (Umeå University, Sweden), $5,000 to the third-place winner, Daniel Wright (Stanford University), and $2,500 to fourth-place winner Alan Gasperini (UCLA).
TopCoder is fast becoming the premier computer programming competition. The TopCoder company is committed to identifying and promoting programming talent through objective, automated (there are no judges!), time-based competitions.
The 2003 TopCoder Collegiate Challenge began on February 18, 2003, and ended on April 5. With over 10,000 collegiate members on the TopCoder site, representing over 750 colleges around the world, the tournament's four finalists clearly comprise an elite group of student programmers. TopCoder also makes this developer community available to corporate partners -- for the purpose of sponsorship, hiring, and software development. "TopCoder competitions enable technology companies to identify and objectively assess potential job candidates by testing their coding skills under timed, real-world conditions," says Rob Hughes, President of TopCoder.
As the competition narrowed, the 50 regional finalists in the tournament represented 34 schools, from eight countries around the world. Cal Tech had the strongest representation (with six programmers), followed by MIT, Duke University, Stanford University, and Georgia Tech (each with three programmers).
"This is the second TopCoder Collegiate Challenge sponsored by Sun, and it provides a unique and exciting environment for next-generation developers to compete, collaborate, and establish long-term partnerships," says Reggie Hutcherson, Manager of Strategic Market Development, Technology Evangelism and Adoption, Sun Microsystems. "These competitions help build developer communities, by providing an infrastructure for sharpening their programming skills, while enhancing the opportunity for future research and collaboration at the graduate level, and providing opportunities for employment upon graduation."
The 2003 TopCoder Collegiate Challenge winner is David Arthur, currently a junior at Duke University, majoring in both mathematics and computer science.
Arthur entered the tournament semifinals on Friday, as the Southeast Regional Champion. This is his third TopCoder competition. He previously entered the 2002 Invitational tournament (open to both students and non-students), where he placed third, as well as the 2002 Collegiate Challenge, where he made it to the regional finals. As a result, coming into the 2003 collegiate finals, his total prize money from TopCoder was already at over $16,000.
Like most of his generation, Arthur began his programming career at an early age. "My parents first bought a computer when I was eight -- an IBM 286 PC," he says. "That had BASIC on it. Then I didn't have access to much more until I started high school, where I learned Pascal and C, and from there, I bought C++. Then, when I first got to university, I learned Java technology."
The TopCoder competitions allow developers to code in the Java language, C++, or C#. While Arthur coded in C++ for the Collegiate Challenge, he offers high-praise for the Java language. "The main reason I used C++ was because I know it the best -- since I've been using it so much longer," he explains. "And with a contest where speed is important, it's vital to use the language you're the most familiar with."
Arthur finds the Java language particularly advantageous on larger projects, outside of the smaller confines of a contest problem. "It's easier to keep track of things with Java, and it encourages you to write better code," he says. "That comes in very handy for larger development projects. With C++, you can always get around the system, but then you often regret it later on. And the Java language has a variety of very nice libraries and utilities, and tools like Javadoc."
Arthur found that participating in previous TopCoder competitions sharpened his ability to operate under pressure, ultimately preparing him to win the 2003 Collegiate Challenge. "On the last tournament, when I got to the finals, I really choked," he admits. "I was just hoping to get to the finals, but then once I was there, I was very nervous. This time, I knew better what to expect."
He also found that certain lessons learned from TopCoder competitions are equally relevant to the real world of software development. "In the previous competitions, I was trying to go too fast. I'd just rush into the problem, which was terribly bad strategy. I'd start off doing something completely wrong, and then all that time would be wasted. So spending the time to properly figure out your design is extremely valuable."
But perhaps most importantly, Arthur finds that the TopCoder competitions have helped him grow as a developer. "I really think I'm getting to be a better programmer as a result of competing," he says. "A lot of these people are very, very good. And after a contest is over, I can look over what other people did. If you make a point of regularly competing, after a year or so, you really gain a lot of experience, and you learn quite a bit."
TopCoder was spawned during the go-go, technology boom of the 90s. Brothers Rob and Jack Hughes owned and operated a large software consulting business during this era, and along with many companies they consulted for, recognized that both time and money were being lost as a result of less-experienced developers being drawn into the industry. Yet, to reach this assessment for a given candidate, it was often necessary to engage in lengthy resume reviews. In addition, technical and engineering managers spent precious time in one-on-one interviews. "We knew there had to be a better way to screen developers," says Hughes.
After much discussion, the brothers decided that the most effective solution to this problem would be to measure skills through competition -- to attract developers with the thrill of competing, the prestige of ratings, and the allure of prize money -- delivered and administered in an objective and automated fashion.
In March of 2000, the brothers sold their consulting business, and in early 2001, launched the TopCoder site. And the rest is history. In barely two years, the site's membership has grown to over 25,000 members, spanning over 50 countries.
The site's competitions offer contestants the thrill of going head to head against the best in the field, invaluable opportunities to learn, and the chance to forge one's coding abilities in the fires of competition -- all within an online community of like-minded coders. "What's really unique about TopCoder's competitions," says Hutcherson, "is that they've taken a very technical discipline, and turned it into a competitive and spectator sport. There's a framework for really bright developers to gather from around the globe and contemplate solutions to non-trival issues impacting software development."
But beyond the fun of competing, and the allure of learning, a major goal of the TopCoder competitions is the objective quantification of coding skills. The Hughes brothers want to provide technology companies with a means to find proven talent for their development needs.
The site's competition-based rating system offers an effective and objective measure of a given programmer's skills and abilities, relative to his/her peers. Meanwhile, during a given competition's "challenge phase," coders can submit a data challenge to another contestant's submission. This provides a powerful measure of a developer's ability to read, analyze, and debug another programmer's work -- a vital skill in the real world of software development.
Some maintain that technical certification programs also objectively assess a given programmer's abilities. But TopCoder believes that the competitions are a valuable companion facility for hiring companies. "Competitions that test a developer's skills (relative to others) in real-world, time-based challenges, go much further toward differentiating one candidate from another," says Hughes. "We measure problem-solving skills that transcend a facility with any particular programming language."
TopCoder is always on the lookout for new ways to quantify programming abilities -- in terms of code elegance, style, reusability, and more. Some critics say that the competitions don't sufficiently simulate the real world, because contestants work entirely alone. So there are now plans and infrastructure in place to implement team-based competitions on the site. But Hughes offers a disclaimer as to the purpose and usefulness of such competitions. "We want to introduce the team element mainly because we think it will add to the enjoyment and the excitement of our members," he says. "But from a company perspective, it's difficult to make an assessment of individual ability in a team environment, because you never know whether one person is carrying the team. And you're not likely to hire the entire team."
Meanwhile, since most of today's developers begin coding no later than high school, TopCoder just recently announced a partnership with the Connecticut Association of Schools (CAS) to extend its competitions to the high school level.
As part of the TopCoder Employment Services (TCES) facility, the company offers its Candidate Recruitment Facility. Here, TopCoder members can elect to be notified by email of new job postings by solicited companies. Rated TopCoder members can express interest in these postings, as well as showcase their competition achievements and upload their resumes. With a member base of over 25,000, including more than 10,000 students from over 750 schools, employers can obtain objective measurements of potential job candidates that are available nowhere else. Recognizing the value of the TopCoder competitions, and the quality of TopCoder members, NVIDIA Corporation was the official corporate sponsor of the 2003 Collegiate Challenge. NVIDIA representatives attended the finals competitions at MIT in order to better scout-out potential "top coders" for their company.
Rated TopCoder members are also eligible to participate in the TopCoder company's new Component Development and Application Development programs. Here, members submit solutions for challenging and potentially lucrative real-world applications that have been contracted out to TopCoder. Winning solutions are rewarded with cash payouts, and even royalties.
And even the TopCoder site itself has benefited from the "top coding" abilities of its members. The original platform was written by TopCoder staff. But as the competitions grew in size, the system began experiencing scalability problems. "It's a pretty complex system, when you potentially have 400 or so programmers compiling, testing, and submitting different pieces of code online," says Hughes. Eventually, the system was rewritten by TopCoder members. "We paid them to do it," emphasizes Hughes. "And it's a much more stable system now!"
Java, J2EE, J2SE, J2ME, and all Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries.
1 As used on this web site, the terms "Java virtual machine" or "JVM" mean a virtual machine for the Java platform.