如果你正在在學(xué)習(xí)編程,那么我可以告訴你一個提高技能的好方法,那就是是敢于去解決編碼過程中遇到的難題。解決不同類型的難題,可以幫助你成為一名的問題解決者;不管編程語言多復(fù)雜,你也會得心應(yīng)手;另外在面試準(zhǔn)備以及學(xué)習(xí)新算法等很多方面,都會讓你變得越來越出色。
下面是一些非常受大眾歡迎的編程難題網(wǎng)站列表,文章還對每個網(wǎng)站所提供的信息進行了一番簡短的描述。

TopCoder是開始的在線競技編程平臺之一。它提供了很多的算法挑戰(zhàn),用戶可以使用平臺上的編輯器直接完成挑戰(zhàn)。每個月該平臺會提供幾次它們受歡迎的Single Round Matches,比賽要求用戶在特定的時間內(nèi)與他人競爭,看誰解決問題的速度更快。
TopCoder上排名靠前的用戶都是很有競爭力的程序員,他們會定期參加各種比賽。這些用戶還可以通過名稱為ALGORITHMS WEEKLY BY PETR MITRICHEV的博客平臺去發(fā)表一些關(guān)于編程競賽、算法、數(shù)學(xué)等方面的文章。

Coderbyte提供了200多項編碼挑戰(zhàn),挑戰(zhàn)者可以使用10門編程語言中的任意一種直接在線解決(看看這個例子)。這些挑戰(zhàn)的難易程度各不相同。
另外Coderbyte還提供了很多的算法教程,入門視頻和面試準(zhǔn)備的課程。與HackerRank和其它網(wǎng)站不同,用戶可以查看其他挑戰(zhàn)者提供的解決方案,而不是Coderbyte*官方*發(fā)布的。

Project Euler提供了很多關(guān)于計算機科學(xué)和數(shù)學(xué)領(lǐng)域的挑戰(zhàn)。挑戰(zhàn)內(nèi)容大致都是要求挑戰(zhàn)者編寫一段小程序從而為某個數(shù)學(xué)公式或方程式提供解決方案。
由于不支持直接在編輯器上編程,因此需要用戶在自己的電腦上先寫好解決方案,然后在網(wǎng)站上再提供出來。

HackerRank提供了很多不同領(lǐng)域的挑戰(zhàn),比如算法、數(shù)學(xué)、SQL、函數(shù)式編程、人工智能等等。挑戰(zhàn)者可以直接在線完成所有挑戰(zhàn)(看看這個例子)。HackerRank針對每一項挑戰(zhàn)專門成立了討論和領(lǐng)導(dǎo)委員會,而大多數(shù)挑戰(zhàn)來自于一篇社論,它解釋了更多的挑戰(zhàn),以及如何接近它提出解決方案。除了這篇社論,你目前還不能看到其他用戶在HackerRank上的解決方案。
HackerRank還支持用戶提交應(yīng)用程序,而且通過解決公司發(fā)起的編碼挑戰(zhàn),挑戰(zhàn)者還有機會獲得一份工作。

CodeChef是一家位于印度的編程競賽網(wǎng)站,該網(wǎng)站提供了數(shù)百種挑戰(zhàn)。挑戰(zhàn)者可以通過在線編輯器進行編程,而且還可以根據(jù)自身的編程能力去查看已經(jīng)分類好的適合于自己的挑戰(zhàn)題目(請查看本示例)。CodeChef有一個龐大的編程社區(qū),為論壇提供幫助,負(fù)責(zé)編寫教程,而且也會參加CodeChef的編碼競賽。

CodeEval類似于HackerRank,它還提供了很多公司發(fā)起的挑戰(zhàn),如果能很好地完成這些挑戰(zhàn),你還有機會得到一份工作。公司可以創(chuàng)建挑戰(zhàn)和舉辦競爭比賽來招募新的工作人員。挑戰(zhàn)者可以在這里查看當(dāng)前的挑戰(zhàn)列表。

Codewars提供了很多的編碼挑戰(zhàn),這些挑戰(zhàn)都是由他們自己社區(qū)提交和編輯的。挑戰(zhàn)者可以用幾種語言在編輯器中直接在線完成挑戰(zhàn)。用戶還可以查看針對每個挑戰(zhàn)的討論以及其他用戶的解決方案。

LeetCode是一個很受歡迎的在線判題系統(tǒng),它提供了190道挑戰(zhàn)題目,這些題目可以幫助挑戰(zhàn)者為面試做好技術(shù)準(zhǔn)備。挑戰(zhàn)者可以用9種編程語言直接在線完成挑戰(zhàn)。雖然該網(wǎng)站不支持查看其他用戶的解決方案,但用戶可以為自己的解決方案提供統(tǒng)計數(shù)據(jù),例如與其他用戶相比,代碼運行速度如何。
他們也有一個專門為面試準(zhǔn)備的Mock Interview部分,這是由他們自己主持的編碼競賽,其中有一些文章幫助用戶更好地了解某些問題。

Sphere Online Judge(SPOJ)是一個在線判題系統(tǒng),提供20000多個編程挑戰(zhàn)。挑戰(zhàn)者可以直接通過在線編輯器中提交代碼。SPOJ還舉辦了自己的競賽,并有一個區(qū)域?qū)iT供用戶討論編碼挑戰(zhàn)。他們目前沒有像其他網(wǎng)站那樣提供任何官方解決方案或社論。

CodinGame與其他網(wǎng)站有點不同,因為它不是簡單地在編輯器中去完成編碼挑戰(zhàn),而是讓挑戰(zhàn)者真正游戲的。用戶可以在這里看到當(dāng)前提供的游戲列表,在這里看到一個示例。這個游戲有一個問題描述,測試用例,和一個編輯器,你可以在其中一個20 +的編程語言編寫你的代碼。
雖然這個網(wǎng)站不同于上面提到的那些有競爭力的編程網(wǎng)站,但對于那些喜歡挑戰(zhàn)并參與競賽的程序員來說,它還是很受歡迎額。
本站文章版權(quán)歸原作者及原出處所有 。內(nèi)容為作者個人觀點, 并不代表本站贊同其觀點和對其真實性負(fù)責(zé),本站只提供參考并不構(gòu)成任何投資及應(yīng)用建議。本站是一個個人學(xué)習(xí)交流的平臺,網(wǎng)站上部分文章為轉(zhuǎn)載,并不用于任何商業(yè)目的,我們已經(jīng)盡可能的對作者和來源進行了通告,但是能力有限或疏忽,造成漏登,請及時聯(lián)系我們,我們將根據(jù)著作權(quán)人的要求,立即更正或者刪除有關(guān)內(nèi)容。本站擁有對此聲明的最終解釋權(quán)。