程序員修煉之道 (The Pragmatic Programmer From Journeyman to Master) 第一章讀書心得

此為讀後重點筆記,好書值得大家購買閱讀.

本章沒有太多技術性的東西,主要是導正程式設計師上一些心態.

貓吃掉了我的源碼是多麼愚蠢的理由,但有時我就是會說出這種不成理由的理由,面對問題不應該急著推卸責任,找出可行的解法才能體現個人價值所在.

專案中的無序狀態,根本就是在說我. 面對殘破不堪的程式碼,即使不能大破大立的砍掉重練,也應該築起防火牆,讓腐敗不影響後面新加入的程式碼.

石頭湯教我要做團隊中的摧化劑,大家一起學習才是最快的進步方式. 不知水溫的青蛙則是在警告我們要不時注意大環境潮流,更新自己的知識才能維持自己的價值.

寫出夠好的程式碼 然後 就夠了,前往下一個村莊吧.

建立自己的學習地圖,定期以及有效率地投資自己的知識. 我們是科技業,這不完全是一個寫越久就越有價值的達人系統行業.

最後,我們要學會如何好好表達自己的想法. 也許我是不喜歡跟人溝通才進入工程師這個職業,但事實上,除了跟電腦溝通(寫扣),我要跟主管溝通,我要跟客戶溝通. 沒錯! 很殘念的事實! 我們必須學會與別人溝通.

第一章 A Pragmatic Philosophy

The Cat Ate My Source Code

  • 對自己寫的程式碼負責.
  • 不要害怕承認錯誤.
  • 出錯時,不要找藉口,而是要找解決方法.
  • 說藉口時,先想想這個藉口別人聽起來是否很可笑.
  • 藉口與指責並無法解決問題.
  • 不要想做不到,而是要想還能做什麼.

Software Entropy

  • 一但程式碼開始出現不好的事物,便會加速專案的腐爛速度. (破窗理論 可參考 景氣大蕭條與塗鴉.....)
  • 不予以不好的程式碼出現. 重構它,改寫它,即使只是注釋,都能避免進一步的毀滅.
  • 保持程式碼的有序狀態,因為誰都不會想當第一個搞亂程式碼的人.

Stone Soup and Boiled Frogs

  • 人們總是害怕變化,不願意分享. 自己要試著去做團體中的催化劑.
  • 做事要看大方向,太專注於不重要的細節容易造成 最後結果 偏移 當初的目標.
  • 不時環顧四周的變化,而不是整天在死守在自己的工作上.

Good-Enough Software

  • 寫出夠好的程式碼. 所謂的夠好指的是 使用者會滿意,後續維護者會感激 而 你自己看得懂你自己在寫什麼.
  • 知道什麼時候該收手,離開已經夠好的程式碼! 你要了解這世界上並沒有完美的程式碼!

Your Knowledge Portfolio

  • 知識跟經驗是我們最大的資產,但很不幸地我們是科技業,你的知識跟經驗隨著新技術的出現而失去其價值.
  • 知識管理機制 跟 投資機制 類似:
    • 強者總是規率地投資 - 這是一種習慣.
    • 多方面的學習 是 長期成功 的關鍵.
    • 聰明的投資者 會按比例將資金 保守投資 和 積極投資.
    • 買低賣高以取得最大的投資報酬率.
    • 定期重新檢視及規劃之前的策略.
  • 不要只讀電腦書,別忘了你寫的程式也是在服務”人”.
  • 對任何事物保持開放不排斥的態度.

Communicate

  • 再好的點子沒有人知道也沒有意義.
  • 自己要知道自己在說什麼.
  • 對方知道你在說什麼.
  • 在適當的時間點溝通. 星期五下午六點就不是一個好的時間點.

2 則回應:

匿名 提到...

【即使不能大破大立的砍掉重練,也應該築起防火牆,讓腐敗不影響後面新加入的程式碼.】
寫的太好,我整個哭出來

這篇請不要暱名幹醮!>>這個超好笑

[ 小黑宅 ] 提到...

有時候看這種書是一回事! 但實際看到程式碼又是一回事!

常常看完滿腔熱血,但看到爛扣就又冷了. 期許自己能堅持自己覺得好的事,而不是跟爛扣或是鳥事一起沉淪下去.

這篇請不要暱名幹醮!>>這個超好笑>>這個主要是不想要對隨便放砲又不留名的人生氣