什么才是程序員的內(nèi)功心法?

一、讀大學(xué)不如上技校?

在大學(xué)時代,我一度有個想法,讀一個垃圾大學(xué)還不如讀技校!??!而且差點退學(xué),去讀技?!姨澪野至R了我一頓……

因為到了大三,除了背會了些基本概念,學(xué)校什么都沒教會。教點java、C++也都是基本語法。

選修的網(wǎng)頁設(shè)計課,報的人趨之若鶩,守著時間點搶名額。到最后,也就是做一個簡單的html頁面,連jquery都沒教會。

這樣的大學(xué)真的有用嗎???

耶魯大學(xué)校長:如果一名耶魯畢業(yè)生擁有某種很專業(yè)的技能,那就是我們教育的失敗……

我甚是不能理解。

畢業(yè)了,什么都沒學(xué)會,怎么找工作???準(zhǔn)備喝西北風(fēng)嗎???

隨著年齡的增長以及經(jīng)驗的增加,慢慢能理解這種教育的高深之處。

現(xiàn)在的大學(xué)教育其實是通識教育。所謂通識教育,就是讓你具有往各個方向發(fā)展的潛能。而不是帶著你向那個方向發(fā)展。

所以,在這個基礎(chǔ)上,大學(xué)會讓你具有自學(xué)JAVA的能力,而不會帶著你從java入門到精通。

而大學(xué)的愿景更為宏大,他培養(yǎng)的是根據(jù)你自己的愛好,能夠自學(xué)成才的精英,而不是像短期培訓(xùn)一樣,單純學(xué)會工具的使用。

而這個愿景是建立在每位大學(xué)生都能夠好好學(xué)習(xí)基礎(chǔ)知識,并且業(yè)余自學(xué)某項技能的基礎(chǔ)上的。

“再加把勁,等你上了大學(xué)就輕松了”

這是高中老師最大的謊言。如果你真的在大學(xué)里,吃喝玩樂,泡妞把妹,爽的不亦樂乎。那畢業(yè)時,大概率是要走培訓(xùn)班路線的。

大學(xué)不是技校!這就導(dǎo)致,你不自學(xué)就學(xué)不到實戰(zhàn)本領(lǐng),而實戰(zhàn)本領(lǐng)卻是公司招人的評價標(biāo)準(zhǔn),這也是培訓(xùn)班能長期活著的根本原因。

二、基礎(chǔ)知識的用處在哪里?

任何的理論知識,都是很難短期內(nèi)看到價值,尤其是在你剛?cè)胄械臅r候。

對于剛?cè)腴T編程的同學(xué),學(xué)的只是諸如語法怎么寫,IDE怎么用,諸如此類的基本工具的使用。

這時候的你,根本不可能用到任何的理論知識。

就像扎風(fēng)箏。初期,你在跟著別人把一個風(fēng)箏做出來的時候,根本不會考慮扎風(fēng)箏的基本原理此類的刻板知識。你只知道,我只要跟著別人做,就能做出來。

但是,等你熟練了以后,需要自己設(shè)計風(fēng)箏了,沒辦法仿了。這時候,這些基本原理就用得上了,你就需要知道扎風(fēng)箏需要遵循怎樣的設(shè)計原理,必須遵循怎樣的架構(gòu),這個風(fēng)箏才能飛起來、飛得更高。

代碼也是一樣的,初期學(xué)習(xí)的時候,都只是仿的過程,用到的網(wǎng)絡(luò)請求,也只是人家寫的一句代碼而已,記住就能實現(xiàn)網(wǎng)絡(luò)通信。

但是等你成為熟練工了以后, 你就需要理解它的內(nèi)部原理,這時候就需要了解網(wǎng)絡(luò)請求的機(jī)制,TCP UDP的區(qū)別,計算機(jī)網(wǎng)絡(luò)的五層協(xié)議。

操作系統(tǒng)、編譯原理有用嗎?

你編程的時候,根本用不到。因為操作系統(tǒng)都是現(xiàn)成的,你根本不可能再修改操作系統(tǒng),編程原理也一樣,98%的人不可能會接觸到編譯器。

但它的價值在哪呢?

基礎(chǔ)知識對程序員最大的價值是軟件思維能力的培養(yǎng)和軟件架構(gòu)意識的潛移默化。

很明顯的區(qū)別就是,兩個人同時學(xué)一套新框架,基礎(chǔ)扎實的同學(xué),對網(wǎng)絡(luò)協(xié)議、操作系統(tǒng)網(wǎng)絡(luò)部分處理機(jī)制熟悉,可以學(xué)得比對些部分沒有任何了解或了解很少的同學(xué),學(xué)的快很多,也透徹很多。

一般的框架設(shè)計,都是圍繞性能、復(fù)用性、高擴(kuò)展性開發(fā)的。

要做到這些,就必須對底層依賴深入了解,而這些都是中高級程序員必備的技能。

武俠小說中練武講究內(nèi)外兼修。徒有招式的功夫,沒有任何殺傷力。

而只有內(nèi)功的例子,就像無崖子傳授虛竹70年內(nèi)力,卻沒有傳授虛竹招式。導(dǎo)致虛竹空有一身內(nèi)力,卻不知如何運用。

file

有了內(nèi)功以后的練武,就像張無忌練乾坤大挪移,人家練了幾十年不成,而他只輕而易舉成練到第七層。

file

如果說基礎(chǔ)知識是內(nèi)功心法,而具體編程技能就是招式秘籍。只記得代碼怎么寫,不懂原理,甚難成為高手。而只懂基礎(chǔ)知識,不懂編程,就像虛竹空有內(nèi)力而不知如何運用。

唯有內(nèi)外兼修,才能成為絕世高手。

三、基礎(chǔ)知識在精不在多

所以,基礎(chǔ)知識的學(xué)習(xí),在你初級階段是看不到成效的,如果你想要靠學(xué)習(xí)基礎(chǔ)知識快速的找工作、升職加薪,是不現(xiàn)實的。

如果你還在上學(xué),建議老師上的課盡量好好上,不要上了四年,逃了四年。然后,業(yè)余自學(xué)某個方向的開發(fā)課程,自我提升。到校招時,將會非常有競爭力。

分享大家一個開源工程,這里搜集了計算機(jī)各方向的系列教程,進(jìn)階、實戰(zhàn)都有,內(nèi)容非常系統(tǒng),直接跟著學(xué)就行:https://github.com/harvic/CS-Learning-res

這些是在校期間老師所不會教的,剛好做為補(bǔ)充。在公眾號里回復(fù)資源下載即可。

對于已經(jīng)工作的同學(xué),就沒必要拿著厚厚的書死啃了,我建議,用到哪塊補(bǔ)哪塊的邏輯來學(xué)習(xí)。比如你在看網(wǎng)絡(luò)通信的代碼,那你可以看看大學(xué)里的計算機(jī)網(wǎng)絡(luò)的書,從宏觀層面了解網(wǎng)絡(luò)各個層級的功能,以及各種通信協(xié)議的區(qū)別。

基礎(chǔ)知識不是包治百病的良藥,但如果你有耐心去學(xué)習(xí),可能堅持兩三年后,在你已有的水平上,提升一兩個檔次毫不為過,升職加薪便是自然而然的事了。

當(dāng)然,堅持是最難的事,而且還是兩三年,談何容易。這也是為什么開發(fā)崗那么多,專家崗那么少的原因了。

本人所有文章皆為原創(chuàng),都與版權(quán)保護(hù)平臺有合作,著作權(quán)歸啟艦所有,未經(jīng)授權(quán),轉(zhuǎn)載必究!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容