1. Project Euler – 大量的数学逻辑程序,可以使用任何你喜欢的语言解答。很多问题根本不用编程就可以解决,但是大多数还是需要一台电脑的。一旦你解决了一个问题之后,你就可以看到其他人的一些解决方案。这些解决方案往往有助于解决类似主题的其他一些问题。

  2. The Python Challenge – 专门针对学习Python语言的一系列程序设计挑战。尽管任何语言都可以解决这些谜题,但是如果你用Python,解决这些问题会更简单一些。

  3. Ruby Quiz – 一个可以使用任何语言解决程序挑战问题的集合,但是如果你想查看这些问题的评价,他们会默认的使用Ruby来解决。相对应的还会有一本书,《 最好的Ruby问答题》,讨论所选择问题可能的解决方案。

  4. Top Coder – 定期的不同类别(算法,测试,设计,组装以及其他很多)程序设计比赛,同时会有来自微软和NSA等赞助商为获胜者提供的奖金。解决方案可以使用JAVA,C++,C#,或者VB。来看看比赛内容,感受一下你在比赛中可能遇到什么样类型的难题吧。同样这里还有大量,高水平的参赛者写的不错的指导教程。

  5. UVa Online Judge – 数以百计来自过去编程比赛的问题,例如ACM国际编程大赛的题目。可以使用C,C++,Java或者Pascal提交解决方案。一定要看看这本书,《Programming Challenges | 挑战编程:程序设计竞赛训练手册 》,除此之外还有一本新书《From Baylor to Baylor》,收集了1991年到2006年期间 ,ACM-ICPC比赛决赛中所有的问题。

  6. Sphere Online Judge – 数以百计的各种在线编程竞赛中的问题。最好的地方在于,你可以使用十几种不同的语言提交解决方案(参见网站难题列表的顶端,看看你最喜欢的语言是否包括在内)。

  7. C Puzzles – 在这个页面上的谜题都是关于C语言常见的陷阱和常犯错误等。C语言的专家型人才可能会在很短的时间内漂亮的完成这些问题,但如果你不知道C语言的本质,这些问题可能会有点挑战。

  8. Facebook Puzzles – 一个小型的编程问题网站,Facebook用来评估潜在雇员们的能力。你可以使用 C++、Erlang、Haskell、Java、OCaml、Perl、PHP、Python或者Ruby来提交解决方案。

  9. Google Code Jam – 一个定期的编程比赛,参赛者使用指定的语言解决算法问题。我不确定Google有没有在2009年举办比赛的计划,不过你可以看看2008年比赛中的问题,掂量掂量一下自己。

  10. Microsoft Interview Questions – 首先,我先说明,我完全反对在面试中使用这类谜题。很多问题都需要“灵光一现”来解决,而不需要现实世界中的逻辑思考能力。如果你使用这类问题面试应聘者,需要警告你的是,你可能要先看看这个人以前看没看过类似的问题。说到底,这些问题在面试之外做一做还是很有趣的。

  11. wu:riddles – 数百个具有挑战的逻辑谜题,各种各样的难题。这些问题都标记了可能需要任何特殊的知识,例如:数学,物理,计算机科学或者国际象棋。