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