130 likes | 389 Views
Topcoder 简单介绍. topcoder 是 一家专门组织计算机程序设计竞赛的 公司。 TopCoder 在线举行算法竞赛( SRMs )、组件设计竞赛和组件开发竞赛 。算法 竞赛在世界上 与 ACM 、 Google code jam 并 称为三大赛 。. TopCoder 本质是什么 呢?
E N D
Topcoder简单介绍 topcoder是一家专门组织计算机程序设计竞赛的公司。TopCoder 在线举行算法竞赛(SRMs)、组件设计竞赛和组件开发竞赛。算法竞赛在世界上与ACM、Googlecode jam并称为三大赛。
TopCoder本质是什么呢? 我认为,它是一个采用新颖模式的软件开发企业,他并不完全采用固定员工,主要是通过互联网,利用世界各地的注册用户参与开发。其核心,在于将原本通过企业形式组织起来的软件开发工作转向了市场形式。改变通过网络和软件工程规范,形成了以单一模块开发为服务商品的市场,全 球的Coder均可以在该市场上提供商品和服务(设计方案、模块代码、模块评测)。而TopCoder成为该商品的采购商。契约形式的采用取决于不同契约间交易费用的比较。
Topcoder的竞赛类型 Algorithmscompetitions(算法竞赛) 这类的比赛类型比较多,最常见的就是最常见的是周赛SRM(Single Round Match)另外还有TCHS SRM(TopCoder High school SRM,题目和SRM一样,仅限中学生参加,参赛者水平较低),马拉松(Marathon Matchs),还有TCOpen(每年两次的大比赛)之类的比赛。
参赛者须在大概75分钟的时间内完成三道不同难度的题目,每道题完成的时间决定该题在编程部份所得的分数。而比赛可分为三部份:参赛者须在大概75分钟的时间内完成三道不同难度的题目,每道题完成的时间决定该题在编程部份所得的分数。而比赛可分为三部份: ●Coding Phase:参赛者用C++、Java、C#或者VB解决 三道问问题(分值分别为:250、500、1000)。每道题的分值计算规则:随着时间的流逝,题目的分值也会越来越少,不过分数的减少速率也会逐渐变慢。这意味着,答题速度越快得到的分数也就越多。
●Challenge Phase: 这部份是让参赛者浏览分配在同一房间的其他参赛者的源代码,然后设法找出其中错误,并提出一个测试。如果参赛者的程序不能通过别人和系统的测试,这参赛者在此题得分为0。 ●System Phase 在系统测试阶段,系统会自动对每个提交方案代码进行测试,确定其正确程度和可行性,并以此给出参赛者相应的分数。整个评测过程耗时很短,参赛者当场可以知道自己的比赛结果。
Topcoder 成功原因 前面介绍的只是竞赛针对Topcoder公司举办的竞赛部分,而Topcoder的实际意义远不只于此。 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的最终产品,也完全以标准文档形式给出。由于标准化,商品具有了独立性,使得TopCoder的注册用户为其提供商品成为可能。
其次,由于商品标准化,对各商品的质量评估指标也因此可以标准化(模块运 行速度、稳定性等),因此,有了商品的质量评价指标,则商品的定价和择优采购成为了可能。TopCoder将评估指标最后转化为一个总分,总分第一的定价1000美元购买,总分第二的定价500美元购买。由于指标清晰,商品提供者也能够逐渐改进 自身提供的商品质量。相较于企业形式的生产,由于每项工作只有一个人完成,质 量得不到比较,无法选择最优。而且,软件开发工作作为一种知识型的工作,难以 为员工的工作表现作精确定价,监督成本也相当高,而市场形式则避免了上述交易费用。
另外,TopCoder与注册用户间的心理契约,与企业与员工的心理契约有很大区别。作为TopCoder的注册用户,其期望获得的并不仅仅是金钱,作为其目标对象的大学在校生、业余工作者,他们还期望获得荣誉、工作经验、能力提升,甚至于前面叙及的,进入知名IT公司的机会。因此,即使只有前两名可以获得奖金,仍有许多用户参与承接工作。由于这些附加价值的提,TopCoder在商品采购价格方面,实际上低于其现金价值。 综上所述,TopCoder利用网络技术的发展,改变了常规的生产方式。