2017年最受欢迎的10个编程挑战网站

程序猿(ID:imkuqin) 猿妹编译

编译自:https://medium.freecodecamp.org/the-10-most-popular-coding-challenge-websites-of-2016-fb8a5672d22f

编程几乎已经成为了人类所知每个行业的必要组成部分,如今有越来越多的人开始了他们的编程之旅。



如果你正在在学习编程,那么我可以告诉你一个提高技能的好方法,那就是敢于去解决编码过程中遇到的难题。解决不同类型的难题,可以帮助你成为一名优秀的问题解决者。


在我寻找最好的编程挑战的过程中,我整理了一些非常受大众欢迎的编程难题网站列表,并且做了简单介绍,希望它们可以在你的编程之旅中帮助到你:


1、TopCoder



TopCoder这个网站可以说是一个程序设计比赛的网站,有近一百万程序员所支持,该网站每个星期都有两次网上在线比赛,根据比赛的结果对参赛者进行新的排名。参赛者可以使用他们的代码编辑器直接在线自行完成挑战。根据参赛者完成时间长短排名。


TopCoder上排名靠前的用户都是非常有潜力的程序员,他们会定期参加各种比赛。这些用户还可以通过名称为“ALGORITHMS WEEKLY BY PETR MITRICHEV”的博客平台去发表一些关于编程竞赛、算法、数学等方面的文章。


2、Coderbyte



Coderbyte 是 Kickstarter 资助的项目(在 Kickstarter 支持之前这个网站就已经存在了),而且它针对完全的初学者和类似中级程序员。


Coderbyte 提供了 200 多种编码挑战,挑战者可以从 10 种编程语言任选一个,直接在线解决问题。挑战的范围从简单(查找字符串中的最大单词)到硬(打印图的最大基数匹配)。


他们还提供一系列算法教程,包括教程视频和面试准备课程。与HackerRank和其他类似网站不同的是,除了 Coderbyte 发布的官方解决方案外,用户还可以查看其他用户提供的解决方案。


3、Project Euler



Project Euler 提供了很多关于计算机科学和数学领域的挑战。Project Euler 大概是世界上最受欢迎的编程挑战网站,它们设立得并不是很难,反而更加需要关键的思考和解决问题,以此来帮助你成长和学习你所使用的语言。这一切都是为了锻炼你进步,确保你充分理解自己在做什么。


你不能直接在网站上的编辑器编码,所以你需要在自己的电脑上编写一个解决方案,然后在他们的网站上提交解决方案。


4、HackerRank



HackerRank提供了很多不同领域的挑战,比如算法、数学、SQL、函数式编程、人工智能等等。它关于人工智能的那部分挑战,它们非常酷,而且让高级程序员也有东西可以玩。它的背后是 Y Combinator、SVAngel 和许多其他公司。绝对有很多黑客在攻克这些。


HackerRank 还针对每一项挑战专门成立了讨论和领导委员会,而大多数挑战来自于一篇社论,它解释了更多的挑战,以及如何接近它提出解决方案。除了这篇社论,你目前还不能看到其他用户在 HackerRank 上的解决方案。


HackerRank 还支持用户提交应用程序,可以适用于工作、解决公司赞助编码的挑战。


5、CodeChef



CodeChef 是一家位于印度的编程竞赛网站,由 Directi 创造的,该网站提供了数百种挑战。挑战者可以通过在线编辑器进行编程,而且还可以根据自身的编程能力去查看适合于自己水平的挑战题目,CodeChef 有一个大小合理的编程社区,用户可以参与论坛讨论,编写教程,而且还能参加 CodeChef 的编码竞赛。


6、CodeEval



CodeEval 与 HackerRank 类似,它也提供了一系列公司赞助的编码挑战,如果能够很好的完成挑战,还可能帮助你找到工作或者是现金鼓励等。公司会举办竞争挑战赛,以此来招募新开发人员进行工作。参赛者在这里看到当前的挑战列表。


7、Codewars



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 工作,这也是上面提到的网站之一。

推荐↓↓↓
算法与数据结构
上一篇:基于概率论的分类方法:朴素贝叶斯 下一篇:程序员揭秘:火爆朋友圈的左右脑年龄测试结果只是一个随机函数!