0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

GitHub上最勵(lì)志的計(jì)算機(jī)自學(xué):John Washam

算法與數(shù)據(jù)結(jié)構(gòu) ? 來(lái)源:算法與數(shù)據(jù)結(jié)構(gòu) ? 作者:算法與數(shù)據(jù)結(jié)構(gòu) ? 2020-10-10 16:58 ? 次閱讀

John Washam勵(lì)志要成為一名谷歌軟件工程師,但沒(méi)有CS專業(yè)背景的他,只能通過(guò)自己的努力來(lái)達(dá)成理想。

于是,8個(gè)月的時(shí)間里,小哥花了數(shù)千小時(shí)閱讀書籍、編寫代碼、觀看CS技術(shù)講座,一路披荊斬棘、打怪升級(jí)。

最終,雖然沒(méi)有去谷歌,但他人到中年,還順利成為了一名亞馬遜AWS的技術(shù)專家,年薪百萬(wàn)。

更加難能可貴的是,小哥還將自學(xué)經(jīng)驗(yàn)編寫成了一份教程,在GitHub上線以來(lái),已收獲近10萬(wàn)星的好評(píng)。

正如他所說(shuō):

即便沒(méi)有面上(?)夢(mèng)寐以求的谷歌,但是教程,也可以用來(lái)好好充實(shí)一下自己。

PS:教程有中文版哦~~

GitHub超10萬(wàn)星自學(xué)寶典

是什么樣的編程教程,能如此火爆?

小哥最初的目的是“考上”谷歌,于是每天自學(xué)8-12個(gè)小時(shí),堅(jiān)持了8月有余。邊學(xué)還順手整理出了這份自學(xué)項(xiàng)目。

不過(guò)在完成這項(xiàng)學(xué)習(xí)計(jì)劃后,他最終被亞馬遜錄取,成為一名軟件工程師。

Washam表示:

無(wú)論你要面試哪家軟件公司,這里的項(xiàng)目可以讓你做好充分的準(zhǔn)備,包括像亞馬遜、Facebook、谷歌和微軟這樣的科技巨頭。

接下來(lái),我們就跟著Washam的腳步去了解一下這份面試寶典。

選擇語(yǔ)言、必備知識(shí)資源

首先要做的就是選擇一門語(yǔ)言,在Google一般是C++Java、Python,有時(shí)也會(huì)用到JavaScript、Ruby。背后還有一些如SQL、HTML等技術(shù)沒(méi)有列出。

接著開始學(xué)習(xí)計(jì)算機(jī)硬件知識(shí):

然后補(bǔ)充計(jì)算機(jī)專業(yè)的基礎(chǔ)數(shù)學(xué)知識(shí),如算法復(fù)雜度 / Big-O / 漸進(jìn)分析法、數(shù)據(jù)結(jié)構(gòu)、樹、排序、圖論。

此外還有遞歸、動(dòng)態(tài)規(guī)劃、組合與概率、NP&NP-完全和近似算法、緩存、線程與進(jìn)程、系統(tǒng)設(shè)計(jì)、可伸縮性、數(shù)據(jù)處理。

看到這么多知識(shí)點(diǎn),你會(huì)不會(huì)覺(jué)得有點(diǎn)懵呢?Washam告訴你一點(diǎn)小技巧。

因?yàn)槟悴豢赡芤槐榫陀涀∷兄R(shí)點(diǎn)。所以需要把要回顧的知識(shí)點(diǎn)做成抽認(rèn)卡(flashcard):正常的及帶有代碼的,類似于背單詞。

每種卡都會(huì)有不同的格式設(shè)計(jì)。項(xiàng)目主頁(yè)中就有抽認(rèn)卡的源代碼,可以根據(jù)自己的學(xué)習(xí)特點(diǎn)去制作。

Washam還留有一組 ASCII 碼表、OSI 堆棧、Big-O 記號(hào)及更多的小抄紙,以便在空余的時(shí)候可以學(xué)習(xí)。每編程半個(gè)小時(shí)就要休息一下,并去回顧你的抽認(rèn)卡。

當(dāng)然,論文的閱讀也是必不可少的,尤其是谷歌曾經(jīng)發(fā)表的一些基礎(chǔ)技術(shù)論文。

書籍則推薦一些關(guān)于算法和C++編程之類的。

Google面試注意事項(xiàng)

面試的第一步當(dāng)然是要有一份好的簡(jiǎn)歷,這樣才能為你爭(zhēng)取到寶貴的面試機(jī)會(huì)。知名科技博主Steve Yagge給出了10個(gè)貼士,幫你做出一份還不錯(cuò)的簡(jiǎn)歷。

