要想成為一位優秀的工程師?一定要具備這些職業技能!

攻城獅Chova發表於2021-08-01

嚴謹度

  • 目標: 做事嚴謹,無偏差,完成度高,乾淨利索
  • 相關技能: 目標明確度
  • 練習方式:
    • 日報
    • 任務
    • 編碼規範
    • 開發流程

日報

  • 規範的日報編寫方式,按照週報的要求
  • 從寫日報這件小事上就開始規範要求自己
xxx專案:
1. xxx模組:功能開發. 開發完成xxx功能
2. xxx模組:修改優化. 修改xxx問題,對xxx進行優化
3. xxx對接: 介面對接. 對接xxx介面,並對xxx進行測試完善

任務

  • 任務本身就是一個專案的小模組
  • 對任務的要求應該和正常的專案的要求一致

編碼規範

  • 編碼規範:
    • 格式,命名等細節: 降低維護成本,語義化更強,形成有自己風格的編碼規則
      • 做好封裝,保證高內聚,低耦合
    • 最佳實踐: 什麼場景用什麼解決方案
      • 認真對待程式碼中的warning, 精益求精
  • 面向未來程式設計:
    • 在聽到需求的時候,可以根據自己的業務能力,判斷出這些需求中,哪些是有可能變化的,哪些是不太可能變化的
    • 針對變化的內容,在編寫的過程中,不會寫死.而反覆確認不可能會變化的需求,會寫得簡單一些,防止過度設計引起的複雜度

開發流程

  • 嚴格遵守規範的開發流程去完成開發工作
  • 將不靠譜的需求放在最後做,防止中途需求變更
  • 瞭解專案的效能指標,學會專案的效能調優

資訊獲取力

  • 目標: 快速準確地獲取相關資訊,識別和判斷有用的資訊
  • 相關技能:
    • 任務
    • 覆盤專案
    • 真實專案
  • 將開源專案執行起來,理解專案程式碼
  • 資訊獲取力是程式設計師的重要能力之一,因為技術更新變革的特別快,遇到錯誤,或者是遇到新的技術框架,需要快速上手使用,或者理解原理
  • 資訊獲取力是一個程式設計師需要不斷優化的技能,前期多是搜尋,檢視官方文件,越往後,越注重對底層知識的積累,推演和原始碼的閱讀. 越往後,你遇到的問題也越有可能只有很少的的能夠遇得到,也提供不出解決方案. 所以這是一個長久持續練習的過程

總結歸納力

  • 目標: 消化整理知識點,將散亂無章的知識點歸攏成結構,有體系的知識樹,明確概念,理清關係,擴充自己的知識庫
  • 相關技能: 歸納能力
  • 每天在學習的過程中,習慣性歸納總結成自己的知識點,用以保證自己知識深海處構建的知識體系的穩固,不混亂
  • 這樣能夠增強自己的理解能力,會不斷地強化和固化基本的法則,模式,形成快速解決問題的能力,讓自己越來越有經驗

每日總結

  • 回顧今天完成的事情:
    • 完成了哪些模組
    • 遇到的問題和收穫
  • 遇到的問題本身就是詳細的記錄自己的困惑,卡殼或者錯誤的地方
  • 程式設計師總是在錯誤中成長,每天熟悉的不是異常就是Bug,所以每天遇到問題的多少,就是學會了多少的見證

階段總結

  • 不同的階段有不同的目標,也有不同的要求
  • 除了總結自己過去的得失之外,還要明確下階段自己期望完成的事情
  • 總結歸納能力不僅包括技術上,還包括自己的整體學習和成長度上,任何一個工程師的成長,都不僅是技術的成長

推動力

  • 目標: 主動推進事情的進展,去解決問題
  • 相關技能: 溝通技巧
  • 在工作崗位上,推進的發展是優秀工程師的前提,更是提高自身工作效率的必備能力
  • 這是一個需要一件一件事情來反饋,有意識的引導,直到最後變得乾淨利索的過程

需求理解力

  • 目標: 清楚無誤的理解需求,並能夠迅速的推演出實現方案
  • 相關技能: 專注度,理解力,過往經驗,技術功底
  • 練習方式:
    • 任務
    • 需求理解
  • 程式設計師在寫程式碼前要保持一個原則 : 不理解的需求不要做
    • 理解需求是什麼?
    • 設計方案是什麼?
    • 有沒有風險?
    • 有沒有確定不了的技術方案?
    • 有沒有新的調研功能或者是第三方介面?
  • 這些都是工程師需要反覆練習才能具備的能力,不但能知道當前的需求應該怎麼設計,還能提前預估出未來有什麼變化,現有的設計方案支援到什麼程度

需求理解

  • 需求理解分為兩個階段:
    • 明白做什麼和為什麼
    • 要把所有的異常情況都考慮清楚
  • 一個覆盤專案可以摸清所有的流程,一個真實的專案足以固化並且收穫經驗

定位問題的洞察力

  • 目標: 問題出現後,快速定位問題,給出解決方案,多種方式去判斷可能的錯誤程式碼,並能夠第一時間修復
  • 相關技能: 專案的熟悉度,基礎知識的牢固性.邏輯推演能力和判斷力
  • 練習方式:
    • 覆盤專案
  • 程式設計師的成長就是解決問題的過程:
    • 大多數程式設計師不但要學習正確的路怎麼走
    • 還要明白錯誤的路不要走,以及走錯了,怎麼糾正過來

相關文章