軟體工程師 - 成長的 10 個階段 前言 先前,我在 Study4 小聚 #6 分享的一場關於軟體工程師 & 架構設計的養成之路,在該議程中,我分享了軟體工程師的 10 個階段(你的階段如有雷同、應該是...純屬巧合。XDDD) 哪 10 個階段? 我將軟體工程師的成長依序分為 10 個成長階段,因為隨著技能的提升,你該擴充的 不會只是只有軟體開發技術,溝通與協作能力尤其重要 ,也像是『康威定律』中所提到的, 你的軟件的設計 & 或系統設計本質上反映了企業的組織機構。系統各個模塊間的介面的設計,也反映了企業各個部門之間的信息流動和合作方式,這些技能再進行軟體架構設計時也息息相關 ,團隊在進行模組設計時需要頻繁的溝通,這些、都是是否能將軟體做好的關鍵因素。 如 Logo 圖片,我依序說明每個階段的成長歷程。 1). 初始開發階段、熟悉 Programming/Developer 階段(PM/PO 給規格後加以實作出來),並能夠藉由 模仿 來學習。這是剛進入軟體產業的學習階段。 2). 此階段代表已懂得透過重構來讓程式碼有基本的可維護性 、已能熟用 DRY (Don't Repeat Yourself),在這個階段已經有基本的程式語言的基礎, 應付 Programming/Developer 工作 上的需求基本上沒太大問題。 3). 這裡的專案收尾代表對於專案開發已經有某些程度的認知、掌握度。我所提的掌握度在於了解『技術債』的產生緣由 與 危害,在 Programming/Devloper 層面懂得透過 S.O.L.I.D./Design Patterns 解決問題 並 開始能夠 自我學習 + 自我成長 。 4). 我這裡用『紀錄』 代表能運用所學 + 將使用者需求運用 〔邏輯思考〕 與 〔抽象化〕 轉化為程式碼 + 並能 自我成長 將經驗保存下來。我認為這是跨越只是(寫程式/實作)進入另一個門檻的重要經驗與歷練。 這個階段花費的時間會較長一點,時間長短取決於個人歷練、經歷、學習的環境與工作內容。 5). 此階段含括上面所有技能,並能夠與〔團隊〕和〔客戶〕 溝通 與 協作 、並產生出〔產品〕。而所謂的協作代表,不只自身技術所長能應付本身開發工作工作所需,亦能帶領團隊解決軟體專案的大小事務、也能夠替 Members 解決各
留言
張貼留言