成為更優秀程序員的關鍵:更多的閱讀
雖然我一直以來都很享受于讀書,但我總是很難擠出時間來閱讀。而當真的空閑了,我通常會去閱讀小說、自傳,或一些怪癖但有趣的東西。我的 Kindle電子書閱讀器上到目前為止都是一些我最喜歡的技術。我仍然覺得不可思議的是,通過一個小小的設備我就能隨身攜帶一個圖書館,只要電池能夠續航 一段時間(例如一個月)。
但是我在技術上的閱讀真的很缺乏。當然,我也讀過經典名著,例如《Clean Code》,但僅此而已。我一直是一個“有什么問題就谷歌”的人。技術書籍太枯燥乏味了!所以通常我會避開閱讀教材參考書。
直到8個月前。在我計劃去周游時間一年的***幾星期工作中(我是從秘魯開往玻利維亞的公交車上寫的這篇文章),因為任務基本上完成了,所以我有比平 時更多的空閑時間,于是我決定花時間去閱讀一些東西。我們公司有一個Safari在線圖書訂閱,這基本上允許我們***制地訪問所有已經寫好的編程書籍,然 后一切都改變了。
事實證明,你從互聯網上得到的材料和著作的質量并不怎么好。大多數作品只是孤立的一個片段“這里怎么做到X”。沒有故事線索能讓你思考怎么應用到自 己身上讓自己變得更優秀。在寫書的過程中,你必須得想好線索,必須通過編輯的審閱,并且請其他的技術人員仔細檢查,在作品問世之前盡可能地提升質量。
這也證明,大多數書其實沒有那么無聊!當然不可否認也有一些濫竽充數的,但快速看一下評分和評價應該會有有助于你去偽存真。書籍大多數還是挺引人入勝和有趣的。這是學習的一種迷人方式。
對我來說***的變化是,我是真覺得我因為抽出時間來閱讀,比方說,一個月吃透一本書,而變成了一個更好的開發人員。我讀過有關微服務的內容,感覺現 在能夠更好地知道自己在談論什么,并且我知道我可以回去參考一下,每當我需要幫助的時候。通過花時間坐下來涉獵Clojure方面的教材,即使只是學習基 礎知識,也有助于我能夠更深入地談論函數式語言,以及Clojure用到哪里更好。《7 Concurrency Models in 7 weeks》是一部很有啟發性的作品,特別是作為一個Java開發人員,想要用不同的方法來多線程編程(Java中固有的缺陷)的話。
當然,大部分這些書籍中的信息可能在網上的某個地方也有。但是,除非你需要特定的信息,否則你就不會想到要去網上搜索和閱讀,也不會得到周邊的相關 信息。選擇看書可以將你從被動的學習方式(只在需要的時候去獲取信息)轉變為主動的學習方式(在閱讀的過程中,你會接收到各種不同的以前沒有見到過的信 息)。這非常重要,尤其是對職業發展。
最重要的職業工具是持續的學習。特別是我們這一行,因為一切總是在不斷的變化:新的語言,新的范式,新的框架總是不斷地冒頭。由于數量太多用膝蓋想想也不可能總是保持優勢。你可以作為一個開發者奉獻自己,白天工作,然后晚上閱讀和編程,但是你依然不可能掌握所有。
幸運的是沒有人期待那樣。然而,我常常看到開發人員,特別是初級的開發人員,在面對令人氣餒的任務時,反而恢復到一種被動的學習模式。他們不求學習新的東西,除非有人(例如團隊的***)引入一些新的內容。只在必要的時候學習。這是開發人員保持平庸的“好”方法。
學習呈現多種形式。重要的是要選擇你喜歡的主題,然后至少花上少許時間來鉆研。從現在開始:選擇一本教材,給自己設立本月閱讀目標。不知道該讀什么書?那行,我給你推薦一下:
-
《Clean Code》 by Robert Cecil Martin
-
《7 Concurrency Models in 7 weeks》 by Paul Butcher
-
《Effective Java》 by Josh Bloch
-
《Building Microservices》 by Sam Newman
譯文鏈接:http://www.codeceo.com/article/be-better-programmer-reading.html
英文原文:The Key to Becoming a Better Developer: Read More