成為更優(yōu)秀程序員的關(guān)鍵:更多的閱讀
雖然我一直以來都很享受于讀書,但我總是很難擠出時(shí)間來閱讀。而當(dāng)真的空閑了,我通常會去閱讀小說、自傳,或一些怪癖但有趣的東西。我的 Kindle電子書閱讀器上到目前為止都是一些我最喜歡的技術(shù)。我仍然覺得不可思議的是,通過一個(gè)小小的設(shè)備我就能隨身攜帶一個(gè)圖書館,只要電池能夠續(xù)航 一段時(shí)間(例如一個(gè)月)。
但是我在技術(shù)上的閱讀真的很缺乏。當(dāng)然,我也讀過經(jīng)典名著,例如《Clean Code》,但僅此而已。我一直是一個(gè)“有什么問題就谷歌”的人。技術(shù)書籍太枯燥乏味了!所以通常我會避開閱讀教材參考書。
直到8個(gè)月前。在我計(jì)劃去周游時(shí)間一年的***幾星期工作中(我是從秘魯開往玻利維亞的公交車上寫的這篇文章),因?yàn)槿蝿?wù)基本上完成了,所以我有比平 時(shí)更多的空閑時(shí)間,于是我決定花時(shí)間去閱讀一些東西。我們公司有一個(gè)Safari在線圖書訂閱,這基本上允許我們***制地訪問所有已經(jīng)寫好的編程書籍,然 后一切都改變了。
事實(shí)證明,你從互聯(lián)網(wǎng)上得到的材料和著作的質(zhì)量并不怎么好。大多數(shù)作品只是孤立的一個(gè)片段“這里怎么做到X”。沒有故事線索能讓你思考怎么應(yīng)用到自 己身上讓自己變得更優(yōu)秀。在寫書的過程中,你必須得想好線索,必須通過編輯的審閱,并且請其他的技術(shù)人員仔細(xì)檢查,在作品問世之前盡可能地提升質(zhì)量。
這也證明,大多數(shù)書其實(shí)沒有那么無聊!當(dāng)然不可否認(rèn)也有一些濫竽充數(shù)的,但快速看一下評分和評價(jià)應(yīng)該會有有助于你去偽存真。書籍大多數(shù)還是挺引人入勝和有趣的。這是學(xué)習(xí)的一種迷人方式。
對我來說***的變化是,我是真覺得我因?yàn)槌槌鰰r(shí)間來閱讀,比方說,一個(gè)月吃透一本書,而變成了一個(gè)更好的開發(fā)人員。我讀過有關(guān)微服務(wù)的內(nèi)容,感覺現(xiàn) 在能夠更好地知道自己在談?wù)撌裁?,并且我知道我可以回去參考一下,每?dāng)我需要幫助的時(shí)候。通過花時(shí)間坐下來涉獵Clojure方面的教材,即使只是學(xué)習(xí)基 礎(chǔ)知識,也有助于我能夠更深入地談?wù)摵瘮?shù)式語言,以及Clojure用到哪里更好?!? Concurrency Models in 7 weeks》是一部很有啟發(fā)性的作品,特別是作為一個(gè)Java開發(fā)人員,想要用不同的方法來多線程編程(Java中固有的缺陷)的話。
當(dāng)然,大部分這些書籍中的信息可能在網(wǎng)上的某個(gè)地方也有。但是,除非你需要特定的信息,否則你就不會想到要去網(wǎng)上搜索和閱讀,也不會得到周邊的相關(guān) 信息。選擇看書可以將你從被動的學(xué)習(xí)方式(只在需要的時(shí)候去獲取信息)轉(zhuǎn)變?yōu)橹鲃拥膶W(xué)習(xí)方式(在閱讀的過程中,你會接收到各種不同的以前沒有見到過的信 息)。這非常重要,尤其是對職業(yè)發(fā)展。
最重要的職業(yè)工具是持續(xù)的學(xué)習(xí)。特別是我們這一行,因?yàn)橐磺锌偸窃诓粩嗟淖兓盒碌恼Z言,新的范式,新的框架總是不斷地冒頭。由于數(shù)量太多用膝蓋想想也不可能總是保持優(yōu)勢。你可以作為一個(gè)開發(fā)者奉獻(xiàn)自己,白天工作,然后晚上閱讀和編程,但是你依然不可能掌握所有。
幸運(yùn)的是沒有人期待那樣。然而,我常??吹介_發(fā)人員,特別是初級的開發(fā)人員,在面對令人氣餒的任務(wù)時(shí),反而恢復(fù)到一種被動的學(xué)習(xí)模式。他們不求學(xué)習(xí)新的東西,除非有人(例如團(tuán)隊(duì)的***)引入一些新的內(nèi)容。只在必要的時(shí)候?qū)W習(xí)。這是開發(fā)人員保持平庸的“好”方法。
學(xué)習(xí)呈現(xiàn)多種形式。重要的是要選擇你喜歡的主題,然后至少花上少許時(shí)間來鉆研。從現(xiàn)在開始:選擇一本教材,給自己設(shè)立本月閱讀目標(biāo)。不知道該讀什么書?那行,我給你推薦一下:
-
《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