我實際上是一個悲觀主義者,從開始成爲一名程序員的那一天開始,我就對本身的職業充滿着擔心。早期,我擔心的是我剛進入這一行,落後身邊從事這一行多年的人太多,跟他們比,我一開始就處於「不公平「的起跑線上;二是當我稍微深刻這行後,發現技術的道路充滿了歧路和死衚衕,稍不留神,就將落入再也跟不上技術進步的節奏,身邊也充斥着相似的示例。前端
好在在這條路上,我找到了一個克服擔心的良方:學習,堅持不懈的學習!程序員
人類最大的恐懼莫過於對未知的恐懼,而學習,是克服未知的一個最有效途徑。那做爲一個程序員,該如何才能作到堅持不懈的學習呢?我想主要有如下幾點:數據庫
1. 不抗拒變化,跟蹤變化編程
這裏說的變化,更多指的是技術的變化。新技術永遠層出不窮,若是你抗拒變化,或害怕變化,在內心優點上就落後了一大截。不少程序員的技術道路越走越窄,當一門新技術來臨時,他們從不去了解或研究,他們要麼認爲這是」換湯不換藥「的」技術幌子「,不值得去研究,要麼等着別人去研究,本身被動的接受別人的結論與成果。誠然,等待別人的研究結果也可行,可是,當身邊沒有人去研究呢?當研究的人不肯意提供給你他的研究結果呢?當別人的結論和結果是錯誤的呢?架構
固然,業界的新技術層出不窮,要去跟蹤每一項新技術的變化也是不可能的,個人建議是儘可能掌握基礎的技術,越是基礎的技術越是恆定。如計算機的體系架構,TCP,HTTP,各種編程範式,OOP,MVC 架構等,都是好多年來沒有發生過變化的技術了。許多新技術也是創建在他們上面,當你瞭解了這些基礎的技術,創建在他們之上的新技術也就能很快掌握了,並能迅速而準確地對這些新技術做出「價值判斷」。學習
技術的變化,其實也並不全是指業界的新技術來臨,更多指的是,超出本身當前技術能力外,主動研究和選擇的「新技術」 ,主動丟棄老的套路和技術,不固步自封。見過不少的程序員,他們寫了不少年的代碼了,技術能力還停留在數據庫層寫一個 Sql (存儲過程)+前端調用上。爲何如此呢?由於自開始寫代碼起,這樣簡單粗暴的方式就能夠解決他們面對的問題了。因此,當碰到新的問題,他們就繼續沿用着這種方式,而從不去看看業界是否是有更合適的方案來解決。久而久之,他們的技術能力也就不會有任何的變化,工做十年,只是將第一年所學的技術重複十年而已。基礎
2. 書宜雜讀,業宜精鑽程序
建築學家梁思成赴美留學,其父梁啓超告誡說:你該擠出一部分時間學些常識性東西,特別是文學或人文科學,稍稍多用點工夫就能有大的收穫。我深怕你因所學太專注,把多彩的生活弄得平平淡淡,生活過於單調,則生厭倦心理,厭倦一輩子即成苦惱之事……書宜雜讀,業宜精鑽。im
學習自己應該是一件很快樂的事情,但若是隻是一味地沉浸於專業學習之中,不免會將原本快樂的事情弄成平淡和單調,更可怕的是,由此產生厭倦心理,放棄學習。技術
因此,能夠儘可能跟隨本身的興趣,去更普遍地讀書。歷史,文學,心理學,哲學等等各方面的書均可以嘗試去讀,它們不只豐富你的知識,更能讓你在閱讀中受到感動、教育和啓迪。書讀的更多更普遍,知道的事也就多,思路更加開闊,解決問題的能力也就能高於常人,從而反過來幫助到你專業能力的提高。
3. 投資團隊,積極打造學習型團隊
現代社會,不免的一點就是我的必須置身於羣體之中,程序員更是如此。從羣體心理學的角度來看,在羣體裏,我的的才智被削弱,異質性被同質性所吞沒。由此,若是一個團隊不愛學習,那麼,其中的成員也很難堅持學習(個性和意志力特別強的人除外)。
若是你愛學習,請想辦法讓你的團隊也變得愛學習,這樣,你對學習的堅持將變得更加容易。或許你認爲創建學習氛圍,是團隊領導的事情,跟本身無關。領導固然能夠來作也須要來作這樣的事情,但要明白的一點,學習這事,若是變成從上向下,就不免「政治化」了,容易失去它自己的意義。而從下往上,更能創建輕鬆和諧的學習環境。