topcoder 是一家专门组织计算机程序设计 竞赛的公司。 TopCoder 在线举行算法竞赛 ( SRMs )、组件设计竞赛和组件开发竞赛。 算法竞赛在世界上与 ACM 、 Google code jam 并 称为三大赛 。 Topcoder 简单介绍
TopCoder 本质是什么呢? 我认为,它是一个采用新颖模式的软件开发企业,他并 不完全采用固定员工,主要是通过互联网,利用世界各地的 注册用户参与开发。其核心,在于将原本通过企业形式组织 起来的软件开发工作转向了市场形式。改变通过网络和软件 工程规范,形成了以单一模块开发为服务商品的市场,全 球的 Coder 均可以在该市场上提供商品和服务(设计方案、 模块代码、模块评测)。而 TopCoder 成为该商品的采购商。 契约形式的采用取决于不同契约间交易费用的比较。
Algorithms competitions (算法竞赛) 这类的比赛类型比较多,最常见的就是最常见的是周赛 SRM ( Single Round Match )另外还有 TCHS SRM ( TopCoder High school SRM ,题目和 SRM 一样,仅限中学生参加,参赛者水平 较低),马拉松( Marathon Matchs ),还有 TCOpen (每年两 次的大比赛)之类的比赛。 Topcoder 的竞赛类型
参赛者须在大概 75 分钟的时间内完成三道不同难度的 题目,每道题完成的时间决定该题在编程部份所得的分 数。而比赛可分为三部份: ● Coding Phase :参赛者用 C++ 、 Java 、 C# 或者 VB 解决 三 道问问题(分值分别为: 250 、 500 、 1000 )。每道题的 分值计算规则:随着时间的流逝,题目的分值也会越来 越少,不过分数的减少速率也会逐渐变慢。这意味着, 答题速度越快得到的分数也就越多。
● Challenge Phase : 这部份是让参赛者浏览分配在同一房间的其他参赛 者的源代码, 然后设法找出其中错误,并提出一个测 试。如果参赛者 的程序不能通过别人和系统的测试,这参赛者在此题得分为 0 。 ● System Phase 在系统测试阶段,系统会自动对每个提交方案代码进行测试, 确定其正确程度和可行性,并以此给出参赛者相应的分数。整个 评测过程耗时很短,参赛者当场可以知道自己的比赛结果。
前面介绍的只是竞赛针对 Topcoder 公司举办的竞赛部分, 而 Topcoder 的实际意义远不只于此。 1. 对于热衷挑战的人而言, Topcoder 是为 Coder 而生的一 个用于挑战的自我的网站。 Topcoder 除了举办两年一次的 multiple-match 锦标赛以外,它还举办常规比赛,这种比赛 让参赛者尽可能快的解决复杂性不同的算法问题。在常规 赛 和锦标赛中的获胜者都将获得现金奖。参赛者获得既获 得金钱,也获得荣誉。 Topcoder 成功原因
2. 对于寻求兼职的人, TopCoder 是个获取软件开发兼 职的网站。以编程工作为 例,他的流程如下:提供工作列 表 -> 用户接工作 -> 一周后提交 -> 评分。在评分中得第一名者, 获 500 美金(组件类一般为 800 美金);第二名获 250 美金 (组件类一般为 400 美金,其他名次不获得奖金,但是某 些组件会因为难度或者紧急性而把这个金额提高,同样, 也有某些组件会因为难度较低而下调奖金。工作类型包括: 系统 设计、代码编写、模块测试等。通过一段时间的熟悉, 大学在校生、业余开发人员 均可以在网站上接下兼职获取 奖金)。
3. 对于 TopCoder 的客户企业,它是个优秀的软件开发商或 编码工作外包商,由 于其规范化流程及各模块编程的冗余机 制(同一模块有多人同时开发,择优采用), TopCoder 能够 按时按质的为客户提供软件开发服务 。 4. 对于各软件企业, TopCoder 是个优秀的人力资源公司, 它汇集了世界上众多高手,通过这个平台,软件企业可以获 取到优秀 Coder 的信息,并从中招聘员工。 Google 、 Microsoft 等公司都曾经在 TopCoder 上寻求优秀设计人员加盟。
Topcoder 的收益? 在常规的软件行业中,由于交易费用过高,软件企业所 需的商品和服务(设计方案、模块代码、模块评测)市场难 以存在,原因包括:协调工作的困难、质量监控、与模块代 码提供商的联系 等等。由于产品难以通过市场契约形式获得, 因此,软件企业采取的是企业契约形 式,招聘人员进入企业, 以员工的形式为企业提供所需的商品和服务。而 TopCoder 利 用网络及软件工程理论的成熟,将企业内部由员工完成的各 项软 件开发工作外部化,降低采用市场形式的交易费用,使 得市场购买成为优于企业内部化的选择。
首先, TopCoder 利用其在软件工程方面的经验与技术, 将服务与商品的标准化,使得沟通成本大大降低。 TopCoder 的软件开发流程,包括系统设计、代码编写、模块测试等各 环节,在每个环节之间, TopCoder 都设计了标准化的文档, 上下游环 节之间所需的所有沟通内容都通过文档展现。通过 这种形式的标准化,每个环节的 工作人员均可以在完全不和 上下游工作人员沟通的情况下进行工作,最终工作人员交给 TopCoder 的最终产品,也完全以标准文档形式给出。由于标 准化,商品具有了独立性,使得 TopCoder 的注册用户为其提 供商品成为可能。
其次,由于商品标准化,对各商品的质量评估指标也因此可 以标准化(模块运 行速度、稳定性等),因此,有了商品的 质量评价指标,则商品的定价和择优采购成为了可能。 TopCoder 将评估指标最后转化为一个总分,总分第一的定价 1000 美元购买,总分第二的定价 500 美元购买。由于指标清 晰,商品提供者也能够逐渐改进 自身提供的商品质量。相较 于企业形式的生产,由于每项工作只有一个人完成,质 量得不到比较,无法选择最优。而且,软件开发工作作为一 种知识型的工作,难以 为员工的工作表现作精确定价,监督 成本也相当高,而市场形式则避免了上述交易费用。
另外, TopCoder 与注册用户间的心理契约,与企业与员 工的心理契约有很大区别。作为 TopCoder 的注册用户,其期 望获得的并不仅仅是金钱,作为其目标对象的大学在校生、 业余工作者,他们还期望获得荣誉、工作经验、能力提升, 甚至于前面叙及的,进入知名 IT 公司的机会。因此,即使只 有前两名可以获得奖金,仍有许多用户参与承接工作。由于 这些附加价值的提, TopCoder 在商品采购价格方面,实际上 低于其现金价值。 综上所述, TopCoder 利用网络技术的发展,改变了常规 的生产方式。
谢谢!