歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

十七項編程比賽,你敢試試嗎?

眾所周知,編程幾乎已經成為各行各業不可或缺的重要技能儲備,它能夠以無法替代的方式幫助我們組織並維護大型系統,因此如今越來越多的人才也開始踏上這條學習之路。

5 Coding Challenges to Help You Train Your Brain

大家可以通過交互式平台學習編程,也可以從各類教程及論著當中汲取營養——每個人的學習軌跡不同,選擇的學習方式亦有所區別。不過,有時候單憑這些資源還不足完全解決問題,我們更需要找到新的實踐鍛煉途徑。

編程是一項充滿創造性的工作,每位參與者都有能力提出新的、有趣的想法;不過有時候因為需要將大量時間投入到解決覺問題的工作當中,我們往往忽略了創造力的培養。我不太確定這是否正是各類編程挑戰賽的存在意義,但它們確實能夠幫助大家從更深層次出發,考量自身在編程工作當中的定位。

從這個角度出發,各類編程挑戰賽能夠通過以下幾個方面為我們帶來助益:

  • 學習新的編程實現方式
  • 在實踐中磨砺新型編程語言的使用技巧
  • 體驗如何解決關鍵性問題
  • 讓我們的頭腦保持敏銳與專注
  • 享受由此帶來的種種樂趣

在今天的文章中,我們將共同分享17項最佳編程挑戰賽事,相信它們能夠在大家的編程學習及實踐道路上帶來顯著的推動作用——甚至有可能幫助大家樹立起偉大的學習目的,引導各位探索廣闊無垠的計算機科學世界。

 

[topcoder]

topcoder

大家可以在這裡贏得真金白銀作為獎金,而且作為一個擁有近百萬程序員受眾的社區,我敢肯定這裡會提供大量極具挑戰的編程難題。之所以能夠給出這樣的結論,是因為我發現相當一部分新手編程愛好者都認為[topcoder]的題目確實難度較高。

大家可以同時參加每天以及每周組織的編程挑戰活動,這兩項賽事的題目都將對各位的頭腦及才能提出挑戰,只有最睿智的人才能夠將其解決。但在參與之後,大家會發現這一切都是值得的,因為所有經歷都將成為您個人簡歷上的一筆寶貴財富。

 

HackerEarth

HackerEarth Programming challenges and Developer jobs

HackerEarth提供一款SaaS應用程序,旨在對候選人的技術及邏輯能力進行自動化評估。它同時也是一套聚集並篩選開發人員的平台,企業能夠在這裡找到符合實際需要的理想員工人選。

他們會經常組織各類編程挑戰活動,大家可以提前數周注冊並申請參加,從而著手准備並提前了解應對難題需要掌握的基礎知識。與TopCoder類似,HackerEarth同樣是一個質量極高的網站,其提供的各種腦力挑戰題目能夠幫助大家在未來的職業生涯當中大受裨益。

 

CodeMonk

HackerEarth的最新亮點在於其新近推出的CodeMonk系列挑戰賽事——在CodeMonk挑戰賽中,大家可以全身心沉浸在自己編寫出的代碼當中,並通過反復挑戰讓實踐經驗真正融入自己的血液當中。這項挑戰賽事主要關注編程難題的解決。

而且如果大家希望進一步發揮自己的冒險精神,並且希望能夠突破學習的范疇參與一些真正的挑戰活動,那麼不妨借助HackerEarth的Sprint服務——其允許我們創建屬於自己的黑客馬拉松。

 

Coderbyte

Coderbyte Programming Game Challenges Competitions

Coderbyte是一個依靠Kickstarter眾籌建立而成的項目(雖然如此,但它的參加眾籌之前就已經存在了),且設計受眾主要面向初學者及中等水平編程人員。

該站點建立於2012年,由Daniel Borowski一手締造,而且如今已經發展成為一個由程序員們自主維護的社區。在這裡,技術人員們利用自己的閒暇時間在這裡解決各類挑戰性難題。

大家也可以在這裡就自己不了解的編程內容發問,整個社區的活躍氣氛足以幫助各位找到答案並獲得充足的干勁。總體來講,Coderbyte是個人氣極高的網絡平台,而且風評相當積極——大家不要錯過哦。

 

Project Euler

About Project Euler.resized

