2017年最受歡迎的10個(gè)編程挑戰(zhàn)網(wǎng)站
在學(xué)習(xí)編程的過程中,完成編碼挑戰(zhàn)是一個(gè)快速提升編程技能的不錯(cuò)方法。通過解決不同類型的編碼挑戰(zhàn)與難題,不僅能讓你成為處理問題的高手,而且可以幫助你了解編程語言的復(fù)雜性,學(xué)習(xí)新的算法,并能夠讓你有條不紊的進(jìn)行面試準(zhǔn)備。
在本文中,我將與大家分享一些流行的編碼挑戰(zhàn)網(wǎng)站,并為大家進(jìn)行大體的介紹。
1. TopCoder
TopCoder 是一個(gè)知名的在線編程競技平臺(tái)。它提供了一系列的 算法挑戰(zhàn) ,你可以直接通過其代碼編輯器進(jìn)行在線作答。***的 SRMs 挑戰(zhàn)項(xiàng)目,將會(huì)在每月定期舉辦。而作為參賽者,你需要以最快的速度,與眾多的編程挑戰(zhàn)者進(jìn)行 PK.
在 TopCoder 上 排名前列的參賽者 ,也都是定期參賽的優(yōu)秀程序員。作為網(wǎng)站上排名首位的程序員 - PETR MITRICHEV,他還維護(hù)著名為《算法周刊》的 個(gè)人博客 ,他在博客中經(jīng)常撰寫關(guān)于編碼競賽、算法、數(shù)學(xué)等相關(guān)內(nèi)容,感興趣的朋友可以去看看。
2. Coderbyte
Coderbyte 網(wǎng)站上提供了超過 200 個(gè)編碼挑戰(zhàn),你可以從 10 種編程語言中選擇其中一種,直接在線完成挑戰(zhàn)內(nèi)容(具體請(qǐng)參閱 此示例 )。挑戰(zhàn)的難度則由易(查找字符串中最長單詞)至難(圖的***基數(shù)匹配)。
網(wǎng)站上還提供了一系列的 算法教程 、介紹性視頻以及 面試準(zhǔn)備的相應(yīng)課程 。與 HackerRank 和其他類似網(wǎng)站不同的是,你不僅可以查看 Coderbyte 發(fā)布的官方答案,還可以瀏覽其他用戶的解決方案。
3. Project Euler
Project Euler 在計(jì)算機(jī)科學(xué)與數(shù)學(xué)領(lǐng)域提供了大量的問題與挑戰(zhàn)。挑戰(zhàn)的內(nèi)容通常包括編寫一個(gè)計(jì)算數(shù)學(xué)公式或方程解的小程序,例如,找出數(shù)字序列中每個(gè)數(shù)字之前的所有數(shù)字的總和。
由于不能直接在線編程解答,所以你需要預(yù)先在自己的電腦上搞定解決方案,然后在其網(wǎng)站上提交即可。
4. HackerRank
HackerRank 在算法、數(shù)學(xué)、SQL、函數(shù)式編程、AI 等眾多不同領(lǐng)域?yàn)樘魬?zhàn)者們提供了相應(yīng)的編碼謎題。你可以直接在線完成幾乎所有的挑戰(zhàn)(參見 本例 )。他們?yōu)楦鱾€(gè)挑戰(zhàn)項(xiàng)目提供了討論區(qū)與排行榜。大多數(shù)挑戰(zhàn)的謎題來自于社論,讓你更多的了解挑戰(zhàn)內(nèi)容的同時(shí),思考如何解決問題。除了社論,你無法查看其他挑戰(zhàn)者在 HackerRank 上的答案。
HackerRank 還支持用戶 提交個(gè)人申請(qǐng) ,并通過解決贊助公司的編碼挑戰(zhàn)來找工作。
5. CodeChef
CodeChefsh 是一個(gè)源自印度的編程挑戰(zhàn) 網(wǎng)站 ,它提供了數(shù)百個(gè)挑戰(zhàn)項(xiàng)目供你選擇。你可以通過在線 編輯器 來編寫代碼,并根據(jù)技術(shù)等級(jí)查看不同分類下的挑戰(zhàn)內(nèi)容(參閱 此示例 )。他們還建立了一個(gè)編程社區(qū),便于用戶間交流,撰寫 教程 ,并及時(shí)地參加 CodeChef 編碼 競賽 。
6. CodeEval
與 HackerRank 最為相似的是 CodeEval,這是一家使用代碼測試幫助雇主找到合適人才的網(wǎng)站。招聘方通過發(fā)布并舉辦編程挑戰(zhàn),招聘優(yōu)秀的程序開發(fā)者入職。如果你有能力搞定相應(yīng)的挑戰(zhàn),那么工作自然不用愁。你可以在 這里 查看當(dāng)前的挑戰(zhàn)列表。
7. Codewars
CodeWars 是一個(gè)通過實(shí)戰(zhàn)訓(xùn)練來提升編程開發(fā)技能的網(wǎng)站。它提供了基于社區(qū)中經(jīng)典問題的挑戰(zhàn)題目,你可以使用多種編程語言像打游戲升級(jí)一樣,通過 在線 編輯器直接完成每項(xiàng)挑戰(zhàn),同時(shí)還可以查看、討論其他用戶的解決方案。
8. LeetCode
LeetCode 是一個(gè)流行的 Online Judge ,它提供了 190+ 編程題目,可以幫助你在線刷各大 IT 公司的筆試/面試題。你可以在 9 種編程語言中的任意其一, 在線 完成相應(yīng)的挑戰(zhàn)題目。雖然,你無法查看其他用戶的答案,但網(wǎng)站將為你提供與其他用戶答案分析對(duì)比后的相應(yīng)信息,例如你可以間接地了解你的代碼運(yùn)行速度。
他們還提供了針對(duì)大廠的 Mock 面試 部分,并且也會(huì)主辦一些編程 比賽 ,你也可以通過瀏覽他們的博客 文章 ,更好地了解某些問題的解決方案。
9. SPOJ
Sphere Online Judge ( SPOJ )是一個(gè)提供超過 20K 編程挑戰(zhàn)項(xiàng)目的 Online Judge,它也支持 在線 提交代碼。SPOJ 會(huì)不定期的舉辦一系列編程挑戰(zhàn) 競賽 ,同時(shí)他們還建立了一個(gè)針對(duì)編程挑戰(zhàn)的用戶討論區(qū)。但它與其他網(wǎng)站不同的是,他們沒有提供官方的解決方案。
10. CodinGame
CodinGame 與其他編程挑戰(zhàn)網(wǎng)站有所不同,因?yàn)樗峁┝巳の缎缘挠螒蚍绞?,讓你通過在線編碼解決相應(yīng)的挑戰(zhàn)。你可以在 這里 查看游戲列表,并在 這里 查看相應(yīng)的示例。在游戲中會(huì)有相關(guān)的問題描述、測試用例以及在線編輯器,你只需要編寫相應(yīng)的代碼就可以開始挑戰(zhàn)了(20+ 編程語言任選其一)。
雖然,這個(gè)網(wǎng)站與上述那些競爭性的編程網(wǎng)站有所不同,但玩過的朋友也都覺得很棒。
***
上述分享的網(wǎng)站列表內(nèi)容,一些網(wǎng)站是我用過感覺不錯(cuò)的,一些是利用 谷歌搜索 的,還有一些則是 Quora 上的文章 以及其他 相關(guān)文章 推薦的,希望它們能對(duì)你有所幫助。還有一點(diǎn)要說明下,我目前在 Coderbyte 工作。