网站介绍
Topcoder网站是一个程序设计比赛的网站,但是在题型、比赛形式方面跟ACM/ICPC极不相同。该网站把中国纳入其赛区,大家可以上去那里跟来自全世界的程序员(事实上大多数也是大学生)进行更直接的交流,也是ACM/ICPC练兵的好地方。
TopCoder是最流行的在线编程竞赛平台之一。任何人都可以加入Topcoder社区参与挑战。TopCoder社区主要分为四个部分:设计,开发,数据科学和竞争性编程。设计社区处理信息体系结构和UI/UX/CX设计,而“开发”部分则研究Bug Bash,代码,先完成(F2F),质量保证和UI原型挑战。数据科学面临的各种挑战也称为马拉松比赛(MM),先完成数据科学,数据科学冲刺与构思和数据可视化。Topcoder社区的竞争编程领域围绕在特定时间每周提供的单轮比赛(SRM)展开,所有参与者相互竞争以尽快解决问题。
该网站每个星期都有两次网上在线比赛,根据比赛的结果对参赛者进行新的排名。参赛者可根据自己的爱好选用Java, C++或C#进行编程。参赛者须在大概1小时15分钟的时间内完成三道不同难度的题目,每道题完成的时间决定该题在编程部份所得的分数。而比赛可分为三部份:Coding Phase, Challenge Phase和System Test Phase,所以比ACM/ICPC多了Challenge Phase,这部份是让参赛者浏览分配在同一房间的其他参赛者的源代码,然后设法找出其中错误,并提出一个测试参数是其不能通过测试。如果某参赛者的程序不能通过别人的或系统的测试,则该参赛者在此题目的得分将为0。
利益贡献
1、对于热衷挑战的人,TopCoder是为Coder(编程者)而生的一个用于挑战自我的网站。
TopCoder除了举办两个一年一次的multiple-match锦标赛以外,它还举办常规比赛,这种比赛让参赛者尽可能快的解决复杂性不同的算法问题。在常规赛和锦标赛中的获胜者都将获得现金奖。参赛者获得既获得金钱,也获得荣誉。
2、对于寻求兼职的人,TopCoder是个获取软件开发兼职的网站。
以编程工作为例,他的流程如下:提供工作列表、用户接工作、一周后提交、评分。在评分中得第一名者,获500美金(组件类一般为800美金);第二名获250美金(组件类一般为400美金,其他名次不获得奖金,但是某些组件会因为难度或者紧急性而把这个金额提高,同样,也有某些组件会因为难度较低而下调奖金。工作类型包括:系统设计、代码编写、模块测试等。通过一段时间的熟悉,大学在校生、业余开发人员均可以在网站上接下兼职获取奖金。
3、对于TopCoder的客户企业,它是个优秀的软件开发商或编码工作外包商,由于其规范化流程及各模块编程的冗余机制(同一模块有多人同时开发,择优采用),TopCoder能够按时按质的为客户提供软件开发服务。
4、对于各软件企业,TopCoder是个优秀的人力资源公司,它汇集了世界上众多高手,通过这个平台,软件企业可以获取到优秀Coder的信息,并从中招聘员工。Google、Microsoft等公司都曾经在TopCoder上寻求优秀设计人员加盟。同样的,另一方面,对于应聘者来说,它提供了一个展示自我的机会。
收益
首先,TopCoder利用其在软件工程方面的经验与技术,将服务与商品的标准化,使得沟通成本大大降低。TopCoder的软件开发流程,包括系统设计、代码编写、模块测试等各环节,在每个环节之间,TopCoder都设计了标准化的文档,上下游环节之间所需的所有沟通内容都通过文档展现。通过这种形式的标准化,每个环节的工作人员均可以在完全不和上下游工作人员沟通的情况下进行工作,最终工作人员交给TopCoder的最终产品,也完全以标准文档形式给出。由于标准化,商品具有了独立性,使得TopCoder的注册用户为其提供商品成为可能。
其次,由于商品标准化,对各商品的质量评估指标也因此可以标准化(模块运行速度、稳定性等),因此,有了商品的质量评价指标,则商品的定价和择优采购成为了可能。TopCoder将评估指标最后转化为一个总分,总分第一的定价1000美元购买,总分第二的定价500美元购买。由于指标清晰,商品提供者也能够逐渐改进自身提供的商品质量。相较于企业形式的生产,由于每项工作只有一个人完成,质量得不到比较,无法选择最优。而且,软件开发工作作为一种知识型的工作,难以为员工的工作表现作精确定价,监督成本也相当高,而市场形式则避免了上述交易费用。
第三,网络使得标准化商品的全球采购成为可能。TopCoder采购的商品无需运费,而且世界各地存在明显价格差。中国与印度的人力成本远远低于欧美,因此商品提供者所希望的商品价格也很低。以往,为了获取发展中地区的人力成本优势,企业必须远赴当地开设分公司,因此带来了相当大量的额外成本。而TopCoder通过网络的形式采购,无需付出额外的成本。事实上,目前在TopCoder上进行开发的注册用户中,中国和印度用户占了很大部分。
另外,TopCoder与注册用户间的心理契约,与企业与员工的心理契约有很大区别。作为TopCoder的注册用户,其期望获得的并不仅仅是金钱,作为其目标对象的大学在校生、业余工作者,他们还期望获得荣誉、工作经验、能力提升,甚至于前面叙及的,进入知名IT公司的机会。因此,即使只有前两名可以获得奖金,仍有许多用户参与承接工作。由于这些附加价值的提,TopCoder在商品采购价格方面,实际上低于其现金价值。
综上所述,TopCoder利用网络技术的发展,改变了常规的生产方式。而事实上,这一模式有可能在其他行业中得到推广。对于知识型工作,通过流程设计和严格接口定义,完全有可能运用这种模式(例如日用品的设计工作)。C2C改变了人们参与贸易的方式,使得个人的市场信息(商品价格差)能迅速转换为利润,而TopCoder的这种模式可能会改变人们参与生产的方式,使得个人能够方便地提供知识工作商品。
比赛周期
TC的每个Contest都已经形成了标准化流程,以design为例,如下:
1、Registration:组件在网站上开放注册,一般持续3天至一周,这时可以再Active Contest一栏中看到组件的描述以及需求文档(Requirement Specification)。注册后将可以访问组件专有论坛,上面有进一步的开发资料,以及PM答疑解惑。
2、Submission:这个阶段起始时间和Registration重叠,比Registration多2-3天。在这个阶段注册的Member可以提交自己的submission,对于design来说就是包含UML图和组件说明文档(Component Specification)的压缩包。
3、Screening:从这个阶段开始组件在Active Contest中就看不到了,必须进入Contest Status中才能看到。这个阶段primary reviewer会对每份submission进行一个粗略的review,过滤掉特别弱智的,其他submission放入review。(我觉得这个阶段的存在完全是因为reviewer是按照submission份数拿钱的…)
4、Review:这个阶段3个reviewer对每份submission进行评分,评分的方式是基于一个scorecard,每一项有一定的权重,从最好到最差分为4个等级,最后按100分制算一个总分,3个reviewer给的平均分就是你的初始分,至于为啥不是最终得分,请继续看。
5、Appeal:这个阶段competitor可以看到每个reviewer给自己的分数,对于认为扣分不妥的可以进行appeal。
6、Appeal Response:reviewer再次复查被appeal的部分,酌情给分,这是的分数就是最终分数,至此分数最高的就被定为winner了。
7、Aggregation:primary reviewer对每个reviewer给的评价进行评估,决定是否需要修正。
8、Aggregation Review:每个reviewer对winner的submission进行复查,查漏补缺。
9、Final Fix:winner将reviewer指出的纰漏逐一修复,重新提交。
10、Final Review:primary reviewer对final fix进行review,如果不通过,则退回到Final Fix阶段,如此反复直至通过为止。
人才获取服务
Topcoder创立于2001年,网站通过三种途径帮助企业获取人才。
1、自由职业者:与经过认证的技术人员签约,以增加团队的技能,拉大与其他团队的差距。
2、项目:以3倍的速度完成部分或全部的企业技术项目。
3、企业项目:通过大规模使用需要的人才来改变你的劳动力战略。



