Project Euler可能是目前世界上人氣最高的編程挑戰網站了,自十年前創立以來,這裡也已經逐漸成為成千上萬名用戶的活動之家。大家每周都能在這裡找到新的挑戰題目,但別誤以為這樣的節奏太過緩慢——此前已經被解決的超過450道難題絕對能搾干您的腦汁。

不過這些題目本身並非難到高不可攀——相反,它們大多強調思路與解決問題的能力,旨在幫助大家培養並學習到更多與所用編程語言相關的知識積累。總之,各類題目都高度針對解決途徑而出現,能夠確保大家以清晰的思路了解自己到底在利用編程語言做些什麼。

要了解更多與Project Euler相關的情況,大家不妨點擊以下鏈接: 維基百科、Reddit、Stack Overflow以及Google Code。

該網站甚至推出了專門的Android應用程序,大家可以點擊此處進行下載。

 

Daily Programmer

For learning refreshing or just for fun

這裡我要介紹個人最喜愛的網站之一:Reddit推出的Daily Programmer。如果大家希望了解更多與編程及問題解決思路相關的內容,這裡將是非常理想的討論平台。我認為這正是Daily Programmer目前的核心定位所在,而且各位每周能夠在這裡找到三道等待解決的獨特難題。

更值得一提的是,這裡還擁有大量活躍用戶。我們在評論當中提交的所有內容都會得到眾多社區成員的查閱,因此每項解決方案都能得到點評及回復。

強烈推薦!

 

Codility

Refactor yourself. Train your programming skills Codility

在這裡,大家能夠找到大量針對不同編程語言所設計的思維挑戰難題。它們根據不同難度作出了適當的排序,而且整個流程將有40到50道難題為各位設下重重考驗。

每一道難題都提供詳盡而充分的解釋,而且根據我的個人體驗,各試題都設定了時間限制——所以不要懈怠,一鼓作氣將其解決吧!

 

SPOJ

Sphere Online Judge SPOJ

Sphere Online Judge (簡稱SPOJ)是一座包羅萬象的寶庫,其中的數千道編程挑戰試題足以讓大家忙上好一陣子。SPOF當中挑戰題目的涵蓋范圍同樣廣泛,從最基本的編程難題到艱深的算法難關無所不包——後者要求大家具備某些高超的問題解決技巧,例如為NP難題尋找最佳啟發式算法。SPOJ允許大家利用所能想到的幾乎每一種編程語言作為解題工具,並針對您所給出的解決方案提供反饋意見——其中可能包含一些有針對性的額外提示。

SPOJ背後還擁有一整套令人贊歎的社區(用戶數量超過30萬),這裡的活躍成員們樂於幫助彼此在論壇上解決難題。SPOJ允許用戶添加自己的挑戰題目、組織編程競賽並比拼解決問題的能力。無論是新手上路還是從業多年的老鳥,都能夠在這裡找到適合自己的定位與內容。對大多數用戶來說,它提供了一套理想的大型編程競賽前不可或缺的預熱環境。眾多理論計算機科學家的加入為這裡營造出一種充滿激情的編程鑽研氛圍,但又同時流露出極強的親和力——大家從該網站的宣傳口號就能感受到這一切:“Where Hackers eat Crackers(作黑客,不作駭客——cracker亦有餅干之意,代表這裡如下午茶般的惬意氣氛)。”

 

CodeChef

CodeChef

CodeChef由Directi所創建,這裡不僅是一個旨在鼓勵並挑戰開發人員解決難題的社區,同時也為用戶提供了一整套實踐、競賽並提升自身技能水平的平台。這裡包含有大量供用戶解決的挑戰題目集合,大家也可以隨意查看其他成員在解決這些編程難題時所使用的源代碼。

全部挑戰題目根據難度不同而作出了具體類別劃分,而且該網站本身也擁有一個頗具規模的社區。總而言之,CodeChef是大家磨砺技能、展示身手的良好環境。

 

CodeEval

CodeEval

如果大家希望向企業雇主及其他同行展現自己的編程功力,那麼請以開發者的身份加入到CodeEval當中。在這裡,我們可以參與到涉及多種不同領域的競賽當中,不過大多數比賽目標都設定為構建一款產品/應用程序——並提供現金作為獎勵。此外,大家也可以參與其中的編程挑戰賽,相信把出色的成績添加到簡歷當中足以幫助各位給自己的潛在雇主留下良好的第一印象。

CodeEval網站專注於幫助開發人員立足於技術層面展示自己的個人水平,而且其實際效果也相當值得稱道。

 

HackerRank

