Try   HackMD

帕亞科技新創公司實務經驗分享 ft. PAIA

  • 時間:2024/03/27 19:00~21:00
  • 地點:成大資訊系舊館2樓 4263階梯教室
  • 講者資訊:
    • 陳麒麟
      • 現職為帕亞科技專案管理工程師
      • 成大電機系、成大電通所畢業,於 PTWA 愛自造者學習協會服務 4 年
      • 主要專業:網站後端開發、科技教案研發,喜愛思考事項背後的成因,希望將台灣變成教育的樂土。
    • 曾哲瀚
      現任 PTWA、PAIA 軟體工程師、SCIST 資訊社群顧問、台南市青年委員、南臺灣敏捷社群副召。曾任 SCIST 資訊社群總召、全民運動會體育選手、誤入新創的斜槓高職生。
  • HackMD 共同筆記
  • 活動報名頁面
  • 簡報連結(待更新)
  • Slido 提問表單
  • 回饋表單
  • YouTube 講座錄影(待更新)

共同筆記

講者經歷

  • 陳麒麟
    1. 成大電機系畢業
    2. 成大電腦通訊工程研究所畢業
    3. 愛自造者學習協會-教案教具研發工程師
    4. 帕亞科技
      • PAIA(Playful AI Arena)-研發經理
      • PROS(Professional Robot Operation System)
  • 曾哲瀚-小白(baieQQ)
    • 台南青年委員
    • SCIST 社群總招、顧問
    • PTWA & PAIA 前端工程師
    • 龍獅運動選手
    • 一些程式、資安、提案競賽相關獎項

調查

  • 大家對於軟體工程的領域最有興趣?
    • 最高票:AI、網頁設計、軟硬體整合、手機應用
      Image Not Showing Possible Reasons
      • The image was uploaded to a note which you don't have access to
      • The note which the image was originally uploaded to has been deleted
      Learn More →

      Image Not Showing Possible Reasons
      • The image was uploaded to a note which you don't have access to
      • The note which the image was originally uploaded to has been deleted
      Learn More →

常見問題

  1. 我要如何加快我的開發速度?
    • 加速打字速度(需刻意練習)
    • 用好的工具
      • oh my zsh
  2. 要多久才能準備好開始一個專案?
    • 可以預先設定好開發環境(將開發環境統一)
      • Project template
      • Docker 容器化開發
        • VSCode 插件:dev-container
      • 測試用的資料庫
      • 善用 Script 和捷徑(Mac)
  3. Debug 需要花費多少時間?
    • 不要再 print, cout, console.log~
    • 先熟悉 IDE, Plugins, 快捷鍵, debug tool,
      • 前端:瀏覽器是你的好朋友
      • Python:PyCharm 是你的好朋友
  4. 如何提升程式碼的品質?
    • 出社會之後不只是要交作業,而是跟別人協作
      1. 變數命名:為未來的自己著想
      2. 變數要有意義:a, b, c, owo, ouo
      3. 變數要好閱讀:
        • 不同程式不同風格
        • 大小駝峰、Snake
        • 就算變數很長也沒關係,重點是好讀
    • 寫出好修改、好理解的程式
      4. 測試驅動(TDD, Test Driven Development)
      • 從且戰且走的開發,進化到以終為始的開發
      • 步驟:先寫一個會出錯的測試,優化後變成對的,然後再重構
  5. 網站 API 的開發與測試
    • Postman 模擬使用者的行動
      • 缺點:無法重複使用、無法大量使用
    • JMeter 壓力測試
    • Backend Test
      • 該對的對,該錯的錯
      • Testcase as Document
  6. 甚麼叫重構?甚麼時候需要?該怎麼開始?目標是?
    • 重構原則:
      • 如果同一個東西出現三次就要重構
    • 目標:好懂、好改、更快、更小
    • 想要什麼目標,就寫什麼測試
    • 發現自己重複的行為
    • 童子軍原則(The Boy Scout Rule)
      • 離開營地前,讓營地比使用者前更加乾淨

團隊合作的三個態度:

謙遜

  • 避免達克效應(Dunning-Kruger Effect)
    • 過度自信:思考自己可能專業不足,世界很大
      • 盲點:
        • 應該沒問題吧?(根本沒有跑就直接commit了)
        • 我以為是這樣
        • 是不是系統有問題?
        • 是不是使用者有問題
      • 蘇格拉底:我所知道的一件事就是——我一無所知。
    • 自信不足時:想想自己可能在進步中,保持好心態

