December 4, 2012 How Quora Founder and Ex-Facebook CTO Adam D'Angelo Became a TopCoder
Sharing knowledge. It is a foundation of the TopCoder Community. Whether it be a small peer-to-peer intra-community suggestion or the placement of industry-specific subject matter experts co-hosting an open forum and answering the community’s most specific questions; knowledge sharing begets new knowledge creation, and personal and community growth. It probably comes as no surprise to this audience that many of us internally at TopCoder find great value in the knowledge sharing community site Quora. If you have never frequented Quora, you are probably leaving knowledge on the proverbial table. It is a simple interface with a sharp focus on allowing members to ask resoundingly specific questions and then allowing subject matter experts to self-select the questions they care to answer. The cumulative result is the aforementioned sharing of knowledge, and many times over, expert knowledge is transferred. It probably also comes as no surprise that TopCoder is “itself” a frequent topic on this Q&A site. With one quick visit to Quora and a search of TopCoder you will find a wide range of questions, many stemming from individuals looking for advice with getting going with TopCoder, or how to most rapidly achieve a certain “color” in the TopCoder rating system. It’s all rather fascinating and reading through the various answers is an exceptional way to understand how others have found success (and experienced failure!) on TopCoder. It is an extraordinarily valuable resource for our community members and we certainly appreciate it being available for all to benefit from. One thing you may not know, but a piece of history that is rather interesting is that both Mark Zuckerberg – yes, that Mark Zuckerberg, and Facebook’s original CTO (and the founder of Quora) Adam D’Angelo were both active members of the TopCoder Community. We know, you want to know how “Zuck” performed on TopCoder… let’s just say he was extraordinarily wise to choose Adam to be Facebook’s first CTO, because Adam – when actively competing – was an exceptionally rated TopCoder. He was recently asked how he performed so well on TopCoder and in particular, how he was able to so swiftly climb the rankings and achieve the coveted status of a Red Rated TopCoder (our highest ranking). Where did this great back and forth take place? On Quora of course! You can check out the entire Q&A here and again, if you or your enterprise is not already leveraging Quora to both gain and share knowledge, you might be missing a great opportunity for yourself personally and for your company to emerge as a trusted thought leader in the specific areas that matter most to your business.
And below is a small snippet from the aforementioned Q&A featuring Quora founder Adam D’Angelo: TopCoder: How did Adam D’Angelo improve so fast in TopCoder? Adam D’Angelo, Quora Founder 212 votes by Joydeep Sen Sarma, Saurabh Sharan, Severin Stalder, (more)
As Cosmin points out this wasn’t that fast given my background, which at the time I started TopCoder was two years of USACO contests and their training pages. Regardless, here is what I needed to do initially:
- Get better at parsing input quickly and accurately. In most other contests you’re handed the data in a format that’s easy to deal with, and parsing is insignificant compared to the actual implementation. In TopCoder parsing the input can require splitting strings, converting types, and watching out for tricky edge cases. These are all easy to do, but I’d never had to do them under such time pressure and with zero tolerance for mistakes before. I made a library of a few parsing functions which helped a lot at getting faster at this.
- Learn STL. I hadn’t used STL before, and learning all the ins and outs of it like the performance of each method, how to use functors, the fact that vectors automatically double when they run out of space, etc. took some time. I remember learning the hard way that string.data() didn’t guarantee a null character on the end of the data – there were probably 10 other mistakes like that I had to make before I was really confident with STL.
- Get better at checking edge cases. Because TopCoder programs need to pass every test case to get any credit at all, this was much more important than in the other contests I’d done. In the other contests the test cases are generally there to see how far your algorithm will go, not to try to find every possible bug. Initially this felt “cheap” to me but in the long term it definitely helped my implementation skill and I appreciate how it made me develop.
We encourage our readers to check out the entire exchange on Quora and to participate in their very worthy, knowledge sharing community. TopCoder would also like to thank Adam personally. He was very supportive of our content team sharing this story here on the TopCoder Blog – thank you Adam. Who currently competing in the TopCoder Community is the next Adam D’Angelo? Time will tell, but we thank our entire community for their continued participation and unparalleled innovation. Keep up the amazing work!