编程竞赛和逻辑谜题网站大集合

jopen 12年前

        我们都知道,每天的编程生活可能有时候会有些乏味。

        看这个:

        Joanna: Peter,你在哪工作呢?

        Peter: Initech.

        Joanna: 在哪……?好吧,你在那里做什么呢?

        Peter: 我在一个小黑屋里,给银行的 2000 台交换机更新软件。

        Joanna: 那是啥?

        Peter: 明显的问题,他们写这些银行软件,额,为了节省空间,他们使用两个数字替代 4 个数字来表示日期。比如,用 98 表示 1998?啊!让我去看这些成千上万行的代码,额。。。这还没什么关系。我,额,我不喜欢我的工作,并且,额,我不会再去那里了。*

编程竞赛和逻辑谜题网站大集合

        好吧,尽管在我的办公室里没有这么沉闷,但是我依然喜欢在工作空余的时间里给大脑一些刺激。像大多数程序猿一样,我喜欢练习那些有趣的代码问题 和逻辑谜题。这比每周的办公室娱乐活动便宜的多了,而且同样有趣。我收集了以下我喜欢的程序和逻辑谜题网站,就是他们帮我的大脑一直处于活跃状态,大家一 起来看看吧:

        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.  非死book Puzzles – 一个小型的编程问题网站,非死book 用来评估潜在雇员们的能力。你可以使用 C++、Erlang、Haskell、Java、OCaml、Perl、PHP、Python 或者 Ruby 来提交解决方案。

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

编程竞赛和逻辑谜题网站大集合

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

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

        我忘记了什么了没?如果你在上边的列表中没看到你最喜欢的编程挑战或逻辑谜题网站,可以给我在留言里告诉我网站地址,我总是喜欢新的挑战!

        来自留言的更新

        非常感谢大家留言让我知道了新的谜题网站。下面这些是我以后会定期浏览的网站:

        Programming Praxis 看起来是一个有希望的新博客,充满了编程练习让你“磨刀不误砍柴工”。看起来新的问题将会在二月份定期发布。我已经收藏了网站的 RSS。

        Code Kata 是 Dave Thomas 在 2007 年发行的《The Pragmatic Programmer  程序员修炼之道》这本书中的一系列简短的问题。代码器是“简单的实际练习,让我们的试验和学习更简单的一个环境。”正是我要找的。

        所有语言的程序员都将会想看看编程比赛的 10 大 Prolog 问题(免费的 PDF 电子书),还有99 大 Prolog 问题。 (如果你不喜欢 Prolog,你也可以用 HaskellPythonScala, 或 Lisp 做这 99 个题目。)

        如果你对组织编程比赛感兴趣,可能需要看看美国计算机奥林匹克或者 ACM 编程竞赛题(在这里能看到的问题你也能在前面提到的 UVA 在线中找到。)

        Al Zimmermann’s Programming Contests (竞赛名单) 目前比较经典的计算机编程问题,而且还有奖品哦。看起来竞赛刚刚启动几个月不到一年,还有足够时间参加本届比赛。

        Anarchy Golf 这里有几百个问题,还有一个服务器,可以使用 69 种不同的语言提交解决方案。这个提醒了我,我忘记了 Code Golf。跟任何其他网站不同,code golf 是一个看谁的解决方案最短并且正确。JAVA 编程人员可以去玩,但是 Python 和 Perl 在 code golf 更多一些。

        最后,提醒一些读者,不仅仅有编程和逻辑类的谜题。国际象棋和围棋同样可以非常有趣。Chess.com 有一个每日一题,适合休闲玩家进行挑战, GoGrinder 是围棋问题中一个优秀的开源程序练习网站。

        再次感谢那些花费时间分享他们的谜题网站的人们。希望不会影响到下周大家的工作状态。:)

        *如果你不知道 Office Space 的那种感觉,跑出去到最近的磁带店**直接拿起一份拷贝看吧。

        (译者注:Office Space 是一部描写在 Initech 公司上班的一位电脑工程师,在办公室的那种崩溃的状态的电影。 )

        ** 哈哈哈, “音像店”! 我怎么了,像 60 岁嘛?看这里吧 Netflix.