傾聽

  • 要懂的問問題

積極面對

  • 那我該怎麼做?我怎麼做才是對的?
    • 被動、伸手牌(軟體工程師要自己找解決方法、無時無刻想著該如何精進、是否有符合需求)

團隊合作——溝通方法

ORID 焦點討論法的提問架構

  1. 客觀事實 Objective
  2. 感受反應 Reflective
  3. 詮釋意義 Interpretive
  4. 做出決定 Decisional
    Image Not Showing Possible Reasons
    • The image was uploaded to a note which you don't have access to
    • The note which the image was originally uploaded to has been deleted
    Learn More →

團隊合作——開發模式

SCRUM

  1. 站立會議
    • 今天要做什麼?
    • 怎麼做?
    • 可能有的困難
  2. 回顧會議:持續改進

PAIA

Daily meeting
  1. 今天做了甚麼?
  2. 遇到什麼困難?
  3. 接下來要做什麼?
Weekly meting

Q: 如何分析一個系統?(PAIA)

  • 分使用者、前端、後端、資料庫
  • 前後端分離
  • 後端分離多個伺服器

Q: 如何設計一個系統?(PAIA)

Top-Down:從使用者出發

  • 使用者的需求是什麼,我們做什麼

Bottom-Up:從系統底層出發

  • 什麼是必須的,先做好
  • 當人不夠時可以採用

Q: 如何擴建一個系統?(PAIA)

  • K8S

Q: 如何測試這個系統?(PAIA)

  • JMeter
  • Postman
  • Prometheus
  • Grafana

Q: 如何部署這個系統?(PAIA)

  • Jenkins

Q: 如何找出系統的瓶頸與問題?(PAIA)

  • 你需要有測試案例

營運策略分享

Image Not Showing Possible Reasons
  • The image was uploaded to a note which you don't have access to
  • The note which the image was originally uploaded to has been deleted
Learn More →

https://www.managertoday.com.tw/articles/view/29827?

收費方式

  1. 流量經濟:免費使用,插入廣告
  2. 基礎免費,付費加值
  3. 買斷,一次付費,終生受用
  4. 建立生態系,雙向平台營運(Mac)
    • 提供平台抽成分潤,自己不需做事

實習經驗分享 By 曾哲瀚

程式專案開發

  • 新創需身兼多職
    • 前端
      • 接數十隻 API
    • QA 測試
      • 整理完善的測試案例
      • 撰寫 Unit Test
    • UI/UX設計
    • PM
    • 後端
    • 平台維護
  • 優點:
    • 參與第一線所有產品開發
    • 可以大膽提供想法討論

偏鄉科技課程

  • 輔導偏鄉或弱勢學生
    • 網頁
    • APCS
    • 積木程式
    • 單晶片自走車
  • 目的:
    • 給予自信和學習資源
    • 提升眼界和想法
    • 提升內在學習動機

Side Projects

  • 提案比賽
  • conf 演講
  • 鐵人賽

前端工程師:以使用者的角度出發

  • 使用者用起來夠不夠直覺
  • 學會主動找出使用者的問題
  • 學會質疑公司不合理的決策
  • 試圖提出解決方案、主動解決問題

新創的好處

  • 信任團隊夥伴
  • 和開發者、使用者、老闆、程式碼溝通
  • 給予寬容的空間,學習最新的技術,跨出舒適圈
  • 主動承接責任

PM

  • 使用方便團隊夥伴入門的工具
  • 理解需求者、開發者、老闆各方通點
  • 繪製各種流程圖改善流程

收穫

  • 自主學習的能力

  • 豐富的實戰經驗

    • 學會多工(一個人當多個人)
    • 跨域整合、學習、成為通才
    • 沒有人會跟你說答案
    • 適應快速變化、持續學習
  • 將知識以更白話的方式傳遞

  • 沒有會跟你說問題的答案,所以要想辦法自己找解答

    • 可以去問主管,但在這之前一定要先自己多次 review 問題
  • 新創公司的經驗

    • 製作 PoC 驗證想法、打造 MVP 驗證市場
    • 參與產品營運過程中完整的生命週期
    • 鼓勵開創、嘗試、提出自己的想法
    • 接納所有人去提出所有的不合理
    • 良好的工作氣氛、扁平化的組織結構,可以接觸到
    • 倍受信任,團隊和諧

徵才資訊

https://lihi.cc/oOTz2
https://lihi.cc/JkkoA