技術成長經驗分享
一、如何制定自己的成長計劃
1.確立自己的目標。
技術有如下發展方向:
首席架構師
技術專家
技術總監
技術經理
敏捷教練
測試
運維
轉型:業務、銷售、產品
轉行:徹底離開IT行業。
首先,要確定自己的發展方向,堅定是向技術的方向發展並堅持走下去。
2.培養興趣
技術學習是一條漫長而艱辛的道路,如果沒有足夠的興趣,是很難堅持下去的,也是很難將技術做到極致的,所以要努力培養自己在技術上的興趣。
3.合理規劃自己的成長週期。
架構師成長不是一蹴而就的,一般需要 5-10年,並需要豐富的技術積累和專案經驗,所以給自己制定一個合理的成長週期是很重要的,切忌急於求成、拔苗助長,基礎積累得越多,架構師這條路就走得越遠。
4.每年制定自己的年度成長計劃,階段性地成長。
初期,夯實計算機基礎(資料結構及演算法、計算機網路、作業系統、編譯原理)、語言基礎(java、c、c++、js、python、go)、資料庫。
然後,提高設計能力(主流框架、設計模式、UML、軟體設計過程、分析能力、邏輯思維能力)。
再次,提高架構能力(主流架構、技術選型、架構演進、邏輯思維能力、分析能力、溝通能力、管理能力)。
大型專案架構經驗也是非常重要,多多研讀大型專案的架構,並努力給自己創造大型專案的實踐機會。
5.堅持,每天哪怕進步一點點,堅持下去就是最好的。
6.平時多瀏覽技術網站:CSDN、部落格園、SegmentFault、開源中國、W3School、51CTO、ChinaUnix、伯樂線上、ITEye、開發者頭條、GitChat。
7.關注一些技術公眾號。
8.多關注一下主流技術和新技術的動態。
二、如何看待新技術
作為技術愛好者,要時刻關注新技術。
對於新技術,著重關注以下幾點:
新技術出現的原因?
新技術解決當下什麼痛點?
新技術帶來了什麼變化,是否帶來了革命性的變化?
新技術底層實現機制是什麼?
不做新技術的盲目追隨者。新技術總是技術牛人創造出來,供大家使用,好處是解決了我們的痛點,提高了我們的效率,但是扼殺了我們的創造力。
立志做新技術的創造者。不一定能實現,但要向這個方向去努力。
有沒有想過自己寫一個作業系統?哪怕僅具備最基本的功能。
有沒有想過自己寫一個數據庫?哪怕是一個最簡單的資料庫。
有沒有想過自己發明一種語言?哪怕僅支援一兩個語法。
有沒有想過對當前使用的主流技術進行改造?
三、選擇什麼樣的書籍
看書,還是要選擇經典的書籍,用大師的思維方式去思考。選擇經典,用規範的方法去解決問題。
書籍推薦:
《java程式設計思想》
《java核心技術 卷I / 卷II》
《effective java》
《深入理解java虛擬機器》
《演算法》
《演算法導論》
《TCP/IP詳解》
《人月神話》
《人件》
《程式碼大全》
《程式設計珠璣》
《大象Think in UML》
《設計模式:可複用面向物件軟體的基礎》
《Unix環境高階程式設計》
《Unix網路程式設計》
《Spring in Action》
《Spring技術內幕》
《高效能Mysql》
《PostgreSQL修煉之道》
《深入分析java web技術內幕》
《大型分散式網站架構設計與實踐》
《分散式服務框架原理與實踐》
《Spring cloud 微服務實戰》
《大型網站技術架構》
《億級流量網站架構核心技術》
中介軟體書籍:PostgreSQL、Activiti、Redis、Dubbo、zookeeper、RabbitMQ、kafka
伺服器書籍:Linux、Nginx、Jboss、Jetty
《卓有成效的管理者》
四、看書
書有很多種,有的書適合精讀,有的書適合泛讀,有的書適合做工具書。
每年,給自己制定一個讀書計劃,和自己的成長計劃相結合,選擇相對應的知識領域去學習。
看書,我建議看紙質書,因為可以在書上劃重點,記錄筆記,越難懂的書越要記筆記。
看書先看目錄,首先仔細研究一下目錄,瞭解本書的主要內容,每個章節所敘述的內容、章節下的分類目錄、各章節之間的關係。作者在寫書時,在劃分章節上一定是經過一番思考的,通過章節劃分可以對知識點做一個梳理,先有個印象,對我們瞭解該書的知識體系是非常重要的。
看書過程中,每看完1-2個章節,是回顧總結的最佳時間,這時候回顧,大腦中還有大部分記憶,能夠快速的回顧一遍並加以總結,此時可以做總結筆記,等全書看完後,再對此處的筆記進行整理修改。
比較難懂的書,要想完全看懂並融會貫通,是需要多遍閱讀才能做到的,有時需要看3-4遍,採用好的看書方式能夠減少看書的遍數,節約時間。
看過的書不要丟,重點和筆記都是寶貴的財富。
五、查詢資料
當我們查詢資料時,搜尋引擎是最快的方式,比如百度、Google、Bing,多嘗試幾種搜尋引擎,有時,一個上搜索不到,換一個搜尋引擎,也許就搜尋到了。還有一些情況,當你用中文搜尋不到時,可以嘗試用英文搜尋試試,說不定就能有所意外的收穫。
官網能夠提供權威的資料,是獲取資料的比較好的渠道。
從官網上個下載的官方文件,是查詢問題時的第一手資料。
當你用以上的方法,都不能解決問題時,可以嘗試看看原始碼,從原始碼中說不定就能找到解決問題的辦法。
六、整理技術日誌和技術資料
我們在日常工作中,常常會有許多資料需要儲存,並希望隨手可得,比如開發環境資訊、系統開發指南;開發工具幫助文件、快捷鍵;各類問題解決方案、各類技術的優秀資料彙總;工具箱、雜貨鋪等等,這些都需要整理好,並能夠很方便地查詢。同事有用印象筆記,或有道雲筆記,都是非常不錯的選擇。我現在用的是Typora,可以結構化顯示本地目錄下的檔案,相對比較方便。
七、編寫文件的一些心得
技術人員,大多數不太喜歡寫文件,但是工作需要,還是有許多時候需要寫文件。在寫文件方面,分享一下我的心得。
當寫一個文件時,先列出提綱,比如我想寫5方面內容,那我就先把5先寫上。
然後,從自己最熟悉的章節開始填充。
對於其他章節,可以是零星的思維碎片,然後逐漸補充完善。
對於無從下手的章節,可以多找一些參考資料,比如百度或一些文件模板。或者暫時放在那裡不寫,等靈感來了再寫。
注重文件質量:
文件要保證格式一致、字型一致、標題風格一致。
語法、語句要通順。
不要有錯別字。
用書面用語,不要用口頭語:比如“機器掛了”應該說“宕機”,“敲入命令列”應該說“鍵入命令列”。
文件風格能夠從一個側面反映出人的個人修養。
七、提高英語閱讀能力
技術書籍和資料大多是英文,官方網站也都是英文,所以不要間斷英語的學習,提高自己的英語閱讀能力。
嘗試去讀一本英文技術書籍,開始可能會很慢,堅持讀完,英語閱讀能力就會有很大的提高。
一本英文新書在國外出版到暢銷,差不多半年的時間,然後被國內的出版商關注並引入,請人翻譯並出版,差不多又至少半年多時間,到國內的技術愛好者手中,距離新書上市已經一年多的時間,所以我們從時間上已經落後歐美一年多。另一方面,譯本的水平也取決於譯者對書的理解和翻譯的水平,如果僅能反映出原著的百分之八十,而讀者又僅理解譯本的百分之八十,實際上,僅僅理解了原著的百分之六十的內容,所以,建議大家嘗試著看英文原版的原著作品。
八、提高編碼速度的心得
鍛鍊手指的靈活度能夠提高編碼的速度。
我們手的幾個手指的靈活度是不同的,我們的編碼速度取決於我最慢的那個手指。
大腦的思維速度和手的打字速度是不同的,多數情況下,大腦的思維速度是比手要快的,所以如果手的速度跟不上大腦的速度,就會拖累編碼的速度。
編碼速度的提升反過來又可以促進思維速度的提升。
經驗證明,編碼速度快的程式設計師的輸出可以是編碼慢的程式設計師的3-10倍。
九、努力給自己創造實踐的機會
多利用業餘的時間去實踐,比如看一本書時,可以把書上的程式碼編寫一遍。
工作中盡力多承擔一些工作,多創造一些鍛鍊的機會,平時,可以動手開發一些輔助工具,比如測試工具等。
可以嘗試著找一些開源專案,加入開源團隊,增加自己的專案經歷。
多參加社群活動,拓寬自己的視野。
十、勤奮是技術進步的鑰匙
天才畢竟是少數,勤能補拙,勤奮能彌補我們身上其他的不足。
積極去工作。
積極去學習。
積極去實踐。
只要我們勤奮努力,堅持下去,定能在技術的道路上不斷進步、茁壯成長。