好吧,盡管在我的辦公室里沒有這么沉悶,但是我依然喜歡在工作空余的時間里給大腦一些刺激。像大多數(shù)程序猿一樣,我喜歡練習(xí)那些有趣的代碼問題和邏輯謎題。這比每周的辦公室娛樂活動便宜的多了,而且同樣有趣。我收集了以下我喜歡的程序和邏輯謎題網(wǎng)站,就是他們幫我的大腦一直處于活躍狀態(tài),大家一起來看看吧: 1. Project Euler – 大量的數(shù)學(xué)邏輯程序,可以使用任何你喜歡的語言解答。很多問題根本不用編程就可以解決,但是大多數(shù)還是需要一臺電腦的。一旦你解決了一個問題之后,你就可以看到其他人的一些解決方案。這些解決方案往往有助于解決類似主題的其他一些問題。 2. The Python Challenge – 專門針對學(xué)習(xí)Python語言的一系列程序設(shè)計挑戰(zhàn)。盡管任何語言都可以解決這些謎題,但是如果你用Python,解決這些問題會更簡單一些。 3. Ruby Quiz – 一個可以使用任何語言解決程序挑戰(zhàn)問題的集合,但是如果你想查看這些問題的評價,他們會默認的使用Ruby來解決。相對應(yīng)的還會有一本書,《 最好的Ruby問答題》,討論所選擇問題可能的解決方案。 4. Top Coder – 定期的不同類別(算法,測試,設(shè)計,組裝以及其他很多)程序設(shè)計比賽,同時會有來自微軟和NSA等贊助商為獲勝者提供的獎金。解決方案可以使用JAVA,C++,C#,或者VB。來看看比賽內(nèi)容,感受一下你在比賽中可能遇到什么樣類型的難題吧。同樣這里還有大量,高水平的參賽者寫的不錯的指導(dǎo)教程。 5. UVa Online Judge – 數(shù)以百計來自過去編程比賽的問題,例如ACM國際編程大賽的題目。可以使用C,C++,Java或者Pascal提交解決方案。一定要看看這本書,《Programming Challenges | 挑戰(zhàn)編程:程序設(shè)計競賽訓(xùn)練手冊 》,除此之外還有一本新書《From Baylor to Baylor》,收集了1991年到2006年期間 ,ACM-ICPC比賽決賽中所有的問題。 6. Sphere Online Judge – 數(shù)以百計的各種在線編程競賽中的問題。最好的地方在于,你可以使用十幾種不同的語言提交解決方案(參見網(wǎng)站難題列表的頂端,看看你最喜歡的語言是否包括在內(nèi))。 7. C Puzzles – 在這個頁面上的謎題都是關(guān)于C語言常見的陷阱和常犯錯誤等。C語言的專家型人才可能會在很短的時間內(nèi)漂亮的完成這些問題,但如果你不知道C語言的本質(zhì),這些問題可能會有點挑戰(zhàn)。 8. Facebook Puzzles – 一個小型的編程問題網(wǎng)站,F(xiàn)acebook用來評估潛在雇員們的能力。你可以使用 C++、Erlang、Haskell、Java、OCaml、Perl、PHP、Python或者Ruby來提交解決方案。 9. Google Code Jam – 一個定期的編程比賽,參賽者使用指定的語言解決算法問題。我不確定Google有沒有在2009年舉辦比賽的計劃,不過你可以看看2008年比賽中的問題,掂量掂量一下自己。
10. Microsoft Interview Questions – 首先,我先說明,我完全反對在面試中使用這類謎題。很多問題都需要“靈光一現(xiàn)”來解決,而不需要現(xiàn)實世界中的邏輯思考能力。如果你使用這類問題面試應(yīng)聘者,需要警告你的是,你可能要先看看這個人以前看沒看過類似的問題。說到底,這些問題在面試之外做一做還是很有趣的。 11. wu:riddles – 數(shù)百個具有挑戰(zhàn)的邏輯謎題,各種各樣的難題。這些問題都標記了可能需要任何特殊的知識,例如:數(shù)學(xué),物理,計算機科學(xué)或者國際象棋。
我忘記了什么了沒?如果你在上邊的列表中沒看到你最喜歡的編程挑戰(zhàn)或邏輯謎題網(wǎng)站,可以給我在留言里告訴我網(wǎng)站地址,我總是喜歡新的挑戰(zhàn)!
來自留言的更新 非常感謝大家留言讓我知道了新的謎題網(wǎng)站。下面這些是我以后會定期瀏覽的網(wǎng)站: Programming Praxis 看起來是一個有希望的新博客,充滿了編程練習(xí)讓你“磨刀不誤砍柴工”。看起來新的問題將會在二月份定期發(fā)布。我已經(jīng)收藏了網(wǎng)站的RSS。 Code Kata 是Dave Thomas在2007年發(fā)行的《The Pragmatic Programmer | 程序員修煉之道》這本書中的一系列簡短的問題。代碼器是“簡單的實際練習(xí),讓我們的試驗和學(xué)習(xí)更簡單的一個環(huán)境?!闭俏乙业摹?/p> 所有語言的程序員都將會想看看編程比賽的10大Prolog問題(免費的PDF電子書),還有99大Prolog問題。 (如果你不喜歡Prolog,你也可以用Haskell, Python, Scala, 或 Lisp做這99個題目。) 如果你對組織編程比賽感興趣,可能需要看看美國計算機奧林匹克或者ACM編程競賽題(在這里能看到的問題你也能在前面提到的UVA在線中找到。) Al Zimmermann’s Programming Contests (競賽名單) 目前比較經(jīng)典的計算機編程問題,而且還有獎品哦??雌饋砀傎悇倓倖訋讉€月不到一年,還有足夠時間參加本屆比賽。 Anarchy Golf 這里有幾百個問題,還有一個服務(wù)器,可以使用69種不同的語言提交解決方案。這個提醒了我,我忘記了Code Golf。跟任何其他網(wǎng)站不同,code golf是一個看誰的解決方案最短并且正確。JAVA編程人員可以去玩,但是Python和Perl在code golf更多一些。 最后,提醒一些讀者,不僅僅有編程和邏輯類的謎題。國際象棋和圍棋同樣可以非常有趣。Chess.com有一個每日一題,適合休閑玩家進行挑戰(zhàn), GoGrinder是圍棋問題中一個優(yōu)秀的開源程序練習(xí)網(wǎng)站。
再次感謝那些花費時間分享他們的謎題網(wǎng)站的人們。希望不會影響到下周大家的工作狀態(tài)。:) *如果你不知道Office Space的那種感覺,跑出去到最近的磁帶店**直接拿起一份拷貝看吧。 (譯者注:Office Space是一部描寫在Initech公司上班的一位電腦工程師,在辦公室的那種崩潰的狀態(tài)的電影。 ) ** 哈哈哈, “音像店”! 我怎么了,像60歲嘛?看這里吧 Netflix. |
|