在学习编程的过程中,完成编码挑战是一个快速提升编程技能的不错方法。通过解决不同类型的编码挑战与难题,不仅能让你成为处理问题的高手,而且可以帮助你了解编程语言的复杂性,学习新的算法,并能够让你有条不紊的进行面试准备。
在本文中,我将与大家分享一些流行的编码挑战网站,并为大家进行大体的介绍。
10.CodinGame
CodinGame 与其他编程挑战网站有所不同,因为它提供了趣味性的游戏方式,让你通过在线编码解决相应的挑战。你可以在这里查看游戏列表,并在这里查看相应的示例。在游戏中会有相关的问题描述、测试用例以及在线编辑器,你只需要编写相应的代码就可以开始挑战了(20+ 编程语言任选其一)
9.SPOJ
Sphere Online Judge ( SPOJ )是一个提供超过 20K 编程挑战项目的 Online Judge,它也支持在线提交代码。SPOJ 会不定期的举办一系列编程挑战竞赛,同时他们还建立了一个针对编程挑战的用户讨论区。但它与其他网站不同的是,他们没有提供官方的解决方案。
8.LeetCode
LeetCode 是一个流行的 Online Judge ,它提供了 190+ 编程题目,可以帮助你在线刷各大 IT 公司的笔试/面试题。你可以在 9 种编程语言中的任意其一,在线完成相应的挑战题目。虽然,你无法查看其他用户的答案,但网站将为你提供与其他用户答案分析对比后的相应信息,例如你可以间接地了解你的代码运行速度。
他们还提供了针对大厂的 Mock 面试部分,并且也会主办一些编程比赛,你也可以通过浏览他们的博客文章,更好地了解某些问题的解决方案。
7.Codewars
CodeWars 是一个通过实战训练来提升编程开发技能的网站。它提供了基于社区中经典问题的挑战题目,你可以使用多种编程语言像打游戏升级一样,通过在线编辑器直接完成每项挑战,同时还可以查看、讨论其他用户的解决方案。
6.CodeEval
与 HackerRank 最为相似的是 CodeEval,这是一家使用代码测试帮助雇主找到合适人才的网站。招聘方通过发布并举办编程挑战,招聘优秀的程序开发者入职。如果你有能力搞定相应的挑战,那么工作自然不用愁。你可以在这里查看当前的挑战列表。
5.CodeChef
CodeChefsh 是一个源自印度的编程挑战网站,它提供了数百个挑战项目供你选择。你可以通过在线编辑器来编写代码,并根据技术等级查看不同分类下的挑战内容(参阅此示例)。他们还建立了一个编程社区,便于用户间交流,撰写教程,并及时地参加 CodeChef 编码竞赛。
4.HackerRank
HackerRank 在算法、数学、SQL、函数式编程、AI 等众多不同领域为挑战者们提供了相应的编码谜题。你可以直接在线完成几乎所有的挑战(参见本例)。他们为各个挑战项目提供了讨论区与排行榜。大多数挑战的谜题来自于社论,让你更多的了解挑战内容的同时,思考如何解决问题。除了社论,你无法查看其他挑战者在 HackerRank 上的答案。
HackerRank 还支持用户提交个人申请,并通过解决赞助公司的编码挑战来找工作。
3.Project Euler
Project Euler 在计算机科学与数学领域提供了大量的问题与挑战。挑战的内容通常包括编写一个计算数学公式或方程解的小程序,例如,找出数字序列中每个数字之前的所有数字的总和。
由于不能直接在线编程解答,所以你需要预先在自己的电脑上搞定解决方案,然后在其网站上提交即可。
2.Coderbyte
Coderbyte 网站上提供了超过 200 个编码挑战,你可以从 10 种编程语言中选择其中一种,直接在线完成挑战内容(具体请参阅此示例)。挑战的难度则由易(查找字符串中最长单词)至难(图的***基数匹配)。
网站上还提供了一系列的算法教程、介绍性视频以及面试准备的相应课程。与 HackerRank 和其他类似网站不同的是,你不仅可以查看 Coderbyte 发布的官方答案,还可以浏览其他用户的解决方案。
1.TopCoder
TopCoder 是一个知名的在线编程竞技平台。它提供了一系列的算法挑战,你可以直接通过其代码编辑器进行在线作答。***的 SRMs 挑战项目,将会在每月定期举办。而作为参赛者,你需要以最快的速度,与众多的编程挑战者进行 PK.
在 TopCoder 上排名前列的参赛者,也都是定期参赛的优秀程序员。作为网站上排名首位的程序员 - PETR MITRICHEV,他还维护着名为《算法周刊》的个人博客,他在博客中经常撰写关于编码竞赛、算法、数学等相关内容,感兴趣的朋友可以去看看。
***
上述分享的网站列表内容,一些网站是我用过感觉不错的,一些是利用谷歌搜索的,还有一些则是 Quora 上的文章以及其他相关文章推荐的,希望它们能对你有所帮助。