[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 是一种有趣的方式。