Upgrade to Pro — share decks privately, control downloads, hide ads and more …

從開發走向管理及規劃 — 工程師的自我修養

Sam Huang
November 13, 2024

從開發走向管理及規劃 — 工程師的自我修養

「軟體正在吞噬世界」這句話出自 Netscape 創辦人 Marc Andreessen,十幾年下來很精確的描繪了資訊產業的迅猛發展及對其他領域的滲透性。

站在軟體工程師的角度,除了選擇持續專注於技術上,也可以試著跨出去、試著接觸非工程的任務。本次講座以工程開發為起點,分享走出到管理及更大範圍的規劃遇到的點滴及相關的挑戰。

如果您對於以下議題有興趣,歡迎一起在線上聊聊

1. RD 跨到 Tech Lead、PM 到 BD 有哪些事情需要注意?
2. 哪些工程本位的思考對自己可能是有害的?
3. 如何保持健康且具有持續性的學習心態?
4. 軟體工程的訓練有哪些高價值但容易被忽略的部分?

Sam Huang

November 13, 2024
Tweet

More Decks by Sam Huang

Other Decks in Programming

Transcript

  1. 多技術觀點 Web / APP / IoT / Blockchain / AI

    多領域經驗 接觸超過 10 個領域 多合作形式 顧問 / 開發 / 維護 / 優化 顧問規劃:領域 x 架構 x 應用
  2. 開發 / 顧問 / 營運 工程師。碰過嵌入式系統、Linux / Android 、sensor 及

    audio ,而後 APP 、Web 、雲端及一點點區塊鏈。 開發外亦協助技術顧問、團隊管理及產品設計,曾在多間 公司擔任技術長及技術顧問。參與超過 60 個專案、產品 開發,橫跨旅宿、金融、教育、印刷、電商、醫療及電信 等多個領域。 Sam Huang https://www.sam-huang.info/ MOPCON 2022 Panel - 談區塊鏈的意義、現況及未來 MOPCON 2022 Keynote - 從 IoT 到 Web2 ,從 Web2 到 Web3 : 那些開發路上的奇妙風景 JSDC 2021 - 從 React Native 跨屏開始的多領域開發歷程 AWS 案例分享
  3. Timeline 2004 2024 台大資訊系 / 所 Garmin 忻旅科技 / ...

    PC → NB → Smart Phone → Tablet → IoT → AIoT → ? Web → Mobile → IoT → Big Data → Blockchain → AI → ? 不變的是變化,變化中什麼不變? Engineer / PM / BD / Marketing
  4. 技術變化真的快! 需求變化似乎沒那麼快,但技術的發展卻告訴我們 很多解法 第一個網頁出現到今天大概 12000 天 即使追溯到最原始的也才 20000 天 技術推著我們走

    網站、手機、APP 、IoT 、大數據、區塊鏈、 AI 、... → 被推著走也未必是壞事,結合廣告及新型態的互動 往往可以走出新的路
  5. 軟體工程? 軟體工程在實務上有時候是自然科學跟社會科學的結合 技術討論 + 技術管理 + 人事管理 + 專案管理 +

    時間管理 + ... 和其他生活中常感受到的工程也不太一樣 同一時間存在許多工法,而且都是對的 個體能力強弱差異極大,差異可以到數十倍, 甚至跟經驗無關 能改良自身常用工具,厲害的人善於改造開發環境 一旦失敗很常什麼都沒有,幾乎沒有回頭路
  6. 好的工程師? 工程師思維的價值 設立目標 / 評估 / 找方案 / 解決 /

    反饋 關鍵在於循序漸進的方法論 junior / senior / manager 解決具體問題 / 解決完整問題 / 重新定義問題 舉例:網站太慢 改寫演算法 / 分析頁面結構及架構 / 是否需要回到整體去思考
  7. 實務開發可能像什麼? 與其說像蓋房子,倒不如說像在編給一般人看的工具書(如字典) ➜ 聽需求 → 寫程式碼 → 用工具編出軟體 → …

    有很多不同流派的寫法,還要配合用戶的習慣 不同編輯有不同養成方式 書籍不斷在更新 新舊交接是個問題 確實存在分模組的概念,但還是會互相影響 每個做法都是對的,最後才知道答案 特例跟通則? ...
  8. 過度優化? 某些優化本質就是打破規則及邏輯 (ARM 課程一堆 tag) 如果說“ 聰明” 是一種讚美,那麼這就是 programing 。如果說“

    聰明” 是 一種指責,那麼這就是 engineering 。 best practice != 完美 不要一直抽象(workaround 有時是好的) 不要期待別人能理解你 設好中間點(課程的計時) 避免工程壞習慣
  9. 開發者在意的是 … 重點在技術 工具:如程式語言 範式:如何演算法 目的:想要達成什麼結果 有經驗的開發者在意的是 … 重點在不確定性的管理 流程:如思考流程

    角色:你該在意什麼?你負責了什麼? 維度:這問題存在嗎 / 這問題是怎樣被定義的 / 這個解法是怎樣被表述的 討論執行 vs. 注重結果 調整關注點
  10. AI 取代 junior engineer / Google 25 % 程式碼是 AI

    寫的 / ... → 切身在意的到底是什麼 ? prompt engineer ? 工具造成工作型態及習慣不同是常見的 第一批面對電腦的打字機員工 Google 出現造成的影響 smart phone vs. 黑莓機 → 問題應該是在於找到合作的模式 → 透過 AI 替自身賦能 這是個喧鬧的時代