5本書可以幫你變成更優秀的程序員

作者:程序員小躍
slogan:當你的才華還無法撐起你的野心時,那應該靜下心來好好學習

繼續上週我們瞭解了《這5個編程名言還請您收好》,不知道大家看的怎麼樣呢。我反正對裏面的內容印象比較深刻,尤其是在文末我也表達了我的觀點,對於DRY原則,最近看的多,所以感受的也最多。

當然,編程是對我們實踐能力的一個考驗,通過翻譯這個操作,讓我們瞭解歪果仁的想法,也是一種進步,畢竟也和國際接軌,同外國友人進行了深度的接觸的另一種方式。

從上一篇文末也說了,有一個彩蛋,其實也說不上是彩蛋,就是出了一篇姐妹篇,《5 Books That Can Help You Become a Better Programmer》,對於愛讀書的我來說更是一種享受。但是這篇翻譯,也是扒了一層皮,限於我的能力有限,翻譯的可能不是很準確,所以僅供大家參考,有條件的可以去看下原文噢。

5本書可以幫你成爲更優秀的程序員

當你是一名想要成長的程序員新手時,你該讀什麼

作者:Matthew MacDonald

時間:2019.8.9

我喜歡書籍。紙上墨跡的悠閒節奏,它以整潔、有序的頁面展示方式。

但是技術書籍有一些嚴重的問題。它們很多時候都已經過時了。它們沒有交互性,因此沒有辦法展示實際的概念(或讓你體驗這些概念)。它們具有較低的帶寬–例如,長代碼示例需要分解爲一些塊,或者閱讀它們是一件繁瑣的事情。而且甚至不能讓我開始瞭解黑白截屏。

但是一些科技書籍克服了困難,並在多年內保持着有用的地位。這些寶藏不教最新的編程框架。相反,它們照亮了軟件開發哲學。它們教授優秀的代碼和優秀的設計。它們告訴你在軟件行業工作的感覺,並向你展示成爲一名優秀的程序員意味着什麼。在這篇文章裏,你將見到我最喜歡的五個例子。

1. The Pragmatic Programmer

中文名《程序員修煉之道-從小工到專家》,剛好我也在看這本書

一本編程相關的書籍再起第一版發行20年後還能教授嗎?如果可以的話,那它對編寫好的代碼藝術具有永恆的智慧。

《The Pragmatic Programmer》是一本可以激發程序員更多思考的書,深入瞭解他們如何應對挑戰,與他人合作,並變得更優秀的程序員。它解釋瞭如何對付爛軟件–每個大型項目的代碼都變得越來越混亂的強大的力量。它給出了一個關於單元測試和重構的基本介紹,以及有關調試的合理建議(不要恐慌!),這可能會幫助您解決問題而又不踩太大的坑。並且,這本書還幫助你使用一些很酷的編程術語,包括我最喜歡的術語之一:正交性。

這本書大約有300頁,雖然不是很長,但是卻很密集。萬幸的是,你不需要按順序去閱讀。任何時候,只要你打開書本並翻到其中一頁,你就能很愉快地進行閱讀。

備選:每個人都喜歡推薦一些經過時間考驗的關於代碼哲學的書籍(或者至少在他們的辦公桌上放着)在這本書旁邊。其中一本就是比爾蓋茨睡前最喜歡的書籍《Code Complete》。像這本書一樣,它包含了寶貴的建議,但同時也更長,更枯燥,閱讀起來像一本教科書。另一本高質量書籍,《Clean Code》,涵蓋了相同的領域,儘管它開始顯示出其時代的跡象以及對Java的格外關注,但還是絕對值得一讀。

2. Code:The Hidden Language of Computer Hardware and Software

如果讓你寫一本對程序員或者對編程感興趣的外行人看,你會怎麼辦?《Code》就是那本書,一本對計算機如何進行野心勃勃的探索。

不親自查看這本書,很難解釋清楚。我們都讀過關於計算機的工作方式,通常帶有一長串的1和0的圖表。但是它們不喜歡這本書。這本書是對以Morse電碼開始的計算深入理解並最終獲得CPU原理圖。它閱讀起來像一本小說,儘管其中有非常詳細的說明。

這本書的中心主題是電子中信息的編碼方式。通常,這本書似乎有很多關於有趣的歷史課一樣,僅僅把你拉回並向你展示自己已經一直在學習現在計算機。它是由編碼傳奇人物Charles Petzold,最早向程序員解釋Windows API的開創者之一(當時的口頭禪是“在Petzold中尋找”)。幾十年後,他給了在WPF中對3D編程進行了類似的詳細探索-引人入勝但有點繁瑣的技術,幾乎每個人都忽略了。

底線?如果你對電子設備內部發生的事情感到好奇,爲什麼代碼是這樣的,這本書將是一本很好的闡明奧祕的書。