這位Steve曾經(jīng)在亞馬遜、Google都工作過(guò),Washam的這個(gè)項(xiàng)目就大量地引用了他的技術(shù)博客內(nèi)容。

在面試時(shí),你可能會(huì)遇到這20個(gè)問(wèn)題,每個(gè)問(wèn)題準(zhǔn)備 2-3 種回答。準(zhǔn)備點(diǎn)故事,而不要只是擺一些你完成的事情的數(shù)據(jù)。

面試官在也會(huì)問(wèn)你還有哪些問(wèn)題,不要說(shuō)自己沒(méi)有什么要問(wèn)題,可以試試問(wèn)一些此類問(wèn)題:

當(dāng)然,進(jìn)入Google也不意味著結(jié)束,你還要新的學(xué)習(xí)過(guò)程。

Washam還有一份附加內(nèi)容,包括Emacs和Vim、Unix命令行工具、密碼學(xué)。這些內(nèi)容雖然不會(huì)直接用到,但是會(huì)大大提高你的效率。

一個(gè)Web前端的新征程

其實(shí)嚴(yán)格來(lái)講,John并不是一個(gè)編程小白。

從高中起,John就開始學(xué)習(xí)編程,學(xué)的是BASIC語(yǔ)言,這還在是上世紀(jì)90年代。

大學(xué)畢業(yè)拿到經(jīng)濟(jì)學(xué)學(xué)位后,他先是在軍隊(duì)服役兩年,駐扎韓國(guó)。

退役后他留在韓國(guó)教英語(yǔ),突然發(fā)現(xiàn)自己離開CS領(lǐng)域的這幾年間,太多的新技術(shù)新工具出現(xiàn),自己的知識(shí)結(jié)構(gòu)出現(xiàn)了斷層,無(wú)法支撐起一個(gè)程序員的職業(yè)生涯了。

于是他利用一切業(yè)余時(shí)間,艱苦地學(xué)習(xí)Perl、HTML、CSS(當(dāng)時(shí)這還是新東西)、JavaScript和SQL。

終于在2001年,John正式成為了一個(gè)網(wǎng)頁(yè)開發(fā)程序員,開始了19年的碼農(nóng)生涯。

截止2017年,John的職業(yè)生涯可謂十分成功:在大小公司都有過(guò)任職、組建管理過(guò)項(xiàng)目團(tuán)隊(duì)、經(jīng)營(yíng)壯大過(guò)初創(chuàng)公司,自己還親自創(chuàng)辦了3家軟件公司,其中2家至今還在健康運(yùn)營(yíng)。

按照J(rèn)ohn自己的話說(shuō),這十幾年的工作經(jīng)歷,將他鍛煉成了一個(gè)合格的程序員、一個(gè)優(yōu)秀的產(chǎn)品經(jīng)理、一個(gè)CEO、一個(gè)市場(chǎng)銷售。

但是他的目標(biāo)不止于此。他的夢(mèng)想是在谷歌任職軟件工程師,在充滿智慧和創(chuàng)造力的團(tuán)隊(duì)里提高自己。

最初他認(rèn)為憑自己的工作經(jīng)驗(yàn)可以輕松獲得職位,但拿到了谷歌面試題他才發(fā)現(xiàn)自己欠缺太多。

一個(gè)優(yōu)秀的軟件工程師應(yīng)該精通數(shù)據(jù)結(jié)構(gòu)和算法、匯編語(yǔ)言、內(nèi)存設(shè)計(jì)等,還要綜合考慮代碼和程序結(jié)構(gòu)對(duì)機(jī)器在應(yīng)用場(chǎng)景下的影響。

于是他以這份谷歌試題為指導(dǎo),開始了編程自學(xué)。

并且在github上建立了「9894項(xiàng)目」,因?yàn)楣雀杞⑴c1998年9月4日。

后來(lái)這個(gè)項(xiàng)目改名為現(xiàn)在的「coding interview university」。

CS自學(xué)三點(diǎn)注意事項(xiàng)

John結(jié)合自己的學(xué)習(xí)經(jīng)歷,給出了三點(diǎn)自學(xué)編程的建議。

一、早問(wèn)早計(jì)劃,不要想當(dāng)然

John最大的教訓(xùn)是自己花了太多時(shí)間學(xué)習(xí)根本用不上的東西,比如他曾經(jīng)用了3周時(shí)間閱讀了1000多頁(yè)C++的資料,但是最后面試和工作中用的卻是Python。

△這是John的算法學(xué)習(xí)資料,最后證明走了冤枉路

