原文:
https://news.cnblogs.com/n/578490/
英文原文:The 10 most popular coding challenge websites for 2017
翻译:Vincent
译者注:如果你想不断地提高自己的编程技能,那么不断尝试去解决那些编程中的难题,这是一个非常不错的途径。作者在本篇文章中列举出了 10 个编程挑战网站,你想尝试一下吗?以下为译文。
如果你正在在学习编程,那么我可以告诉你一个提高技能的好方法,那就是是敢于去解决编码过程中遇到的难题。解决不同类型的难题,可以帮助你成为一名优秀的问题解决者;不管编程语言多复杂,你也会得心应手;另外在面试准备以及学习新算法等很多方面,都会让你变得越来越出色。
下面是一些非常受大众欢迎的编程难题网站列表,文章还对每个网站所提供的信息进行了一番简短的描述。
1. TopCoder
TopCoder 是最开始的在线竞技编程平台之一。它提供了很多的算法挑战,用户可以使用平台上的编辑器直接完成挑战。每个月该平台会提供几次它们最受欢迎的 Single Round Matches,比赛要求用户在特定的时间内与他人竞争,看谁解决问题的速度更快。
TopCoder 上排名靠前的用户都是很有竞争力的程序员,他们会定期参加各种比赛。这些用户还可以通过名称为 ALGORITHMS WEEKLY BY PETR MITRICHEV 的博客平台去发表一些关于编程竞赛、算法、数学等方面的文章。
2. Coderbyte
Coderbyte 提供了 200 多项编码挑战,挑战者可以使用 10 门编程语言中的任意一种直接在线解决(看看这个例子)。这些挑战的难易程度各不相同。
另外 Coderbyte 还提供了很多的算法教程,入门视频和面试准备的课程。与 HackerRank 和其它网站不同,用户可以查看其他挑战者提供的解决方案,而不是 Coderbyte官方发布的。
Project Euler 提供了很多关于计算机科学和数学领域的挑战。挑战内容大致都是要求挑战者编写一段小程序从而为某个数学公式或方程式提供解决方案。
由于不支持直接在编辑器上编程,因此需要用户在自己的电脑上先写好解决方案,然后在网站上再提供出来。
4. HackerRank
HackerRank 提供了很多不同领域的挑战,比如算法、数学、SQL、函数式编程、人工智能等等。挑战者可以直接在线完成所有挑战(看看这个例子)。HackerRank 针对每一项挑战专门成立了讨论和领导委员会,而大多数挑战来自于一篇社论,它解释了更多的挑战,以及如何接近它提出解决方案。除了这篇社论,你目前还不能看到其他用户在 HackerRank 上的解决方案。
HackerRank 还支持用户提交应用程序,而且通过解决公司发起的编码挑战,挑战者还有机会获得一份工作。
5. CodeChef
CodeChef 是一家位于印度的编程竞赛网站,该网站提供了数百种挑战。挑战者可以通过在线编辑器进行编程,而且还可以根据自身的编程能力去查看已经分类好的适合于自己的挑战题目(请查看本示例)。CodeChef 有一个庞大的编程社区,为论坛提供帮助,负责编写教程,而且也会参加 CodeChef 的编码竞赛。
6. CodeEval
CodeEval 类似于 HackerRank,它还提供了很多公司发起的挑战,如果能很好地完成这些挑战,你还有机会得到一份工作。公司可以创建挑战和举办竞争比赛来招募新的工作人员。挑战者可以在这里查看当前的挑战列表。
7. Codewars
Codewars 提供了很多的编码挑战,这些挑战都是由他们自己社区提交和编辑的。挑战者可以用几种语言在编辑器中直接在线完成挑战。用户还可以查看针对每个挑战的讨论以及其他用户的解决方案。
8. LeetCode
LeetCode 是一个很受欢迎的在线判题系统,它提供了 190 道挑战题目,这些题目可以帮助挑战者为面试做好技术准备。挑战者可以用 9 种编程语言直接在线完成挑战。虽然该网站不支持查看其他用户的解决方案,但用户可以为自己的解决方案提供统计数据,例如与其他用户相比,代码运行速度如何。
他们也有一个专门为面试准备的 Mock Interview 部分,这是由他们自己主持的编码竞赛,其中有一些文章帮助用户更好地了解某些问题。
9. SPOJ
Sphere Online Judge (SPOJ)是一个在线判题系统,提供 20000 多个编程挑战。挑战者可以直接通过在线编辑器中提交代码。SPOJ 还举办了自己的竞赛,并有一个区域专门供用户讨论编码挑战。他们目前没有像其他网站那样提供任何官方解决方案或社论。
10. CodinGame
CodinGame 与其他网站有点不同,因为它不是简单地在编辑器中去完成编码挑战,而是让挑战者真正游戏的。用户可以在这里看到当前提供的游戏列表,在这里看到一个示例。这个游戏有一个问题描述,测试用例,和一个编辑器,你可以在其中一个 20 + 的编程语言编写你的代码。
虽然这个网站不同于上面提到的那些有竞争力的编程网站,但对于那些喜欢挑战并参与竞赛的程序员来说,它还是很受欢迎额。
本文所提及的都是根据以下内容整理出来的:一些是我本人浏览网站时关注到的,一些是通过谷歌搜索和基于 Quora 上的文章,还有一些是诸如这类文章或者那类文章里面涉及到的。我还经常访问一些类似于r/learnprogramming 这样的论坛和看板,看看那里的用户通常推荐哪些网站。免责声明:我在 Coderbyte 工作,这也是上面提到的网站之一。