昨晚我夢(mèng)見(jiàn)自己在演奏廳演奏,臺(tái)下很多人赛惩,當(dāng)我敲下第一個(gè)音符的時(shí)候發(fā)現(xiàn)這鋼琴并不會(huì)發(fā)出聲音躏碳。奇怪的是這時(shí)候響起了澎湃的音樂(lè)搞旭,我作勢(shì)在賣力演奏散怖,我沒(méi)能裝完這場(chǎng)戲就醒了菇绵,畢竟我只會(huì)在很窄的音域看著音符像鍵盤(pán)一樣敲擊白鍵,對(duì)于我來(lái)說(shuō)這更像場(chǎng)噩夢(mèng)镇眷。
醒來(lái)后咬最,想起這場(chǎng)夢(mèng)的起因。
記得妹妹學(xué)鋼琴的時(shí)候欠动,偶爾會(huì)陪她一起上課永乌,知道會(huì)經(jīng)歷手型、坐姿具伍、識(shí)譜翅雏、節(jié)奏、技巧的學(xué)習(xí)人芽,以及什么如何連音望几、跳音、和弦萤厅、爬音橄抹、八度的彈奏靴迫,還有她正在學(xué)的樂(lè)理。這不是一天半個(gè)月的事情楼誓,剛剛開(kāi)始我好奇為什么就88個(gè)琴鍵玉锌,而完整的鋼琴學(xué)習(xí)過(guò)程,需要十年或者更久疟羹?當(dāng)時(shí)我叫小妹教我彈鋼琴的時(shí)候主守,手型、坐姿榄融、識(shí)譜丸逸、節(jié)奏幾分鐘就上手了,然后每天一小時(shí)剃袍,過(guò)幾天黄刚,學(xué)會(huì)了彈《月亮代表我的心》,自認(rèn)為還不錯(cuò)民效。天真的以為只要給我樂(lè)譜就能彈出來(lái)了憔维,可惜當(dāng)我百度到《不能說(shuō)的秘密》樂(lè)譜的時(shí)候,看著音符我就懵逼了畏邢,才領(lǐng)悟到原來(lái)蝌蚪文還有四六級(jí)业扒,節(jié)奏怎么都不對(duì)。
直到有天我知道有門(mén)課叫做樂(lè)理舒萎,樂(lè)譜不是1234567這樣就完了程储,《不能說(shuō)的秘密》是我看不懂樂(lè)譜,理解錯(cuò)誤臂寝,更不要說(shuō)彈奏出來(lái)了章鲤。再到后來(lái)我還知道了視唱練耳,也終于知道咆贬,有門(mén)課程叫做“內(nèi)功”败徊,十幾年的事情原來(lái)是在修煉“內(nèi)功”。
學(xué)鋼琴的故事說(shuō)完了掏缎,然而新的篇章從昨晚的夢(mèng)說(shuō)起皱蹦,為什么我不能在臺(tái)上演奏像樣的曲子,細(xì)思極恐眷蜈,原來(lái)我把鋼琴琴鍵看成是API沪哺,看一遍“文檔”就開(kāi)始彈了。
API: 計(jì)算機(jī)編程領(lǐng)域術(shù)語(yǔ):應(yīng)用編程接口酌儒,其主要目的是讓軟件開(kāi)發(fā)人員得以調(diào)用一組功能辜妓,而無(wú)須考慮其底層的源代碼為何、或理解其內(nèi)部工作機(jī)制的細(xì)節(jié)。
想回我現(xiàn)在作為大三軟件工程學(xué)生嫌拣,掙扎著柔袁,止步不前的編程能力,到現(xiàn)在會(huì)用JAVA API做個(gè)動(dòng)態(tài)網(wǎng)頁(yè)异逐,拼裝機(jī)器人捶索,以為JAVA jdk可以解決一切,當(dāng)我遇到新型框架灰瞻,我甚至看不明白大師的代碼原理腥例,為什么要這樣設(shè)置,到我和別人說(shuō)我學(xué)完AOP之后酝润,別人問(wèn)我這樣有什么好處燎竖,舉個(gè)例子,我沒(méi)答道他認(rèn)為滿意的答案要销,現(xiàn)在到處亂撞构回,越學(xué)越?jīng)]信心。之前還寫(xiě)了《外面的世界期望我們軟件系的應(yīng)屆生能做什么》疏咐,寫(xiě)著寫(xiě)著我自己都不明白纤掸,刪稿,請(qǐng)讀者留言他們的看法浑塞。
現(xiàn)在有點(diǎn)明白了借跪,一門(mén)語(yǔ)言要了解它的語(yǔ)法然后干增刪改查的活需要很久嗎?但是大廠并不需要這樣的酌壕,培訓(xùn)班一大堆掏愁,為什么要到大學(xué)里面高價(jià)找呢,他們招人要求對(duì)應(yīng)方面基礎(chǔ)扎實(shí)卵牍,計(jì)算機(jī)基礎(chǔ)不扎實(shí)果港,遇到編譯器級(jí)別問(wèn)題就會(huì)束手無(wú)策,做不出千萬(wàn)用戶級(jí)別的應(yīng)用辽慕。就像學(xué)鋼琴那樣京腥,識(shí)譜到彈奏才兩三天,然而沒(méi)有扎實(shí)的基礎(chǔ)溅蛉,是上不了臺(tái)面的。
那么他宛,基礎(chǔ)是什么船侧?怎么定義?需要會(huì)什么厅各?
- 這里要放三本書(shū)出來(lái)
- 《CSAPP》 推薦書(shū)評(píng)
- 《CLRS》
- 《SICP》
引用知乎孫天齊作者:孫天齊的答案
鏈接:https://www.zhihu.com/question/26157282/answer/32455092
CSAPP 《深入理解計(jì)算機(jī)系統(tǒng)》
這是 CMU 的“計(jì)算機(jī)科學(xué)導(dǎo)論”的教材镜撩。是計(jì)算機(jī)系統(tǒng)和操作系統(tǒng)入門(mén)。(這門(mén)課要求有編程基礎(chǔ))
SICP 《計(jì)算機(jī)程序的構(gòu)造和解釋》
這是 MIT 的6.001課程的教材。是編程語(yǔ)言入門(mén)袁梗。(這門(mén)課在好幾年前就改成Python了)
CLRS 《算法導(dǎo)論》
這是 MIT 的6.006課程的教材宜鸯。是算法分析入門(mén)。
CSAPP 《深入理解計(jì)算機(jī)系統(tǒng)》
這是 CMU 的“計(jì)算機(jī)科學(xué)導(dǎo)論”的教材遮怜。是計(jì)算機(jī)系統(tǒng)和操作系統(tǒng)入門(mén)淋袖。(這門(mén)課要求有編程基礎(chǔ))
其中的《CSAPP》,這里說(shuō)的是第二版锯梁,在大二即碗,我被多人提醒要認(rèn)真看去領(lǐng)悟這本書(shū),如何的重要陌凳,但是鑒于這么書(shū)有A4紙那么大剥懒,一共700頁(yè),買回來(lái)合敦,寫(xiě)了: 2015.10.31初橘,放在書(shū)架上擺著,一直沒(méi)翻過(guò)充岛。
直到大三開(kāi)始學(xué)習(xí)并發(fā)壁却,學(xué)習(xí)優(yōu)化程序,發(fā)現(xiàn)自己無(wú)從下手裸准,才明白自己離大廠的“需求”越來(lái)越遠(yuǎn)了展东,連快速排序都要去百度才能寫(xiě)出來(lái),驚駭當(dāng)年算法學(xué)的是什么鬼炒俱,都送回去給老師了盐肃。我在學(xué)計(jì)算機(jī)一直懷著使用主義,但是卻發(fā)現(xiàn)自己是急于求成权悟,一直抱著碰到了再去仔細(xì)研究好了的態(tài)度砸王,能做個(gè)像樣的Demo就好了。然而周四做計(jì)算機(jī)組成原理作業(yè)的時(shí)候峦阁,有關(guān)于VM局部性的問(wèn)題谦铃,打開(kāi)老師的課件,又翻閱了一下教材榔昔,直呼“計(jì)組難驹闰,難于上青天”。想起我書(shū)架上有本CSAPP撒会,看了一下目錄嘹朗,試著打開(kāi)第六章《存儲(chǔ)器層次結(jié)構(gòu)》,里面圍繞著局部性诵肛,用編程的角度屹培,主要詳細(xì)解釋了高速緩存(cache)的工作方式,以及利用局部性使得cache達(dá)到最好效果的方法。不僅使我明白VM褪秀,還上升到操作系統(tǒng)層面蓄诽,更重要的是,我找到優(yōu)化程序性能的方法媒吗,雖然只是皮毛仑氛。做完作業(yè)的晚上,我通宵看這本書(shū)蝴猪,看得欲罷不能调衰。三點(diǎn)多鐘,爬上床自阱,還在思辨嚎莉,我感覺(jué)伸手就能碰到Linux內(nèi)核,再過(guò)一晚上沛豌,我看到第三章趋箩,一學(xué)期沒(méi)想學(xué)的匯編,這本書(shū)僅僅100多頁(yè)加派,對(duì)匯編語(yǔ)言語(yǔ)法和使用叫确,結(jié)合大量例子來(lái)解讀產(chǎn)生的匯編代碼,通讀完芍锦,我寫(xiě)下第一個(gè)匯編程序竹勉。再看到第五章,優(yōu)化程序性能娄琉,這章把能夠用到的所有技巧的原理全部講解得清清楚楚次乓,這不是我一直找的內(nèi)功嗎?
我開(kāi)始回想起某位在支付寶國(guó)際事業(yè)部實(shí)習(xí)孽水,參與海外直購(gòu)項(xiàng)目開(kāi)發(fā)大神的話票腰,他在面試支付寶、大眾點(diǎn)評(píng)等大廠時(shí)女气,涉及比較難的問(wèn)題杏慰,基本都可以在CSAPP找到。以前覺(jué)得這句話很玄炼鞠,現(xiàn)在我覺(jué)得這本書(shū)很玄缘滥。我明白那些大廠為什么注重底層的東西,明明一般開(kāi)發(fā)都用不到簇搅,還狠狠的抓住面試者不放完域,這就相當(dāng)于鋼琴中的樂(lè)理,要想即興伴奏和演奏瘩将,最重要的是要具有較高的樂(lè)理知識(shí)和視唱練耳水平,要能真正搞懂自己在彈的是什么東西。同樣姿现,要做出真正可用的工具肠仪,成為真正的PPT,最重要需要深入理解計(jì)算機(jī)底層以及算法备典,明白自己的代碼怎樣操控CPU异旧,怎樣利用系統(tǒng)資源。這里引用前輩的訓(xùn)話提佣,等你學(xué)完了上述幾本書(shū)后吮蛹,學(xué)什么框架都會(huì)很快的了,框架的學(xué)習(xí)要點(diǎn)不在于用拌屏,在于明白作者的思想潮针,為什么要這樣設(shè)計(jì),然后你就可以用框架解決很多問(wèn)題倚喂,以及會(huì)知道哪些問(wèn)題框架解決不了要自己上每篷。的確,這才是大廠需要的人才端圈。
現(xiàn)在明白了大廠到底需要怎樣的人焦读,也明白如何去做。
編程不能飲鴆止渴舱权,成為PPT需要很長(zhǎng)的路矗晃。
- 現(xiàn)在想起,還好那天我彈奏的是一架沒(méi)有聲音的鋼琴宴倍,還好那天我做的數(shù)據(jù)庫(kù)優(yōu)化還沒(méi)到百萬(wàn)級(jí)別张症,還好沒(méi)上線,我啊楚,還有一年時(shí)間去練習(xí)吠冤、實(shí)踐。