2018/06/19

程序員的修煉之道 (The Pragmatic Programmer) 讀書心得 - CH1 注重實效的哲學

CH1 注重實效的哲學


1. 我的源碼讓貓給吃了


Provide Options, Don’t Make Lame Excuses
提供各種選擇, 不要找蹩腳的藉口
  • 不要害怕暴露弱點, 不害怕承認無知或錯誤
  • 負責, 犯錯時勇於承諾
  • 不要害怕提出要求, 也不要害怕承認你需要幫助
這些藉口你聽過幾個?

2. 軟件的熵


熵就是無序的狀態, 不要放任無序生長
Don’t Live with Broken Windows
不要容忍破窗戶
  • 看到一個問題修一個, 避免惡化
  • 如果團隊的代碼十分漂亮, 你也不會想成為第一個弄髒的人

挑戰
  • 說說看你的團隊裡的破窗何時產生的? 誰的決策? 你的反應是什麼?
  • 分享一下團隊修理破窗的經驗

3. 石頭煮青蛙


Be a Catalyst for Change
做變化的催化劑
你知道是對的, 也知道怎麼做, 那就做下去吧!
請求原諒比獲得許可容易

Remember the Big Picture
記住大願景
  • 要持續不斷的觀察週圍發生的事情, 而不是只有你自己在做的事
  • 看見全貌
  • 專注在目標
  • 設檢核點
  • 每次檢核都要確認有朝著目標前進

挑戰
  • 當你在設法做催化劑時, 想想你在做石頭湯還是青蛙湯? 決策是主觀還是客觀?

4. 足夠好的軟件


  • 能解決客戶問題的足夠好的軟體就可以了, 要知道世界上沒有完美的軟體
  • 讓用戶參與, 使質量成為需求問題
  • 讓用戶先使用, 早期取得回饋, 可以導向更好的解決方案
  • 知道何時止步, 不要過度打磨

5. 你的知識資產


知識資產會過期, 要定期投資
給自己訂目標
  • 定期為你的知識資產投資
  • 多元化、管理風險、低買高賣、重新評估和平衡
  • 每年學一種新語言
  • 每季閱讀一本技術書
  • 也要閱讀非技術書
  • 上課、參與社群、試驗不同的環境、跟上潮流和上網學習

把握學習的機會
  • 把找到答案視為對你個人的挑戰
  • 怎麼知道學習有成果? 開始教別人
  • 抓零碎的時間學習

批判的思考
  • 盡信書不如無書
  • 不要小看商業網路推薦的力量

6. 交流


  • 我們花費很多時間在交流, 所以要把它做好
  • 規劃你想要說的東西, 寫出大綱
  • 了解你的聽眾要的是什麼
  • 選擇對的時機交流
  • 依你的聽眾選擇交流的風格
  • 讓文檔美觀, 檢查拼寫, 先自動再手動
  • 回覆他人, 讓他人有受尊重的感覺

沒有留言:

軟體工程的重要的指標