3. Don’t Make Me Think

這本一本關於計算機編程的真相的書。每個程序員都會最終設計或實現用戶界面,不管他們想不想,這都是遲早的事。儘管程序員也是一個用戶,即使一個看起來簡單的邏輯,可界面的簡單任務,你第一次嘗試的機率都不會很好。

設計問題就像冰山一樣–在頂部看起來很小,但是下面卻出乎意料的大。很多程序員討厭設計,因爲這需要他們使用除了編程之外的其他技能,並且暴露錯誤的決定是一個很不舒服的方式。這就是爲什麼這本書出現的原因。

這本書就是在探索一個好的設計。它雖然都是關於網站的設計,但其建議適用於任何類型的軟件或者任何想造就的人。真正的把戲是這本書可以深入挖掘你已經擁有的知識,並向你展示如何付諸實踐。碰巧的是,學會向可用性專家一樣思考非常有趣。實際上,很多樂趣,這本書裏都有列出噢。

4. Coders At Work

談論代碼很重要,但與編程人員交流也是必不可少。在這本書背後,蒐集了15位出色程序員的訪談。

大多數程序員可以分享一些有用的建議。但是這本書放在桌上,帶你看JavaScript的創建者Brendan Eich,Unix的設計師Ken Thompson。這就像你正在和地球上最成功的程序員進行非正式訪談一樣。你將瞭解它們如何應對挑戰,如何解決問題,如何編寫代碼以及如何處理未知未來。看到他們不同的方法也很有趣–有時候也很戲劇性。

像Dan Ingalls談論他面對新挑戰時如何開始寫代碼,Joshua Block會立即精心設計出編寫一行代碼之前的API。Donald Knuth走的更遠,並描述他如何用鉛筆編寫排版系統TeX接近計算機的完整實現。

因爲這本書的每一章都是以訪談的形式編寫的,因此感覺更像是一系列雜誌文章,而不是一本關於編程理論的重量級書籍。但是在這些程序員的陪伴下花費的時間越多,你就會學到成爲一名多領域的前沿程序員更多的知識。

5. Real-World Bug Hunting

如果不深入研究安全性的某些方面,任何編程書籍的列表都是不完整的。有很多不錯的主題可以涵蓋。每個程序員都可以獲得很大的益處,通過學習加密的知識,黑客滲透網絡的方式,以及可以幫助代碼防禦攻擊的最佳實踐。但如果你想涵蓋很多知識又不想被太多的理論困擾,這本書是一個很好的開始。

在這本書裏,你將獲得最常見的壞人攻擊好程序的真實描述。你將看到未經過過驗證的輸入會如何把數據庫刪除或破壞網站。你將看到惡意網站對好網站進行垃圾郵件攻擊,並看到黑客使用泄漏的內存來接管計算機。有些讀者可能覺得這些場景太過技術化,但這本書充滿了黑客的實際攻擊——沒有比現實世界更好的老師了。

備選:每個程序員都應該至少學習一點密碼學,安全通信和身份驗證科學。有很多關於這門課,雖然有些是古老的,有些是令人生畏的教科書數學方面。一個非常輕鬆的開始,嘗試《The Manga Guide to Cryptography》。關於一個更經典的方法,閱讀《Cryptography Engineering》,由超過三位世界領先的密碼學專家撰寫。如果你想輕鬆點,我可以衷心地推薦《The Cuckoo’s Egg》,一個關於天文學的癡迷者(和偶然的計算機專家)Clifford Stoll和他發掘的一個伯克利實驗室的俄國黑客。這是你最輕鬆的閱讀書單。


作爲一名程序員,你總是會覺得你只是在即將到來的變革和新技術的海嘯前的一小步。但每隔一段時間暫停一下是很重要的。從不斷地學習新的框架和語言中解脫出來。讀一本這樣的書。您將對軟件開發的技巧和職業有一個更廣闊的瞭解。你可以提升你的代碼能力。

感想

結合兩篇文章一起閱讀完,你是什麼感受呢。編碼確實是一件不容易的事情,對吧。你既要對自己的程序負責,又要對項目負責,對公司負責。一個好的程序員是如何養成的呢?

從我自己的感受上來說,無非就是多寫多練多讀。多寫一些編碼,當然是高質量的編碼,而不是沒有營養的if-else;多練,把一個需求從設計到開發完成,練習如何從零開始,培養你成爲架構師的能力;多讀優秀的代碼、書籍,學習那麼優秀的編碼方式,學習優秀的編程思想,相信堅持下去,你就會成爲編程界最靚的仔!

是不是對我們的英語翻譯很感興趣,是不是對如何成爲高質量的碼農很感興趣,不要想象,趕緊來找我一起學習吧。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章