如果你正在在学习编程,那么我可以告诉你一个提高技能的好方法,那就是敢于去解决编码过程中遇到的难题。解决不同类型的难题,可以帮助你成为一名优秀的问题解决者;不管编程语言多复杂,你也会得心应手;另外在面试准备以及学习新算法等很多方面,都会让你变得越来越出色。
下面是一些非常受大众欢迎的编程难题网站列表,文章还对每个网站所提供的信息进行了一番简短的描述。
TopCoder是最开始的在线竞技编程平台之一。它提供了很多的算法挑战,用户可以使用平台上的编辑器直接完成挑战。每个月该平台会提供几次它们最受欢迎的Single Round Matches,比赛要求用户在特定的时间内与他人竞争,看谁解决问题的速度更快。
Coderbyte提供了200多项编码挑战,挑战者可以使用10门编程语言中的任意一种直接在线解决(看看这个例子)。这些挑战的难易程度各不相同。
另外Coderbyte还提供了很多的算法教程,入门视频和面试准备的课程。与HackerRank和其它网站不同,用户可以查看其他挑战者提供的解决方案,而不是Coderbyte*官方*发布的。
Project Euler提供了很多关于计算机科学和数学领域的挑战。挑战内容大致都是要求挑战者编写一段小程序从而为某个数学公式或方程式提供解决方案。
由于不支持直接在编辑器上编程,因此需要用户在自己的电脑上先写好解决方案,然后在网站上再提供出来。
HackerRank提供了很多不同领域的挑战,比如算法、数学、SQL、函数式编程、人工智能等等。挑战者可以直接在线完成所有挑战(看看这个例子)。HackerRank针对每一项挑战专门成立了讨论和领导委员会,而大多数挑战来自于一篇社论,它解释了更多的挑战,以及如何接近它提出解决方案。除了这篇社论,你目前还不能看到其他用户在HackerRank上的解决方案。
CodeChef是一家位于印度的编程竞赛网站,该网站提供了数百种挑战。挑战者可以通过在线编辑器进行编程,而且还可以根据自身的编程能力去查看已经分类好的适合于自己的挑战题目。CodeChef有一个庞大的编程社区,为论坛提供帮助,负责编写教程,而且也会参加CodeChef的编码竞赛。
CodeEval类似于HackerRank,它还提供了很多公司发起的挑战,如果能很好地完成这些挑战,你还有机会得到一份工作。公司可以创建挑战和举办竞争比赛来招募新的工作人员。挑战者可以在这里查看当前的挑战列表。
Codewars提供了很多的编码挑战,这些挑战都是由他们自己社区提交和编辑的。挑战者可以用几种语言在编辑器中直接在线完成挑战。用户还可以查看针对每个挑战的讨论以及其他用户的解决方案。
LeetCode是一个很受欢迎的在线判题系统,它提供了 450+ 道挑战题目,这些题目可以帮助挑战者为面试做好技术准备。挑战者可以用9种编程语言直接在线完成挑战。虽然该网站不支持查看其他用户的解决方案,但用户可以为自己的解决方案提供统计数据,例如与其他用户相比,代码运行速度如何。
Sphere Online Judge(SPOJ)是一个在线判题系统,提供20000多个编程挑战。挑战者可以直接通过在线编辑器中提交代码。SPOJ还举办了自己的竞赛,并有一个区域专门供用户讨论编码挑战。他们目前没有像其他网站那样提供任何官方解决方案或社论。
CodinGame与其他网站有点不同,因为它不是简单地在编辑器中去完成编码挑战,而是让挑战者真正游戏的。用户可以在这里看到当前提供的游戏列表,在这里看到一个示例。这个游戏有一个问题描述,测试用例,和一个编辑器,你可以在其中一个 20+ 的编程语言编写你的代码。
虽然这个网站不同于上面提到的那些有竞争力的编程网站,但对于那些喜欢挑战并参与竞赛的程序员来说,它还是很受欢迎额。
CodeForces 是一家俄罗斯的编程竞赛网站,由一群来自萨拉托夫州立大学的程序员在维护。该站点目前由俄罗斯知名公司 Telegram 赞助!
从 CF 上最近 6 个月的排名来看,里面有蛮多中国程序员,Top 50 中有 11 个是中国的。
推荐阅读
小编喵喵个人微信号:itmiao520 懒人回复"喵喵"扫码添加。
点击左下角阅读原文查看更多长知识文章!