一、讀大學(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)力,卻不知如何運用。

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

如果說基礎(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ā)崗那么多,專家崗那么少的原因了。