And the Winner Is ...

Late last month, John Dethridge, a 23-year-old Australian, won the second annual TopCoder Invitational and a purse of $50,000. Glastonbury, Conn.-based TopCoder Inc. runs a Web site for programmers that offers competitions in which participants are rated on the speed and quality of solving a programming problem. The site has about 20,000 members, about 350 of whom take part each week in the Single Round Match. About 60% of members are students pursuing either a bachelor's or an advanced degree. Dethridge is working toward a Ph.D. in mathematics, in the field of combinatorics. He most recently worked on a search engine for a Web-based collection of documents. "But most of my coding work at the moment is for research projects at university," he says.
He spoke with
Computerworld last week.

Do you have a favorite programming language? C is my favorite language. Execution speed is usually critical in the code I write, so the low-level control of C is important.

What's your dream job? Working at a high-tech software firm on interesting and difficult problems.

What opportunities -- in addition to receiving that nice $50,000 grand prize -- do you expect to come from winning this tournament? I don't know if any companies will actively seek me out because of the win. I'd love to get some offers. But I think it will certainly look good on my resume.

In an IT job in the business world, would you ever program and challenge as fast as you did in this competition to meet a project deadline? What does it take to become so fast and accurate? I think that I could keep up the same pace in a regular job. When I have a program I really want to get finished, I can code for 12-hour stretches at about the same speed I would in competition.
Being successful in competition requires speed and a lot of attention to detail. You need to be able to keep the details of all the competition problems in your head and remember them accurately as you code so that you don't have to keep referring back to the spec. It requires a lot of concentration.

So what if you're proficient -- how can you show a company you want to work for that you can do more with less, which is the IT imperative these days? I think TopCoder competitions are a good way to demonstrate your skills, even if you're not in the top few ranks. Showing that you can take a problem and produce a correct, robust solution from scratch in under an hour certainly proves your usefulness as a coder, even if you're not a highly-ranked speed demon who regularly solves three in that time.

After proving your strength in problem-solving abilities, what would you say are the next two most important skills to have to land a good job as a developer -- or to work toward being a solid developer? Communication skills are important. Knowing the answer isn't enough when you're working in a team; you need to be able to explain it to everyone else and work with them to integrate your solution with their code. Being able to integrate other people's code into your own is also important.

What business or industries do you think will benefit most from the fast and accurate, heads-down programming we see on the TopCoder Web site and in its matches and tournaments? I think that TopCoder competitions encourage the kind of programming required for highly reliable, mission-critical systems. Every class you write in a TopCoder match is subjected to rigorous automatic testing and is looked over for bugs by every other competitor during the challenge phase of the competition. Any bug in a competitor's code will almost always be detected, and when it is, you score zero. You can't afford to make mistakes.

Do you think the drive by companies to establish programming standards and Web services will change the role of developer from what it has been during the past years of the dot-com and IT boom era? No, coding will always be coding, no matter what we're asked to write.

5 ways to make Windows 10 act like Windows 7
  
Shop Tech Products at Amazon