编程几乎已经成为了人类所知每个行业的必要组成部分,它帮助组织和维护大型系统的方式是无可比拟的,所以越来越多的人开始了他们的编程之旅。
要学习编程,你可以通过交互式平台或者书本,随便一种你觉得最适合和容易的学习方式。但是,有时候这样还不够,我们想要练习一些新的东西。
编程最很大程度上是关于创造力,是你产生新鲜有趣想法的能力。但是,有时候因为在处理普通问题上花去了大量时间,我们都忘记了创造力。我不是很肯定这是不是编程挑战产生的原因,但它们一定可以帮你想出自己的想法来编程。
可以说,编程挑战可以极好地:
学习另辟蹊径地完成事情练习一种新的编程语言遇到关键问题进行解决保持我们的大脑敏锐且专注玩得开心!
在我寻找最好的编程挑战的过程中,我把列表缩小到五个好资源。相信它们可以在你的编程之旅中极大地帮助你,或者可以满足学习和探索计算机科学更多领域的目的。
[topcoder]
可以参加每天或者每周的编程挑战,两者都极其困难,而且需要非常好的思维技巧来完成。但这是值得的,因为它最终会为你的简历增色不少。
HackerEarth
它们经常添加挑战,你可以提前几个星期注册,这样可以在你要参加之前提前准备和了解。和TopCoder一样,这是一个高质量的网站,提供需要深思熟虑的挑战,而且也证实以后会对你的事业有所裨益。
Coderbyte
它是由Daniel Borowski在2012年发起的,而且此后发展成一个由喜欢在空闲时间解决编程问题的程序员们自行维护的社区。
如果有什么不明白的,你也可以提问,这个社区也是比较活跃的。所以你应该很有可能得到答案。很多人都热爱Coderbyte,我看到的全部都是正面评价。
Project Euler
它们设立得并不是很难,反而更加需要关键的思考和解决问题,以此来帮助你成长和学习你所使用的语言。这一切都是为了锻炼你进步,确保你充分理解自己在做什么。
你可以从Wikipedia、Reddit、Stack Overflow和 Google Code.上更多地了解Project Euler。
Daily Programmer
更不用说已经有数百个可以解决了。你在评论里创造的每次提交都会被社区成员查看,所以你可以得到关于你解法的意见和答案。
强力推荐。
Codility Train
每一个都详细解释了最终程序应该做什么,而且据我所见-每一个也都有时间限制,所以不能松懈!
SPOJ
CodeChef
它被分成了几个难度等级,而且网站本身是一个大小合理的社区。看起来真的是一个很棒的挑战网站。
CodeEval
它致力于帮助开发者们宣传他们在自己工作领域的经验,而且看起来做得非常好。
HackerRank
Talentbuddy
Talentbuddy是一个友好的地方,你可以通过有趣的面向面试的方法,来练习解决问题的能力。我想你也许会觉得这个网站关于人际交往的部分稍微有一点烦人,但是总的来说它有一些非常好的可以学习的课程,甚至还有MongoDB的东西可以练习-能看到高级的挑战总是好的!
Codewars
我觉得你会喜欢它的,就像社区里很多开发者已经喜欢的那样。
Rosalind
FightCode
Codeforces
CodinGame 对程序员来说是一个巨大的挑战,如果你想提升编程技能,玩CodinGame是一种有趣的方式。