6個超酷的練習(xí)算法,學(xué)習(xí)編程的網(wǎng)站
在不了解算法的前提下,您無法通過Google或Facebook的采訪。 那么為什么不現(xiàn)在學(xué)習(xí)。
我是一位擁有15年以上經(jīng)驗(yàn)的程序員。 從高中開始的第一年,我在算法上學(xué)習(xí)和工作很多。 在我畢業(yè)之前,我一直都在學(xué)習(xí)并對它充滿熱情。 畢業(yè)后,我開始出國學(xué)習(xí),走了研究道路。
但是,工作3年后,我更喜歡做產(chǎn)品/軟件而不是研究。 我轉(zhuǎn)向技術(shù)/工程而非算法。 但是,我個人認(rèn)為,對于開發(fā)人員來說,理解算法仍然很重要。 而且,我認(rèn)為您可能不了解Google或Facebook而無法通過面試!
> Photo by Fabian Grohs on Unsplash
1. HackerRank
從初級到高級,從開發(fā)人員到招聘經(jīng)理,該網(wǎng)站在編程界都是非常有名的。

> hackkerrank.com
Hackerrank有許多算法,難度從低到高,以及各種算法和數(shù)據(jù)結(jié)構(gòu)(甚至是SQL)。 您將編寫代碼,直接運(yùn)行并查看結(jié)果,或查看討論以了解人們?nèi)绾谓鉀Q它。
在我的采訪過程中,也有一些公司讓我來這里進(jìn)行測試(算法+多項(xiàng)選擇+論文)。 因此,您可以來這里做更多練習(xí)并習(xí)慣它。
2. TopCode

> https://www.topcoder.com/challenges/
TopCoder是最早可以相互競爭的程序員的在線"競技場"之一。 它提供了算法挑戰(zhàn)的列表,您可以使用其代碼編輯器在線進(jìn)行操作。 單輪比賽每月在特定時間舉行幾次,編碼員相互競爭,以最高分最快地解決挑戰(zhàn)。
在TopCoder上排名靠前的用戶是非常優(yōu)秀的程序員,并且經(jīng)常參加許多編程競賽。 排名最高的人將擁有自己的博客" PETR MITRICHEV編寫的ALGORITHMS WEEKLY",他們可以在其中撰寫有關(guān)代碼競賽,算法,數(shù)學(xué)以及任何喜歡的東西的文章。
3. Geeksforgeeks
如果您在執(zhí)行算法時遇到麻煩,在Google上尋找解決方案后,您可能會多次看到該頁面。

> https://practice.geeksforgeeks.org/
這個geekforgeeks頁面看起來有點(diǎn)……很丑,這些練習(xí)的分類不是很好。 但是,它有許多常見算法練習(xí)的解決方案。 每個解決方案包括許多不同的方法,以及每種方法的復(fù)雜性/內(nèi)存。 這是非常有趣和有益的閱讀。
因此,有時您可以在主頁上看到此頁面/解決方案示例的流行算法!
4. Leetcode
另一個受歡迎的算法培訓(xùn)網(wǎng)站:Leetcode。 在此問題上的數(shù)量不亞于hackerrank,有3個主要難度級別,分別是Easy / Medium / Hard(某些簡單的問題非常困難)。

> https://leetcode.com/
當(dāng)我去算法面試時,經(jīng)常有人問我一些簡單的問題,用中級來評估能力,而困難是針對Facebook / Google面試。
與其他頁面相比,此頁面也可以很好地衡量您的性能/運(yùn)行時代碼,以查看您的代碼運(yùn)行快速還是慢速,是否可以優(yōu)化。
每日編碼問題
觀看CS Dojo的Youtube頻道時向我介紹了該頁面-一位Google員工辭職以擔(dān)任YouTube員工。

> https://www.dailycodingproblem.com/
與其余頁面不同,此站點(diǎn)沒有作業(yè)列表。 相反,您輸入電子郵件,他們每天都會發(fā)送給您1種算法來嘗試。
這些也是Easy / Medium,像Amazon / Google這樣的公司用來采訪候選人。 如果您購買了高級套餐,將獲得解決方案。
Exercism.io
如果其他頁面要練習(xí)算法,那么練習(xí)就是學(xué)習(xí)編程的好地方。

> https://exercism.io/
關(guān)于鍛煉的練習(xí)很多,但是這些練習(xí)對算法的要求不是太重,但是對使用編程語言的要求卻很重:
- 使用if / else循環(huán)。
- 日期處理,字符串處理
- 方法分離,班級組織
- 如何處理錯誤,編寫異步代碼
我使用此網(wǎng)站來了解有關(guān)Golang和Elixir的更多信息。
如果您已經(jīng)編程了一段時間,想學(xué)習(xí)一種新的語言,學(xué)習(xí)一種新的思維方式,那就去運(yùn)動吧!
總結(jié)
在本文中,我分享了6個超酷的網(wǎng)站來練習(xí)算法和學(xué)習(xí)編程!
我個人認(rèn)為您不需要學(xué)習(xí)太多,如果想在面試之前進(jìn)行練習(xí),請訪問Skilled / Hackerrank / Leetcode。 或者,如果您需要學(xué)習(xí)新的語言,請選擇運(yùn)動。