<p>译者注:如果你想不断地提高自己的编程技能,那么不断尝试去解决那些编程中的难题,这是一个非常不错的途径。作者在本篇文章中列举出了 10 个编程挑战网站,你想尝试一下吗?以下为译文。 </p> <p style="text-align:center"><img alt="2017年最受欢迎的10个编程挑战网站" src="https://simg.open-open.com/show/c2c7a404ca8625e35e096276c09f1082.jpg" /></p> <p>如果你正在在学习编程,那么我可以告诉你一个提高技能的好方法,那就是是敢于去解决编码过程中遇到的难题。解决不同类型的难题,可以帮助你成为一名优秀的问题解决者;不管编程语言多复杂,你也会得心应手;另外在面试准备以及学习新算法等很多方面,都会让你变得越来越出色。 </p> <p>下面是一些非常受大众欢迎的编程难题网站列表,文章还对每个网站所提供的信息进行了一番简短的描述。 </p> <p><strong>1. <a href="/misc/goto?guid=4959010919180196744">TopCoder</a></strong> </p> <p style="text-align:center"><img alt="2017年最受欢迎的10个编程挑战网站" src="https://simg.open-open.com/show/8b3843b9dded7d8cd60da3933e69af72.png" /></p> <p>TopCoder 是最开始的在线竞技编程平台之一。它提供了很多的<a href="/misc/goto?guid=4959010919285170469">算法挑战</a>,用户可以使用平台上的编辑器直接完成挑战。每个月该平台会提供几次它们最受欢迎的 Single Round Matches,比赛要求用户在特定的时间内与他人竞争,看谁解决问题的速度更快。 </p> <p>TopCoder 上<a href="/misc/goto?guid=4959010919380482525">排名靠前的用户</a>都是很有竞争力的程序员,他们会定期参加各种比赛。这些用户还可以通过名称为 ALGORITHMS WEEKLY BY PETR MITRICHEV 的<a href="/misc/goto?guid=4959010919470797830">博客平台</a>去发表一些关于编程竞赛、算法、数学等方面的文章。 </p> <p><strong>2. <a href="/misc/goto?guid=4959010919562774502">Coderbyte</a></strong> </p> <p style="text-align:center"><img alt="2017年最受欢迎的10个编程挑战网站" src="https://simg.open-open.com/show/e5e1258790201e9254b9365eff694809.png" /></p> <p>Coderbyte 提供了 200 多项编码挑战,挑战者可以使用 10 门编程语言中的任意一种直接在线解决(看看这个<a href="/misc/goto?guid=4959010919660935164">例子</a>)。这些挑战的难易程度各不相同。 </p> <p>另外 Coderbyte 还提供了很多的<a href="/misc/goto?guid=4959010919742942785">算法教程</a>,入门视频和<a href="/misc/goto?guid=4959010919835406586">面试准备的课程</a>。与 HackerRank 和其它网站不同,用户可以查看其他挑战者提供的解决方案,而不是 Coderbyte*官方*发布的。 </p> <p><strong>3. <a href="/misc/goto?guid=4958838519844737107">Project Euler</a></strong> </p> <p style="text-align:center"><img alt="2017年最受欢迎的10个编程挑战网站" src="https://simg.open-open.com/show/f01c92cb89ac0a1ee19f9322ecef5936.png" /></p> <p>Project Euler 提供了很多关于计算机科学和数学领域的挑战。挑战内容大致都是要求挑战者编写一段小程序从而为某个数学公式或方程式提供解决方案。 </p> <p>由于不支持直接在编辑器上编程,因此需要用户在自己的电脑上先写好解决方案,然后在网站上再提供出来。 </p> <p><strong>4. <a href="/misc/goto?guid=4959010919958001260">HackerRank</a></strong> </p> <p style="text-align:center"><img alt="2017年最受欢迎的10个编程挑战网站" src="https://simg.open-open.com/show/4ab0e93cde61dcb66380fb455d90642a.jpg" /></p> <p>HackerRank 提供了很多不同领域的挑战,比如算法、数学、SQL、函数式编程、人工智能等等。挑战者可以直接在线完成所有挑战(看看这个<a href="/misc/goto?guid=4959010920042927304">例子</a>)。HackerRank 针对每一项挑战专门成立了讨论和领导委员会,而大多数挑战来自于一篇社论,它解释了更多的挑战,以及如何接近它提出解决方案。除了这篇社论,你目前还不能看到其他用户在 HackerRank 上的解决方案。 </p> <p>HackerRank 还支持用户<a href="/misc/goto?guid=4959010920130202973">提交应用程序</a>,而且通过解决公司发起的编码挑战,挑战者还有机会获得一份工作。 </p> <p><strong>5. <a href="/misc/goto?guid=4959010920232420855">CodeChef</a></strong> </p> <p style="text-align:center"><img alt="2017年最受欢迎的10个编程挑战网站" src="https://simg.open-open.com/show/1d9b5e0afb4fc17019a3746b68af9fbb.png" /></p> <p>CodeChef 是一家位于印度的编程竞赛<a href="/misc/goto?guid=4959010920326690360">网站</a>,该网站提供了数百种挑战。挑战者可以通过在线<a href="/misc/goto?guid=4959010920420413378">编辑器</a>进行编程,而且还可以根据自身的编程能力去查看已经分类好的适合于自己的挑战题目(请查看<a href="/misc/goto?guid=4959010920512626465">本示例</a>)。CodeChef 有一个庞大的编程社区,为论坛提供帮助,负责编写<a href="/misc/goto?guid=4959010920604532508">教程</a>,而且也会参加 CodeChef 的编码<a href="/misc/goto?guid=4959010920693611716">竞赛</a>。 </p> <p><strong>6. <a href="/misc/goto?guid=4959010920783679582">CodeEval</a></strong> </p> <p style="text-align:center"><img alt="2017年最受欢迎的10个编程挑战网站" src="https://simg.open-open.com/show/cc01139818dafeca7c7a8e17e5be6934.png" /></p> <p>CodeEval 类似于 HackerRank,它还提供了很多公司发起的挑战,如果能很好地完成这些挑战,你还有机会得到一份工作。公司可以创建挑战和举办竞争比赛来招募新的工作人员。挑战者可以在<a href="/misc/goto?guid=4959010920874425122">这里</a>查看当前的挑战列表。 </p> <p><strong>7. <a href="/misc/goto?guid=4959010920973610675">Codewars</a></strong> </p> <p style="text-align:center"><img alt="2017年最受欢迎的10个编程挑战网站" src="https://simg.open-open.com/show/6433f9585049cdcb717af5805b5d9917.png" /></p> <p>Codewars 提供了很多的编码挑战,这些挑战都是由他们自己社区提交和编辑的。挑战者可以用几种语言在编辑器中直接在线完成挑战。用户还可以查看针对每个挑战的讨论以及其他用户的解决方案。 </p> <p><strong>8. <a href="/misc/goto?guid=4958969748565067297">LeetCode</a></strong> </p> <p style="text-align:center"><img alt="2017年最受欢迎的10个编程挑战网站" src="https://simg.open-open.com/show/525eeef71e392f6f7d9e3909353b52f6.jpg" /></p> <p>LeetCode 是一个很受欢迎的<a href="/misc/goto?guid=4959010921100115287">在线判题系统</a>,它提供了 190 道挑战题目,这些题目可以帮助挑战者为面试做好技术准备。挑战者可以用 9 种编程语言<a href="/misc/goto?guid=4959010921184698674">直接在线</a>完成挑战。虽然该网站不支持查看其他用户的解决方案,但用户可以为自己的解决方案提供统计数据,例如与其他用户相比,代码运行速度如何。 </p> <p>他们也有一个专门为面试准备的 <a href="/misc/goto?guid=4959010921274462313">Mock Interview</a> 部分,这是由他们自己主持的编码<a href="/misc/goto?guid=4959010921363891706">竞赛</a>,其中有一些<a href="/misc/goto?guid=4959010921466135929">文章</a>帮助用户更好地了解某些问题。 </p> <p><strong>9. <a href="/misc/goto?guid=4958849144091152587">SPOJ</a></strong> </p> <p style="text-align:center"><img alt="2017年最受欢迎的10个编程挑战网站" src="https://simg.open-open.com/show/9e616aeae69e14cfcdf36a2028959e29.png" /></p> <p>Sphere Online Judge (SPOJ)是一个在线判题系统,提供 20000 多个编程挑战。挑战者可以直接通过<a href="/misc/goto?guid=4959010921592086879">在线编辑器</a>中提交代码。SPOJ 还举办了自己的<a href="/misc/goto?guid=4959010921681336181">竞赛</a>,并有一个区域专门供用户讨论编码挑战。他们目前没有像其他网站那样提供任何官方解决方案或社论。 </p> <p><strong>10. <a href="/misc/goto?guid=4958972474349257193">CodinGame</a></strong> </p> <p style="text-align:center"><img alt="2017年最受欢迎的10个编程挑战网站" src="https://simg.open-open.com/show/cac3eaaddf609a68b42fb9fac97c20c6.png" /></p> <p>CodinGame 与其他网站有点不同,因为它不是简单地在编辑器中去完成编码挑战,而是让挑战者真正游戏的。用户可以在<a href="/misc/goto?guid=4959010921807471256">这里</a>看到当前提供的游戏列表,在<a href="/misc/goto?guid=4959010921903576424">这里</a>看到一个示例。这个游戏有一个问题描述,测试用例,和一个编辑器,你可以在其中一个 20 + 的编程语言编写你的代码。 </p> <p>虽然这个网站不同于上面提到的那些有竞争力的编程网站,但对于那些喜欢挑战并参与竞赛的程序员来说,它还是很受欢迎额。 </p> <p>本文所提及的都是根据以下内容整理出来的:一些是我本人浏览网站时关注到的,一些是通过<a href="https://www.google.com/webhp?sourceid=chrome-instant&rlz=1C5CHFA_enUS689US689&ion=1&espv=2&ie=UTF-8#safe=off&q=coding+challenges">谷歌搜索</a>和<a href="/misc/goto?guid=4959010922095208300">基于 Quora 上的文章</a>,还有一些是诸如<a href="/misc/goto?guid=4959010922190894831">这类文章</a>或者<a href="/misc/goto?guid=4959010922280916604">那类文章</a>里面涉及到的。我还经常访问一些类似于<a href="/misc/goto?guid=4959010922375391012">r/learnprogramming</a> 这样的论坛和看板,看看那里的用户通常推荐哪些网站。免责声明:我在 Coderbyte 工作,这也是上面提到的网站之一。 </p> <p>来自: <a href="/misc/goto?guid=4959010922462663579" id="link_source2">www.iteye.com</a></p>