온라인 프로그래밍 경시대회 사이트인 TopCoder 에서 주 단위로 개최하는 소규모 대회인 SRM ( Single Round Match; 75 분 동안 세 개의 알고리즘 문제를 푸는 TopCoder 의 온라인 프로그래밍 대회 ) 가 벌써 500 회를 맞이했다. 
 
TopCoder 가 SRM 을 시작한 것이 2001 년이니 햇수로는 벌써 만 10 년. 그동안 온라인 프로그래밍 대회 사이트가 여럿 있었지만 명확한 사업모델과 전세계의 고수들을 끌어모은 커뮤니티를 갖추는데 성공하여 상업적으로 가장 크게 성공한 곳이 바로 TopCoder 라고 생각된다. 

TopCoder 소개 

SRM 500 을 맞이해서 포럼에 Eeyore 라는 캐나디언이 "The Past and Present of Single Round Match" 라는 글이 올라왔는데. 흥미로운 내용이 많아서 간략하게 요약해 본다. 




내가 SnapDragon 을 처음 만난 것은 2002년 가을 University of Warterloo 졸업을 앞둔 시점이었다. 그는 ACM-ICPC 대회 준비를 도와주기 위해 학교를 방문하곤 했는데 함께 모의고사를 치루면 항상 1등을 차지하곤 했다. 그가 과격하게 키보드를 두드리면서 코딩을 하는 모습은 피아니스트가 베토벤의 광시곡을 연주하는 것 같았다. 한문자의 변수들과 괄호로 가득찬 그의 코딩 스타일은 암호문을 보는 것 같았다. 
그는 또한 거의 모든 게임 콘솔을 다 보유하고 있으면서 매일같이 몇시간씩 게임을 즐기는 게임광이기도 했다. 
"게임은 두뇌 발달에 좋아. 하지만 사람을 게으르게 만들기도 하지". 
현재 SnapDragon 은 Google 에서 근무하고 있다.  

SnapDragon 이 말하는 TopCoder 가 다른 프로그래밍 경시대회에 비해 갖는 장점은 문제의 스펙이 명확하다는 것, 그리고 대회마다 상금이 걸려있다는 것이다. 2001 ~ 2002 년 당시는 닷컴 버블의 막바지로 TopCoder 역시 많은 스폰서쉽을 받아 주당 2회씩 상금 매치가 열리곤 했다. TopCoder 의 사업모델이 컴포넌트 설계/개발에 치중하게 되고 SRM 의 상금매치가 없어지기 시작하면서 상금에 대한 매력은 줄어들었지만 SRM 은 여전히 전세계의 Problem Solver 들을 끌어모이고 있다. 

radeye 는 2002 년에서 2005 년 사이에 활발하게 활동했고 요즘도 이따금 SRM 에 참가한다. 그는 dvips 라는 유명한 DVI-to-PostScript 컴파일러의 개발자이자 LaTex Software Stack 의 개발자로도 유명하다. 최근에는 모든 루빅스 큐브는 최대 20회의 이동으로 풀수 있다 는 증명을 하기도 했다. 그는 TopCoder 의 알고리즘 문제 해결능력이 실제 프로젝트에도 도움을 주며, 자신의 프로그래밍 실력향상에 큰 도움이 되었다고 말한다. 

dangelo 는 2002 년부터 2005 년사이에 77 회의 SRM 에 참가했다. 그는 facebook 의 CTO 였으며 최근에 Facebook 을 떠나 소셜 Q&A 서비스인 Quora 를 설립했다. 자신이 Caltech 의 빡센 코스웍을 소화하기에 벅차서 SRM 참가가 뜸해졌다고 말한다. 그가 말하는 TopCoder 의 장점은 프로그래밍 경시대회를 통해 알고리즘을 빠른 시간에 적용하고, 설계하는 기술을 쌓을 수 있다는 것이다. 물론, 이 것 이외에도 현업에서의 프로젝트는 다른 여러가지 기술들도 필요하므로 이에 대해서 공부해야 한다고 조언한다. 

2005 년에는 2 명의 괴물이 등장한다. 이해 3월에 데뷔한 Petr 은 지금까지 Div1 의 Easy / Medium / Hard 각각의 문제 성공률이 96% / 93% / 85% 에 이르며 그의 230 번 매치중 136 번을 우승했다. ACRush 는 Petr 보다 8개월 늦게 데뷔했다. 그는 TopCoder 1등이 되기까지 치룬 79 번의 매치 중에서 30 번을 우승했다. 이 두사람은 모두 ACM-ICPC 월드파이널에서 2등을 한 경험이 있으며, Google Code Jam, Facebook Hacker Cup 등의 외부 대회에서 우승을 차지한 바 있다.  TopCoder Algorithm 랭킹 1위와 2위를 업치락 뒤치락 하는 이들이지만 ACRush 는 Petr 과 같은 라이벌이 있어서 무척 행복하다고 말한다. Petr 은 현재 Google 에서 근무중이다. 

