如今的互聯網環境下,注重原理性知識學習的程序員愈來愈少,特別是在這種培訓機構大爆炸的環境下,在網上你會常常看到相似三個月從入門到精通高併發、分佈式的廣告,我相信培訓機構有這套技術的能力,可是我不相信一個初學者有這麼好的接收能力。甚至某個培訓機構的講師裏,有一個1997年出生的架構師,20歲出頭就當上了架構師,真的是後生可畏呀。在個人思惟裏,架構師不是學出來的,架構師是經過項目喂出來的。好了,咱們仍是言歸正傳吧。程序員
爲何要注重原理型知識呢?由於原理性知識是咱們的根,我列舉了三個例子,對這個觀點進行說明。算法
一、你懂設計模式,不管你是作系統架構設計仍是閱讀開源項目源碼,你會發現,最終他們都繞不開設計模式。設計模式
二、你懂數據結構和算法,在高併發這種分秒必爭、時間就是金錢的場景下,你知道List、Map 該如何取捨。微信
三、你懂網絡通訊的原理,在咱們作系統架構、問題排除時都會有很大的幫助。網絡
能夠這麼說,原理性知識決定了程序員的下限,原理性知識強的程序員,下限不會過低,相反,原理性知識不強的程序員,我相信上限也不會高到哪裏去。數據結構
碼農圈的碼農一直都有中年危機意識,哪怕是那些尚未入門的碼農,他們都知道程序員只能幹到35歲。我不去討論這個觀點的是與否,把這一切交給時間,等你到了35歲那一年,這個話題天然會有答案。大部分程序員都有中年危機意識,因此在剛入門的時候,會花較多的時間去學習。不少人會在這個地方出問題,看似花了不少時間在學習,可是沒有一點進步甚至相對來講在退步,爲何呢?架構
不少程序員包括我在內是這樣學習的,如今大數據這麼火,買本書、看個視頻學習一下。學了半個月一個月後,大數據太難了,學不動了,先放一下。咦,這個推薦系統好像頗有意思哎,又買本書學習一下。最後就在一個循環中,每一項技術都在學,每一項都是一個入門。看上去啥都會,真實作的時候,發現啥都不會,就是這麼的神奇。併發
這就是一個怪圈,不少程序員都會跳入的怪圈。對程序員這種技術型的工做來講,這是學習的大忌,由於技術行業知識廣相對知識深來講沒有優點,在公司專人作專事,須要的是技術深度。因此咱們每一個程序員須要打造本身的核心技術棧,你搞 Java Web 開發,那麼你在某一個方向上,好比在高併發、消息中間件或者分佈式架構比公司或者周圍的程序員有更深刻的學習研究,這會成爲你升職加薪或者跳槽的資本。數據結構和算法
在職場上有兩種員工,一種是任務型員工,一種是自我驅動型員工。任務型員工,領導安排什麼活,幹完就了事,歷來不會想着,我寫的這個功能有沒有優化的空間?爲了任務而任務。這種員工只能待在這個溫馨區,哪天溫馨區不要他了,估計很難找到安身之處。分佈式
自我驅動型員工偏偏相反,他對每出現的問題都會反問本身,這個問題出現的根本緣由在哪裏?爲何會出現這個緣由?我該如何避免再次出現這類問題?對於每個問題他都會找出最根本的緣由而且提供最好的解決辦法。
對於公司使用的每一項技術,他都會去了解技術背後的原理,這種技術的應用場景在哪裏?優缺點又是那些等等,對於自我驅動型員工來講,根源纔是他的最終答案。
自我驅動型員工更多的會帶着本身的思考去作業務,對技術刨根問底,追求原理的過程,會是一個快樂的過程,思考多了就會找到場景與原理的關聯關係。自我驅動型員工的成長比較迅速,在短期內會擁有本身的核心競爭力。
記筆記,寫博客是總結與分享的行爲,這不只是程序員,這是全部人都應該去作的一件事情。記筆記是對你過去的總結,把你學到的重要的知識記錄下來,方便你後面的查閱與重溫,老話說得好:好記性不如爛筆頭,記下來老是沒錯的。
寫博客是一種分享的過程,把你的知識經過文字的形式分享出來,說不定就幫助了不少人,這個過程是快樂的。寫博客也是對你知識體系查缺補漏的一種好辦法,在寫博客的道路上,會不斷的刷新你的認識。
打個小廣告,歡迎掃碼關注微信公衆號:「平頭哥的技術博文」,精彩推文不錯過,共同窗習,共同進步。