TopCoder As Social Network

Enable the Subscriptions block here!

I'll conclude this week's discussion of algorithms and computing with a look at the TopCoder community as a social network. This is not something I was planning on talking about when I started this series a few days ago, but when you visit the TopCoder site and start poking around, you realize that many of the characteristics you find on sites like MySpace are present on the TopCoder site as well.

A New Kind of Social / Professional Network

I don't know if the creators of TopCoder intended this, but what they've actually created is a niche social network and online community. There's a lot of "Web 2.0" in the TopCoder site and organizational structure. Members can check a box that lets other members contact them. And there are forums where competitions and other topics can be discussed. Each member can upload a personal or professional resume.

The competitors, at the top level anyway, come to know each other. But even if you're not a top-ranked competitor -- actually, even if you've never competed -- if you're a registered member of TopCoder, you will have a TopCoder personal page. Just like you have an AIM Page if you have an AIM screen name, or a MySpace page the moment you complete your MySpace registration. Most TopCoder members allow you to send them messages. So, it really is an open social networking community!

I think with TopCoder we're looking at a new kind of online community, a mixture of social and professional networks. It's a community that's tailored to a specific type of person, certainly. It's a niche community. But, as I recently wrote in "Starting Your Own Online Community for Convenience and Profit", niche communities appear to be where we're going with respect to social networks.

In terms of networking, TopCoder offers a lot more than competitions. Of course the competitions are a way for coders to objectively demonstrate their capabilities to the sponsoring organizations and other companies and agencies as well. It's quite easy to show someone your performance level in TopCoder competition: just send them to you TopCoder statistics page. A statistics page is created for everyone who registers to become a TopCoder member.

TopCoder Member Pages

Let's take a look at a TopCoder member page. How about going to the "Top Ranked Algorithm Competitors" page:



and clicking on the handle of the current top-ranked competitor Petr. This brings us to Petr's TopCoder statistics page:



You see all kinds of data about Petr's competion history. You can see that his default programming language is C#, that he's competed in 100 competitions, that he's challenged 94 Level One results that were submitted by competitors and his challenge was deemed correct (the competitor's submission was indeed flawed) 68% of the time.

You also see links that let you send a message to Petr, view his forum posts, and look at his achievements. However, if I click the "Send a Message" link myself, I am told:

You must be a rated member to contact other members.

So, messaging is confined to actual competition participants. You cannot simply register and start sending messages. That's probably a good idea, with all the spam problems community sites encounter today.

In a way, then, your TopCoder "friend" list is everyone who's competed and obtained a rating, once you yourself are a rated competitor. Interestingly, there is also a "Black List" page, where you can specify members who you want to block from being able to contact you.

Does all this sound familiar? I'd say. Among everything else that it is, TopCoder clearly includes many of the features we associate with social networks!

Member Statistics Graphs

One thing I really like about TopCoder's member profile pages is the graphs. Here's Petr's "Rating History" graph:



Click the "Rating Distribution" button and you'll see:



Yes, that's what Number 1 looks like in plotted form.

Finding New Friends / Competitors

And, as is the case with other social networks, you can search for other members within the TopCoder community. At the bottom of many TopCoder pages you'll see a "Member Search" form. If you know the person's TopCoder handle, entering that will bring you to the person's TopCoder home page.

But there is also an "Advanced Search" page that helps you "Find a Competitor":



Using the Advanced Search, I was able to quickly determine who's active in TopCoder from my home state, and find out that 130 members have competed in 100 or more Algorithm events, and 299 members have competed in a High School competion in the past 30 days.

A Request: Handle-Based URLs

I do have one suggestion for the TopCoder team. A nice feature that the TopCoder site doesn't yet have is assignment of member page URLs based on the member's handle. For example, my diyincite AIM Page is available at AIMPages.com/diyincite. But TopCoder.com/diyincite won't bring you to my diyincite TopCoder profile page -- not at this time, anyway.

Since TopCoder handles are unique, creating URL redirects using handles could certainly be done. That would be a nice addition, adding to the convenience of using TopCoder.com as a social and professional network.

Conclusion

TopCoder is a lot more than a venue for coding competitions. It's really a community (for those who want it to be that) where people interested in coding, software component design, and algorithms can interact.

I'm scheduled to visit the TopCoder headquarters in a few weeks. It's a trip I'm looking forward to with great anticipation!

-- Kevin Farnham
O'Reilly Media