面試前想練習算法?那么這 6 個免費的算法網(wǎng)站,你一定要知道!
在不了解算法的前提下,您無法通過Google或Facebook的采訪。 那么為什么不現(xiàn)在學習。
我是一位擁有n年以上經(jīng)驗的程序員。 從高中開始的第一年,我在算法上學習和工作很多。 在我畢業(yè)之前,我一直都在學習并對它充滿熱情。 畢業(yè)后,我開始出國學習,走了研究道路。

但是,工作3年后,我更喜歡做產(chǎn)品/軟件而不是研究。 我轉(zhuǎn)向技術/工程而非算法。 但是,我個人認為,對于開發(fā)人員來說,理解算法仍然很重要。 而且,我認為您可能不了解Google或Facebook而無法通過面試!
> Photo by Fabian Grohs on Unsplash
HackerRank
從初級到高級,從開發(fā)人員到招聘經(jīng)理,該網(wǎng)站在編程界都是非常有名的。

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

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

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

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

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

> https://exercism.io/
關于鍛煉的練習很多,但是這些練習對算法的要求不是太重,但是對使用編程語言的要求卻很重:
使用if / else循環(huán)。
日期處理,字符串處理
方法分離,班級組織
如何處理錯誤,編寫異步代碼
我使用此網(wǎng)站來了解有關Golang和Elixir的更多信息。
如果您已經(jīng)編程了一段時間,想學習一種新的語言,學習一種新的思維方式,那就去嘗試吧!

總結(jié)
在本文中,我分享了6個超酷的網(wǎng)站來練習算法和學習編程!
我個人認為您不需要學習太多,如果想在面試之前進行練習,請訪問Skilled / Hackerrank / Leetcode。
話說回來,對我們來說還是學編程最重要!栽一棵樹最好的時間是十年前,其次是現(xiàn)在。對于準備學習編程的小伙伴,如果你想更好的提升你的編程核心能力(內(nèi)功),在未來成為一名有為的技術人員!不妨從現(xiàn)在開始!
微信公眾號:C語言編程學習基地
整理分享(多年學習的源碼、項目實戰(zhàn)視頻、項目筆記,基礎入門教程)
歡迎轉(zhuǎn)行和學習編程的伙伴,利用更多的資料學習成長比自己琢磨更快哦!