原因是他擔(dān)心面試時(shí)可能會(huì)被問(wèn)到。

這個(gè)例子不是說(shuō)C++沒(méi)必要學(xué)。

而是強(qiáng)調(diào)你要提前收集信息做出計(jì)劃,在不同的項(xiàng)目上分配合理的學(xué)習(xí)時(shí)間,提高效率。切忌「我覺(jué)得……」。

二、視頻比看書效率更高

觀看視頻的學(xué)習(xí)效率自然要比自己啃書快。

找到好的教學(xué)視頻,意味著你有更多的時(shí)間實(shí)際演練編程題目。

三、反復(fù)溫習(xí)十分重要

不斷反復(fù)是形成記憶的關(guān)鍵,正如我們?cè)谏衔奶岬降?,John推薦使用記憶卡。

他自己制作了1792個(gè)電子記憶卡。一有空閑時(shí)間就掏出來(lái)溫習(xí),比如超市排隊(duì)時(shí)、公交車上等等。

對(duì)于一個(gè)卡片的的問(wèn)題,回答正確還不夠,John會(huì)在一段時(shí)間內(nèi)多次回答正確才會(huì)標(biāo)記為「已掌握」。

最終這位小哥沒(méi)有去谷歌,而是接到了亞馬遜的offer,現(xiàn)在他在亞馬遜做軟件工程師。

但是他自己說(shuō)之前的學(xué)習(xí)經(jīng)歷并不是無(wú)用功,現(xiàn)在他已經(jīng)全面掌握了軟件工程的基本技能,無(wú)懼工作中的任何挑戰(zhàn),并且實(shí)現(xiàn)自我飛躍的那一天越來(lái)越近。

而且John小哥的經(jīng)歷,也不局限于程序員本身,多于更多人而言,也有值得參考之處。

他認(rèn)定了一個(gè)目標(biāo),然后制定計(jì)劃、勤奮付出,最后天道酬勤獲得回報(bào)。

John可能也是一個(gè)「一萬(wàn)小時(shí)定律」的擁躉,但就算按照他每天12小時(shí)、堅(jiān)持8個(gè)月(每月31天),他從一個(gè)網(wǎng)站前端到AWS技術(shù)專家,歷時(shí)也不過(guò)2976小時(shí)——遠(yuǎn)未到1萬(wàn)小時(shí)。

但就是這樣目標(biāo)堅(jiān)定的8個(gè)月,John從入門到獲得大廠認(rèn)可,百萬(wàn)年薪加持。

外媒調(diào)查亞馬遜軟件工程師平均年薪超過(guò)百萬(wàn)人民幣

這是我們?cè)贕itHub看到最勵(lì)志的故事,也是我們希望讓更多人看到的原因,并且由衷希望更多人因?yàn)檫@樣的經(jīng)歷和分享,創(chuàng)造屬于自己的故事。

坊間笑談太多的“從入門到放棄”,但也有人“從入門到百萬(wàn)年薪”。

生命不息,奮斗不止,Keep walking~

傳送門:

GitHub項(xiàng)目地址:
https://github.com/jwasham/coding-interview-university

電子記憶卡項(xiàng)目地址:
https://github.com/jwasham/computer-science-flash-cards

參考鏈接

個(gè)人博客:
https://www.freecodecamp.org/news/why-i-studied-full-time-for-8-months-for-a-google-interview-cc662ce9bb13/

責(zé)任編輯:xj

原文標(biāo)題:GitHub上最勵(lì)志的計(jì)算機(jī)自學(xué)教程

文章出處:【微信公眾號(hào):算法與數(shù)據(jù)結(jié)構(gòu)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 計(jì)算機(jī)
    +關(guān)注

    關(guān)注

    19

    文章

    7636

    瀏覽量

    90291
  • CS
    CS
    +關(guān)注

    關(guān)注

    0

    文章

    55

    瀏覽量

    24972
  • GitHub
    +關(guān)注

    關(guān)注

    3

    文章

    481

    瀏覽量

    17490

原文標(biāo)題:GitHub上最勵(lì)志的計(jì)算機(jī)自學(xué)教程

