2016年5月22日 星期日

[book] The effective engineer

Part 1: Adopt the Right Mindsets



chapter1: Focus on High-Leverage Activities

  1. 要學會衡量什麼各個事情的價值 
  2. 做最有價值的事情

chapter2: Optimize for learning

  1. 做你能掌控的事情
  2. 加快你的學習速度
  3. 找到好的環境能讓你成長更快的
  4. 多多善用工作上的資源 來提升你的技術, 跟團隊最強的工程師學西
  5. 再工作之外學習, 社群通常都是對此技術很有興趣 且以此為樂的人
  6. 永遠都在學習
    1. 學習新語言 新框架
    2. 投資再高需求的語言上
    3. 讀書
    4. 參加研討會 報告
    5. opensource
    6. 讀好的blog
    7. write to teach
    8. side project
    9. 追求你愛的

chapter3 Prioritize Regularly

  1. 寫下todo list
  2. 做todo list中 最有價值的事情
  3. 做重要 但不急的事情
  4. 減少context switches
  5. 做一個if的plan, ex: 如果有突然二十分鐘 我會做什麼事情
  6. 養成排優先順序的習慣

Part 2: Execute, Execute, Execute


chapter4:  Invest in Iteration Speed 

  1. 轉換越快 學的越多
  2. 投資再工具上 ex 開發環境 工具
  3. 最佳化的你的debug 流程
  4. 讓你的開發環境最佳化
  5. 整體性的觀點來看你的開發流程 有沒有可以改善的地方 包含團隊合作

chapter5: 「Measure What You Want to Improve」

  1. 量測你的進步
  2. 找出會讓你最有效率的衡量模式
  3. 找出你系統的衡量方式 怎樣是好
  4. 知道你的數字
  5. 資料的正確性很重要

chapter6: 「Validate Your Ideas Early and Often」 

  1. 越快的驗證你的想法 會減少浪費資源
  2. 用小驗證的方式來取代大更新, 常常驗證 常常更新
  3. 使用A/B testing來驗證你的產品
  4. 當做自己的專案時 也是要想辦法得到別人常常的建議
  5. 一直要有回應來驗證你的想法

chapter7: 「Improve Your Project Estimation Skills」

  1. 估時程時 將每個專案切成小工作項目 再結合起來計算
  2. 要留buffer再不確定的事情上面
  3. 建立可以被測量的里程碑
  4. 最優先做風險最高的事情
  5. 知道加班的限制性

Part 3: Build Long-Term Value


chapter 8: 「Balance Quality with Pragmatism」 

  1. code review
  2. 投資時間在建立好的軟體抽象化 來簡化複雜的問題
  3. 自動化測試
  4. 管好你的技術債

chapter 9: Minimize Operational Burden

     1.先做簡單的事情, 能夠重覆使用的套件 就使用 專注再自己業務的部份
     2.錯誤要及早知道, 然後直接再log指出錯誤的地方
     3.如果當錯誤的時候 要自動化去處理掉, 多想幾次, 是不是會造成之後永遠不知道為什麼會錯
     4.多使用idempotence and reentrancy, 會讓你之後再retry錯誤的時候更單純
     5.計畫模擬錯誤的情況


chapter 10 Invest in Your Team’s Growth

  1. 讓你身邊的人也更成功, 不同階級的工程師 會讓身邊更多的人也更進步
  2. 找到優秀的人 是最高priority
  3. 投資時間在新人剛進來的時候 mentoring制度
  4. 建立大家共有的程式 大家都可以維護互相的程式
  5. 讓大家更透明化, 討論目前工作的難處 好處 建立大家的知識庫
  6. 建立好的工程師文化
 

沒有留言:

張貼留言