Programming problems and Competitions HackerRank

HackerRank網站最吸引我的一點在於,他們所提供的挑戰試題與人工智能技術高度相關——這不僅是種很酷的發展方向,同時也給高階程序員們提供了一展身手的良好平台。HackerRank網站擁有著Y Combinator以及SVAngel等企業作為贊助方。總而言之,對個人水平有自信的朋友一定不要錯過。

 

Codewars

Codewars

Codewars在組織編程挑戰賽方面顯然找到了一條極佳的實現途徑,而且比賽內容也非常嚴肅。我費盡心力希望更為全面地幫助大家了解該網站的定位,但相信下面這段長度為十分鐘的視頻能夠更好地展示Codewars的實際作用。

我想大家應該會對Codewars產生興趣,正如眾多已經參與到其社區當中的開發者成員一樣。

 

Rosalind

Rosalind

雖然與前面提到的網站相比,Rosalind選取的方向更有針對性,但這仍然不妨礙它成為一種解決編程難題及學習編程知識的理想的途徑。Rosalind提供的挑戰題目大多面向生物信息學科,大家可以通過適合自己的節奏在這裡展開探索。

 

FightCode

FightCode

大家可以在這裡編寫自己的機器人,並利用它們同社區內的其他成員彼此對毆!這是一套編程-游戲類型的平台,但對於那些剛剛接觸此類方案的開發人員來說仍然頗具現實意義——或者至少能夠帶來不錯的娛樂性體驗。感興趣的朋友不妨點擊此處查看官方文檔,了解與之相關的細節信息。

 

Codeforces

Codeforces

Codeforces高度關注每日/每周組織編程挑戰活動。大家可以在這裡組建自己的隊伍、參加編程熱身並在站點當中查看誰才是最出色的編程人才。當然,該網站也會頻繁主辦編程賽事,幫助大家以出色的成績吸引到潛在雇主的注意。

 

Exercism

exercism.io

這套編程挑戰平台由Katrina Owen所創立。Exercism平台的關注重點在於以眾包方式解決技術問題。在成為該網站的成員之後,大家不僅能夠提升自己的思維/計算/編程技能,同時也可以同其他針對我們編程難題給出有價值答復及解決辦法的成員進行交流。這確實是種相當不錯的自我進修方式,值得大家加以體驗。

 

Kaggle

Kaggle The Home of Data Science

看起來Kaggle網站的設立初衷更多是在面向專業人士以及具備競爭意識的開發者群體,因為其中的競賽說明頁面確切指出,Kaggle組織的所有比賽都需要繳納費用才可參與。但盡管如此,如果大家在工作及學習中遇到了難以解決的問題,這裡無疑能為您提供極具價值的方案回報。大家也可以在這裡找到眾多招聘崗位,並通過編程教程保持知識儲備的持續更新及核心競爭力。

 

CodinGame

Games for programmers CodinGame

在CodinGame,我們相信每一位參與者都能夠發現編程帶來的樂趣。身為程序員,我們知道編程是一種強大的工具,能夠幫助自身完成各類創新與創造性活動。雖然涉足編程領域的主因在於激情與沖動,但在此之上,樂趣同樣非常重要。因此我們構建出了這樣一個融合了編程與游戲的平台。我們的目標是幫助來自世界各地的開發人員——無論其擁有怎樣的從業經歷或者專業經驗——以游戲的方式學習並提升自己的編程技能並找到理想的工作。

以上內容節選自CodinGame網站的官方說明頁面,簡而言之其關注重點在於編寫游戲程序,強調游戲的娛樂能力並以此為出發點幫助我們鍛煉自己的大腦。這種定位對於一部分開發者群體可能具有特殊的吸引力。

 

編程挑戰幫助我們鍛煉大腦

好吧,我覺得這篇文章的標題起得確實有點俗氣——不過也非常寫實,畢竟對每一位開發者來說,大腦正是自己最為寶貴的財富。

通過將這些資源匯總到一起,大家將一舉獲得成千上萬道獨特的編程挑戰試題——也許大家最終能夠解決的不過是其中的百分之一,但勿以善小而不為,這仍然值得我們一試。

大家在實際體驗過程中,最偏愛以上哪個網站提供的資源?除了清單所列出的資源,相信大家肯定也有著自己的心頭所好,請在評論欄中與我們分享您的編程財富儲備吧——可別藏私哦!

Copyright © Linux教程網 All Rights Reserved