文章出處:【微信號(hào):TheAlgorithm,微信公眾號(hào):算法與數(shù)據(jù)結(jié)構(gòu)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    Blue Lion超級(jí)計(jì)算機(jī)將在NVIDIA Vera Rubin運(yùn)行

    德國(guó)萊布尼茨超算中心(LRZ)將迎來(lái)全新超級(jí)計(jì)算機(jī) Blue Lion,其算力比該中心現(xiàn)有的 SuperMUC-NG 高性能計(jì)算機(jī)提升了約 30 倍。這臺(tái)新的超級(jí)計(jì)算機(jī)將在 NVIDIA Vera Rubin 架構(gòu)
    的頭像 發(fā)表于 06-12 15:39 ?116次閱讀

    云端超級(jí)計(jì)算機(jī)使用教程

    云端超級(jí)計(jì)算機(jī)是一種基于云計(jì)算的高性能計(jì)算服務(wù),它將大量計(jì)算資源和存儲(chǔ)資源集中在一起,通過(guò)網(wǎng)絡(luò)向用戶提供按需的計(jì)算服務(wù)。下面,AI部落小編為
    的頭像 發(fā)表于 12-17 10:19 ?501次閱讀

    工業(yè)中使用哪種計(jì)算機(jī)?

    在工業(yè)環(huán)境中,工控機(jī)被廣泛使用。這些計(jì)算機(jī)的設(shè)計(jì)可承受極端溫度、灰塵和振動(dòng)等惡劣條件。它們比標(biāo)準(zhǔn)消費(fèi)類計(jì)算機(jī)更耐用、更可靠。工業(yè)計(jì)算機(jī)可控制機(jī)器、監(jiān)控流程并實(shí)時(shí)收集數(shù)據(jù)。其堅(jiān)固的結(jié)構(gòu)和專業(yè)功能
    的頭像 發(fā)表于 11-29 14:07 ?637次閱讀
    工業(yè)中使用哪種<b class='flag-5'>計(jì)算機(jī)</b>?

    量子計(jì)算機(jī)與普通計(jì)算機(jī)工作原理的區(qū)別

    超越世界最強(qiáng)大的超級(jí)計(jì)算機(jī),完成以前不可想象的任務(wù)!這意味著量子計(jì)算機(jī)可能會(huì)徹底改變我們的生活。 在本文中,我們將先了解普通計(jì)算機(jī)的工作原理,再深入探討量子
    的頭像 發(fā)表于 11-24 11:00 ?1320次閱讀
    量子<b class='flag-5'>計(jì)算機(jī)</b>與普通<b class='flag-5'>計(jì)算機(jī)</b>工作原理的區(qū)別

    工業(yè)計(jì)算機(jī)類型介紹

    工業(yè)領(lǐng)域沒(méi)有計(jì)算機(jī)的世界就像沒(méi)有管弦樂(lè)隊(duì)的交響樂(lè),缺乏實(shí)現(xiàn)最佳性能所需的和諧和精確度。計(jì)算機(jī)徹底改變了工業(yè)的運(yùn)作方式,將效率、準(zhǔn)確性和創(chuàng)新推向了新的高度。事實(shí),根據(jù)最近在印度進(jìn)行的一項(xiàng)研究
    的頭像 發(fā)表于 11-04 15:56 ?605次閱讀
    工業(yè)<b class='flag-5'>計(jì)算機(jī)</b>類型介紹

    計(jì)算機(jī)接口位于什么之間

    計(jì)算機(jī)接口是計(jì)算機(jī)硬件和軟件之間、計(jì)算機(jī)與外部設(shè)備之間以及計(jì)算機(jī)各部件之間傳輸數(shù)據(jù)、控制信息和狀態(tài)信息的硬件設(shè)備和軟件程序。它在計(jì)算機(jī)系統(tǒng)中
    的頭像 發(fā)表于 10-14 14:02 ?1120次閱讀

    計(jì)算機(jī)存儲(chǔ)系統(tǒng)的構(gòu)成

    計(jì)算機(jī)存儲(chǔ)系統(tǒng)是計(jì)算機(jī)中用于存放程序和數(shù)據(jù)的設(shè)備或部件的集合,它構(gòu)成了計(jì)算機(jī)信息處理的基礎(chǔ)。一個(gè)完整的計(jì)算機(jī)存儲(chǔ)系統(tǒng)通常包括多個(gè)層次的存儲(chǔ)器,從高速緩存(Cache)到主存儲(chǔ)器(Mai
    的頭像 發(fā)表于 09-26 15:25 ?2306次閱讀

    簡(jiǎn)述計(jì)算機(jī)總線的分類

    計(jì)算機(jī)總線作為計(jì)算機(jī)系統(tǒng)中連接各個(gè)功能部件的公共通信干線,其結(jié)構(gòu)和分類對(duì)于理解計(jì)算機(jī)硬件系統(tǒng)的工作原理至關(guān)重要。以下是對(duì)計(jì)算機(jī)總線結(jié)構(gòu)和分類的詳細(xì)闡述,內(nèi)容將涵蓋總線的基本概念、內(nèi)部結(jié)
    的頭像 發(fā)表于 08-26 16:23 ?4931次閱讀

    晶體管計(jì)算機(jī)和電子管計(jì)算機(jī)有什么區(qū)別

    晶體管計(jì)算機(jī)和電子管計(jì)算機(jī)作為計(jì)算機(jī)發(fā)展史上的兩個(gè)重要階段,它們?cè)诙鄠€(gè)方面存在顯著的區(qū)別。以下是對(duì)這兩類計(jì)算機(jī)在硬件、性能、應(yīng)用以及技術(shù)發(fā)展等方面區(qū)別的詳細(xì)闡述。
    的頭像 發(fā)表于 08-23 15:28 ?3417次閱讀

    晶體管計(jì)算機(jī)的誕生和特點(diǎn)

    晶體管計(jì)算機(jī)的誕生標(biāo)志著計(jì)算機(jī)技術(shù)的一個(gè)重要里程碑,它不僅推動(dòng)了計(jì)算機(jī)硬件的革新,還促進(jìn)了計(jì)算機(jī)軟件技術(shù)的發(fā)展。以下是對(duì)晶體管計(jì)算機(jī)誕生及其
    的頭像 發(fā)表于 08-23 15:06 ?4031次閱讀

    計(jì)算機(jī)系統(tǒng)的組成和功能

    計(jì)算機(jī)系統(tǒng)是一個(gè)復(fù)雜而龐大的概念,它涵蓋了計(jì)算機(jī)硬件、軟件以及它們之間相互作用的所有元素。為了全面而深入地探討計(jì)算機(jī)系統(tǒng),本文將從定義、組成、功能、發(fā)展歷程以及未來(lái)趨勢(shì)等方面進(jìn)行詳細(xì)闡述。
    的頭像 發(fā)表于 07-24 17:41 ?2227次閱讀

    DRAM在計(jì)算機(jī)中的應(yīng)用

    DRAM(Dynamic Random Access Memory,動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器)在計(jì)算機(jī)系統(tǒng)中扮演著至關(guān)重要的角色。它是一種半導(dǎo)體存儲(chǔ)器,用于存儲(chǔ)和快速訪問(wèn)數(shù)據(jù),是計(jì)算機(jī)主內(nèi)存的主要組成部分。以下是對(duì)DRAM在計(jì)算機(jī)中的
    的頭像 發(fā)表于 07-24 17:04 ?2726次閱讀

    什么是工業(yè)計(jì)算機(jī)(IPC)?

    工業(yè)電腦也稱為IPC,其組件專門設(shè)計(jì)用于工業(yè)工作環(huán)境。因此,工業(yè)計(jì)算機(jī)特別堅(jiān)固,基于強(qiáng)大的處理器,可以根據(jù)相應(yīng)的應(yīng)用進(jìn)行單獨(dú)調(diào)整。工業(yè)計(jì)算機(jī)的典型方面:耐惡劣環(huán)境(包括灰塵、水、濺水、寒冷、炎熱
    的頭像 發(fā)表于 06-24 18:01 ?1510次閱讀
    什么是工業(yè)<b class='flag-5'>計(jì)算機(jī)</b>(IPC)?

    計(jì)算機(jī)控制器的結(jié)構(gòu)和功能

    隨著信息技術(shù)的迅猛發(fā)展,計(jì)算機(jī)已經(jīng)深入我們生活的方方面面。而計(jì)算機(jī)控制器,作為計(jì)算機(jī)系統(tǒng)的核心部件之一,承擔(dān)著協(xié)調(diào)各部件工作、指揮整個(gè)計(jì)算機(jī)按程序運(yùn)行的重要任務(wù)。本文將詳細(xì)介紹
    的頭像 發(fā)表于 06-17 15:47 ?2802次閱讀

    工業(yè)控制計(jì)算機(jī)的特點(diǎn) 工業(yè)控制計(jì)算機(jī)的應(yīng)用領(lǐng)域

    工業(yè)控制計(jì)算機(jī)是一種專門為工業(yè)自動(dòng)化和控制系統(tǒng)設(shè)計(jì)的計(jì)算機(jī)。它具有高度的可靠性、穩(wěn)定性和實(shí)時(shí)性,能夠滿足工業(yè)生產(chǎn)過(guò)程中對(duì)控制精度和響應(yīng)速度的嚴(yán)格要求。 工業(yè)控制計(jì)算機(jī)的特點(diǎn) 高可靠性 :工業(yè)控制
    的頭像 發(fā)表于 06-16 11:30 ?2020次閱讀

    電子發(fā)燒友

    中國(guó)電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品