dcp 는 2006년 4월에 데뷔한 이래 지금까지 201 번의 매치를 치뤘고, 데뷔 후 3년이 지난 137번째 매치에서 Div 1 에 올라선다. dcp 는 자신이 도달할 수 없는 구체적인 목표를 세우지 않는 대신 일주일에 5~6 문제를 푸는 정도의 스스로 달성가능한 목표를 세우고 있다고 한다. 매주 3-4 시간정도 연습한다는 그는 rating 에 크게 연연해 하지 않고 SRM 자체를 "정신적인 운동" 으로 즐긴다고 말한다. 

과연 SRM 이 이렇게 즐길만한 가치가 있을까? Minilek 은 MIT 3학년때 TopCoder 를 시작해서 이제 MIT 박사과정 졸업을 앞둔 학생이다. 그는 TopCoder SRM 의 옹호주의자이며 SRM 을 즐기는 사람 중 한명이다. 그에게 프로그래밍은 가장 즐거운 취미생활이며, 또한 TopCoder 는 취업 인터뷰에도 큰 도움을 주었다고 한다. Minilek 은 스스로에게 강요하지 않고 SRM 을 즐기는 것이 중요하다는 충고를 한다. 지금까지 193 회의 SRM 을 치룬 그는 첫 151 번의 매치에서 green 에서 red 로 점증적으로 rating 을 향상시켰다. Minelik 은 말하길 "자신이 즐길 수 있다면 많이 하게 되고, 자연스럽게 실력이 향상될 겁니다. 이건 재미있게 즐기는 거지 일 하는 것과는 다릅니다"

Olexiy 는 2005 년 8월 부터 2009년 2월까지 많은 문제를 출제하면서 SRM 의 코디네이터로 공헌했다. 그는 이후 ivan_metelsky 에서 자신의 자리를 넘겨주었다. Olexiy 는 과거와 현재의 SRM 에 대한 비교에 비해 SRM 의 문제들이 요새는 매우 어려워졌다는 점을 달라진 점으로 꼽는다. 요새TCO 2003 이나 2004 의 결승 문제가 SRM 에서 출제된다면 200 명 이상이 풀수 있을 것이라 한다. 그는 문제 출제자로서 누군가가 자신이 만든 문제가 정말 좋다고 칭찬할 때가 가장 즐겁다고 한다. 자신이 만든 문제중 가장 기억에 남는 문제로 TakeBus 를 꼽는다. Olexiy 는 현재 TopCoder 의 스탭으로 일하고 있다.

Rustyoldman 은 TopCoder에서 가장 나이가 많은 코더 중 한 명일 것이다. (자기 나이가 154 세라고 구라를 치고 있지만. 그의 진짜 나이는 아무도 모른다... 40 은 훌쩍 넘겼을 거고 50 이 넘었을 수도 있음.. ) 자신의 업무와 잠을 빼고는 SRM 이 자신의 생활에서 가장 중요한 일 중 하나라고 말한다. 하지만 흥미롭게도 그는 거의 연습은 하지 않는다 한다.

John.de.Ruiter 는 SRM 이 일종의 중독성이 있다고 말한다. 또한 그는 "나의 rating 은 나의 아이덴티티의 일부가 되었다" 는 표현을 쓴다. 많은 TopCoder 멤버들이 이렇게 느낄 것이다. 

사실, TopCoder 의 Algorithm Rating 이 나의 프로그래밍 실력을 정의한다고 생각하지는 않는다. 하지만 대회 환경이라는 압박감이 있는 제한된 환경에서 문제를 푸는 능력은 개발자로서 나의 아이덴티티의 중요한 부분이라고 생각한다.   

  1. BlogIcon helloneo 2011.03.22 20:03

    헉.. 저걸 다 번역하시다니.. ㅋㅋ
    SRM 500 room win 축하요~

    • BlogIcon soyoja 2011.03.24 00:34 신고

      ㄳ ...
      원문이랑 비교해 보면 알겠지만 걍 요약 번역이야 ㅋㅋ

  2. BlogIcon LiFiDeA 2011.03.25 12:21

    제가 최근에 블로그에 쓴 (링크) Deliberate Practice라는 개념을 프로그래밍에 적용하면 위와 같을 것 같네요.

    글 잘 읽었습니다 ^^

    • BlogIcon soyoja 2011.03.27 15:13 신고

      안녕하세요.
      LiFiDeA 님의 블로그에서도 좋은 글 자주 보고 있습니다. 감사합니다. ^^

+ Recent posts