18 个提升编程技能的好网站

Author: 陌小雨Date: 2017-11-03View: 57

编程几乎已经成为了人类所知每个行业的必要组成部分,它帮助组织和维护大型系统的方式是无可比拟的,所以越来越多的人开始了他们的编程之旅。

要学习编程,你可以通过交互式平台或者书本,随便一种你觉得最适合和容易的学习方式。但是,有时候这样还不够,我们想要练习一些新的东西。

编程最很大程度上是关于创造力,是你产生新鲜有趣想法的能力。但是,有时候因为在处理普通问题上花去了大量时间,我们都忘记了创造力。我不是很肯定这是不是编程挑战产生的原因,但它们一定可以帮你想出自己的想法来编程。

可以说,编程挑战可以极好地:

学习另辟蹊径地完成事情练习一种新的编程语言遇到关键问题进行解决保持我们的大脑敏锐且专注玩得开心!

在我寻找最好的编程挑战的过程中,我把列表缩小到五个好资源。相信它们可以在你的编程之旅中极大地帮助你,或者可以满足学习和探索计算机科学更多领域的目的。

[topcoder]

你能赚到真金白银,而且它被近一百万程序员所支持,所以我很肯定一定能遇到许多有挑战性的东西。我这么说,是因为我相信有些刚起步的编程爱好者可能会觉得topcoder比较难。

可以参加每天或者每周的编程挑战,两者都极其困难,而且需要非常好的思维技巧来完成。但这是值得的,因为它最终会为你的简历增色不少。

HackerEarth

HackerEarth提供一种软件即服务应用(SaaS),来对应试者的技术和逻辑能力进行自动评估。作为一个整合和挑选开发者的平台,它也帮助企业招才纳贤。

它们经常添加挑战,你可以提前几个星期注册,这样可以在你要参加之前提前准备和了解。和TopCoder一样,这是一个高质量的网站,提供需要深思熟虑的挑战,而且也证实以后会对你的事业有所裨益。

Coderbyte

Coderbyte是Kickstarter资助的项目(虽然,它本身在这项运动之前就已经存在了),而且它针对完全的初学者和类似中级程序员。

它是由Daniel Borowski在2012年发起的,而且此后发展成一个由喜欢在空闲时间解决编程问题的程序员们自行维护的社区。

如果有什么不明白的,你也可以提问,这个社区也是比较活跃的。所以你应该很有可能得到答案。很多人都热爱Coderbyte,我看到的全部都是正面评价。

Project Euler

Project Euler大概是世界上最受欢迎的编程挑战网站,而且自从十多年前推出之后,就成为了成千上万用户的家园。你可以每周添加一个额外的挑战,不过我敢肯定,要想搞定已经在等待解决的450多个问题已经要花点时间了。

它们设立得并不是很难,反而更加需要关键的思考和解决问题,以此来帮助你成长和学习你所使用的语言。这一切都是为了锻炼你进步,确保你充分理解自己在做什么。

你可以从Wikipedia、Reddit、Stack Overflow和 Google Code.上更多地了解Project Euler。

Daily Programmer

我们要用我个人的最爱来做个总结:Reddit的Daily Programmer。如果你想更多地学习语言和解决问题,这是一个极精彩的值得加入的讨论区。我想以它目前的状态,你可以每周解决三个独特的问题。

更不用说已经有数百个可以解决了。你在评论里创造的每次提交都会被社区成员查看,所以你可以得到关于你解法的意见和答案。

强力推荐。

Codility Train

你可以得到多个提前订制和提前思考过的挑战,而且可以用多种编程语言提交。它们都按照合适的难度排序了,大概有40-50个可以查看。

每一个都详细解释了最终程序应该做什么,而且据我所见-每一个也都有时间限制,所以不能松懈!

SPOJ

Sphere Online Judge是一个有成千上万个可以让你成天解决的编程挑战所组成的社区。它支持输入所有你可以想到的编程语言,而且在它背后还有一个优秀社区始终如一地有效帮助着社区的论坛。

CodeChef

CodeChef是由Directi创造的,作为一种挑战和参与开发者社区的方法,同时也提供一个练习、竞争和提高的平台。它由一大堆待解决的问题所驱动,而且你可以得到别人解决已知编程挑战的源代码。

它被分成了几个难度等级,而且网站本身是一个大小合理的社区。看起来真的是一个很棒的挑战网站。

CodeEval

作为一个希望向雇主和其他开发者展示自己编程技巧的开发者,你可以加入CodeEval。你要参与和加入几个不同地区的竞赛,但大部分是建立一个产品或者应用,并得到现金奖励作为回报。同时,你可以参与编程挑战,可以在解决之后加到你未来的简历上,给你的潜在雇主留下良好的第一印象。

它致力于帮助开发者们宣传他们在自己工作领域的经验,而且看起来做得非常好。

HackerRank

我立刻就喜欢上HackerRank的是它关于人工智能的那部分挑战,它们非常酷,而且让高级程序员也有东西可以玩。它的背后是Y Combinator、SVAngel和许多其他公司。绝对有很多黑客在攻克这些。

Talentbuddy

Talentbuddy是一个友好的地方,你可以通过有趣的面向面试的方法,来练习解决问题的能力。我想你也许会觉得这个网站关于人际交往的部分稍微有一点烦人,但是总的来说它有一些非常好的可以学习的课程,甚至还有MongoDB的东西可以练习-能看到高级的挑战总是好的!

Codewars

Codewars有一个很好的编程挑战的方法,而且很认真地对待他们的作品。我试着找到正确的词语来形容它,不过这里有Codewars提供的一段十分钟的介绍视频。

我觉得你会喜欢它的,就像社区里很多开发者已经喜欢的那样。

Rosalind

这是个稍微比较特别的方法,但仍然不失是一个很棒的解决和学习编程问题的方法。Rosalind提供一些关于生物信息学的挑战,你可以按照自己的节奏来解决。

FightCode

你可以编写你自己的机器人,然后用它们来和社区里的其他成员比拼。它是一种“即编即用”型的平台,但如果是初学这种方法或者只是想找点乐趣,它还是非常有用的。试试看这些文档,好更了解它一些。

Codeforces

Exercism

Kaggle

CodinGame

CodinGame 对程序员来说是一个巨大的挑战,如果你想提升编程技能,玩CodinGame是一种有趣的方式。