全網(wǎng)瘋傳!Github上最受歡迎的7個(gè)編程面試項(xiàng)目
在科技行業(yè),面試比實(shí)際工作還難,這聽起來像個(gè)笑話,但在大多數(shù)情況下它可能就是這樣的,因此,在這篇文章中,我們將和大家分享7個(gè)Github知識(shí)庫,這些知識(shí)庫包含以下信息:
- Web是如何工作的(DNS、HTTP等主題)
- 數(shù)據(jù)結(jié)構(gòu)與算法
- 如何設(shè)計(jì)大型系統(tǒng)(系統(tǒng)設(shè)計(jì))
- APP保護(hù)
- JavaScript算法
1. Coding Interview University
這是最全面的面試準(zhǔn)備資源之一,該倉庫一開始是創(chuàng)建者的學(xué)習(xí)計(jì)劃,他是一名軟件工程師,在這個(gè)倉庫里,你可以找到有關(guān)數(shù)據(jù)結(jié)構(gòu)、算法、動(dòng)態(tài)編程、面向?qū)ο缶幊?、設(shè)計(jì)模式等信息。
建議你查看這個(gè)倉庫并自己去閱讀它,同時(shí)它是綜合性的,你不需要學(xué)習(xí)所有的東西,或者一次學(xué)習(xí)所有的東西。但即便如此,這本書對(duì)于準(zhǔn)備面試的程序員來說是非常方便的。
項(xiàng)目地址:https://github.com/jwasham/coding-interview-university
2. Tech Interview Handbook
另一個(gè)有用的資源是Tech Interview Handbook,它包含有關(guān)技術(shù)面試的很多細(xì)節(jié),但又不僅僅局限在面試上,它還包括工作申請(qǐng)(簡歷、求職信),面試過程(行為問題,面試中應(yīng)該問什么問題),以及面試后的考慮(薪資談判)等。因此在這份項(xiàng)目里你可以學(xué)到的不僅僅是數(shù)據(jù)結(jié)構(gòu)、算法和其它技術(shù)科目,這是一個(gè)很方便的資源,強(qiáng)烈建議你去試試。
項(xiàng)目地址:https://yangshun.github.io/tech-interview-handbook/
3. The System Design Primer
對(duì)于小的項(xiàng)目,你可能沒有太多的計(jì)劃和過多的思考,然而,構(gòu)建大型系統(tǒng)則是另外一回事,學(xué)習(xí)如何設(shè)計(jì)可擴(kuò)展的系統(tǒng)將幫助你成為一名軟件工程師。該倉庫是一個(gè)從互聯(lián)網(wǎng)上收集的資料和資源的集合。創(chuàng)建者將來自不同來源的資源和材料放在一起,同時(shí),這個(gè)倉庫是不斷更新的,所以不妨密切關(guān)注一下,Repo中包含一個(gè)學(xué)習(xí)指南,如何處理系統(tǒng)設(shè)計(jì)問題,并解決問題。我強(qiáng)烈推薦它來學(xué)習(xí)更多關(guān)于設(shè)計(jì)可擴(kuò)展應(yīng)用程序的知識(shí)。
項(xiàng)目地址:https://github.com/donnemartin/system-design-primer
4. Interview Resources
Interview Resources沒有關(guān)于如何使用它的描述或指南,它只列出到其他資源的鏈接,并根據(jù)他們的主題將這些鏈接分組,例如,算法部分包括書籍、編程實(shí)踐、指南等。我特別喜歡這個(gè)存儲(chǔ)庫,因?yàn)樗舜罅康馁Y源,而且,我喜歡它們按類型分類,除此之外,它還有一個(gè)優(yōu)點(diǎn),那就是在末尾有類似的存儲(chǔ)庫。這些都是準(zhǔn)備面試的附加資源。
項(xiàng)目地址:https://github.com/Olshansk/interview
5. How to Secure Anything
安全性在過去、現(xiàn)在和將來都是構(gòu)建應(yīng)用程序的一個(gè)重要主題,如果應(yīng)用程序不安全可能會(huì)導(dǎo)致災(zāi)難性的后果,因此,安全問題不能掉以輕心,這個(gè)倉庫的優(yōu)點(diǎn)是這些信息適用于保護(hù)任何東西——而不僅僅是應(yīng)用程序。創(chuàng)建者表示這個(gè)倉庫旨在記錄一個(gè)保護(hù)任何東西的過程。
項(xiàng)目地址:https://github.com/veeral-patel/how-to-secure-anything
6. How Web Works
在我的第一份開發(fā)者工作面試中,面試官問我:在瀏覽器中輸入U(xiǎn)RL時(shí)會(huì)發(fā)生什么?”當(dāng)時(shí)這個(gè)問題把我難住了,同樣的,未來的你可能也會(huì)遇到同樣的問題。你可以在名為“How Web Works”的Repo中找到這些問題的答案,你還可以找到關(guān)于DNS、HTTP協(xié)議和服務(wù)器如何工作的信息,或者關(guān)于DOM樹、呈現(xiàn)樹、頁面繪制等信息,該項(xiàng)目是學(xué)習(xí)Web工作原理和基礎(chǔ)知識(shí)的存儲(chǔ)庫,此外,該存儲(chǔ)庫還包含了很多鏈接,用于深入研究某些主題。
項(xiàng)目地址:https://github.com/vasanthk/how-web-works
7. JavaScript Algorithms
這個(gè)倉庫更適合JavaScript開發(fā)者,不過,如果你了解這些概念并知道如何在JavaScript中實(shí)現(xiàn)它們,你很可能也知道如何在其他語言中實(shí)現(xiàn)它們。每個(gè)數(shù)據(jù)結(jié)構(gòu)和算法都有其單獨(dú)的介紹,Repo中還包括進(jìn)一步介紹的材料鏈接,因此,如果你不理解一個(gè)概念,你可以按照附帶的資料進(jìn)一步學(xué)習(xí),話雖如此,我想說的是,有些信息可能是不夠充分的,你還需要自己補(bǔ)充,但總而言之,這個(gè)倉庫非常適合算法和數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)。
項(xiàng)目地址:https://github.com/trekhleb/javascript-algorithms