在大學時代,我一度有個想法,讀一個垃圾大學還不如讀技校!!!而且差點退學,去讀技校……幸虧我爸罵了我一頓……
因為到了大三,除了背會了些基本概念,學校什麼都沒教會。教點java、C++也都是基本語法。
選修的網頁設計課,報的人趨之若鶩,守著時間點搶名額。到最後,也就是做一個簡單的html頁面,連jquery都沒教會。
這樣的大學真的有用嗎???
耶魯大學校長:如果一名耶魯畢業生擁有某種很專業的技能,那就是我們教育的失敗……
我甚是不能理解。
畢業了,什麼都沒學會,怎麼找工作???準備喝西北風嗎???
隨著年齡的增長以及經驗的增加,慢慢能理解這種教育的高深之處。
現在的大學教育其實是通識教育。所謂通識教育,就是讓你具有往各個方向發展的潛能。而不是帶著你向那個方向發展。
所以,在這個基礎上,大學會讓你具有自學JAVA的能力,而不會帶著你從java入門到精通。
而大學的願景更為宏大,他培養的是根據你自己的愛好,能夠自學成才的精英,而不是像短期培訓一樣,單純學會工具的使用。
而這個願景是建立在每位大學生都能夠好好學習基礎知識,並且業餘自學某項技能的基礎上的。
「再加把勁,等你上了大學就輕鬆了」
這是高中老師最大的謊言。如果你真的在大學裡,吃喝玩樂,泡妞把妹,爽的不亦樂乎。那畢業時,大概率是要走培訓班路線的。
大學不是技校!這就導致,你不自學就學不到實戰本領,而實戰本領卻是公司招人的評價標準,這也是培訓班能長期活著的根本原因。
任何的理論知識,都是很難短期內看到價值,尤其是在你剛入行的時候。
對於剛入門程式設計的同學,學的只是諸如語法怎麼寫,IDE怎麼用,諸如此類的基本工具的使用。
這時候的你,根本不可能用到任何的理論知識。
就像扎風箏。初期,你在跟著別人把一個風箏做出來的時候,根本不會考慮扎風箏的基本原理此類的刻板知識。你只知道,我只要跟著別人做,就能做出來。
但是,等你熟練了以後,需要自己設計風箏了,沒辦法仿了。這時候,這些基本原理就用得上了,你就需要知道扎風箏需要遵循怎樣的設計原理,必須遵循怎樣的架構,這個風箏才能飛起來、飛得更高。
程式碼也是一樣的,初期學習的時候,都只是仿的過程,用到的網路請求,也只是人家寫的一句程式碼而已,記住就能實現網路通訊。
但是等你成為熟練工了以後, 你就需要理解它的內部原理,這時候就需要了解網路請求的機制,TCP UDP的區別,計算機網路的五層協定。
作業系統、編譯原理有用嗎?
你程式設計的時候,根本用不到。因為作業系統都是現成的,你根本不可能再修改作業系統,程式設計原理也一樣,98%的人不可能會接觸到編譯器。
但它的價值在哪呢?
基礎知識對程式設計師最大的價值是軟體思維能力的培養和軟體架構意識的潛移默化。
很明顯的區別就是,兩個人同時學一套新框架,基礎紮實的同學,對網路協定、作業系統網路部分處理機制熟悉,可以學得比對些部分沒有任何瞭解或瞭解很少的同學,學的快很多,也透徹很多。
一般的框架設計,都是圍繞效能、複用性、高擴充套件性開發的。
要做到這些,就必須對底層依賴深入瞭解,而這些都是中高階程式設計師必備的技能。
武俠小說中練武講究內外兼修。徒有招式的功夫,沒有任何殺傷力。
而只有內功的例子,就像無崖子傳授虛竹70年內力,卻沒有傳授虛竹招式。導致虛竹空有一身內力,卻不知如何運用。
有了內功以後的練武,就像張無忌練乾坤大挪移,人家練了幾十年不成,而他只輕而易舉成練到第七層。
如果說基礎知識是內功心法,而具體程式設計技能就是招式祕籍。只記得程式碼怎麼寫,不懂原理,甚難成為高手。而只懂基礎知識,不懂程式設計,就像虛竹空有內力而不知如何運用。
唯有內外兼修,才能成為絕世高手。
所以,基礎知識的學習,在你初級階段是看不到成效的,如果你想要靠學習基礎知識快速的找工作、升職加薪,是不現實的。
如果你還在上學,建議老師上的課儘量好好上,不要上了四年,逃了四年。然後,業餘自學某個方向的開發課程,自我提升。到校招時,將會非常有競爭力。
這些是在校期間老師所不會教的,剛好做為補充。在公眾號裡回覆資源下載即可。
對於已經工作的同學,就沒必要拿著厚厚的書死啃了,我建議,用到哪塊補哪塊的邏輯來學習。比如你在看網路通訊的程式碼,那你可以看看大學裡的計算機網路的書,從宏觀層面瞭解網路各個層級的功能,以及各種通訊協定的區別。
基礎知識不是包治百病的良藥,但如果你有耐心去學習,可能堅持兩三年後,在你已有的水平上,提升一兩個檔次毫不為過,升職加薪便是自然而然的事了。
當然,堅持是最難的事,而且還是兩三年,談何容易。這也是為什麼開發崗那麼多,專家崗那麼少的原因了。
我是啟艦,vivo研發專家、專案主管、前阿里人、出過書、創過業、八年工作經驗的大廠程式設計師。
聽我嘮,少走彎路,程式人生更簡單。
如果有幸能幫到你,請幫我點個【贊】,給個關注,如果能順帶評論給個鼓勵,將不勝感激。