前言
大家好,我們是 LINE Taiwan Developer Relations 團隊,很高興這次有機會可以在熊大廣場與清華大學-資訊科學研習社舉辦企業參訪,本次邀請了兩位同為清大學長的 Engineering 同仁 - Noah Hsu & Charlie Wang,分享他們從過去畢業之後銜接到業界的經驗分享,當天的氣氛也是非常熱絡呢!話不多說,讓我們一起看下去!
非本科的純軟之旅 - Noah Hsu
簡報:https://speakerdeck.com/line_developers_tw/non-major-pure-software-journey
非本科的考驗
非本科生們想拿到進入純軟業的門票,最大的重點就是去證明自己做得到平常在公司要做的事。融合了個人與朋友的經驗可以整理出下圖中綠色的主軸,包括去補一個國內外碩士、上一些培訓課程、甚至是自學來累積。而選擇時則要考慮報酬/成本的承受程度:
- 風險成本: 金錢、時間與自律需求
- 報酬:證明度
在擁有類似主軸經歷的人選中,要如何被更好的公司選上就必須得看到圖中藍色的補強項目。參加一些企業主/協辦的程式競賽(如LINE CHATBOT 對話機器人設計大賽等)將更容易的被企業直接看到我們的能力。而其他的文章、Side project也是很好的累績。
而在這些主軸/補強項目中到底要累積什麼呢?我認為主要可以分類成以下兩個部分並重:
特性 | 例子 | |
---|---|---|
Concept | 改變比較慢,新科技通常是在疊加上去 (例如:雲端架構可能需要 hardware + os + network的基礎)。 | - 演算法、資料結構 => 有效率的程式 - 系統設計 => 好維護、穩定、有效率的系統 - 軟實力 => 合作… |
Tool | 改變很快,可以很快讓自己適合某公司/職位,但可能到其他公司就沒加分。 | - Spring Boot, Djanog… - AWS, GCP, Azure… |
Server-Side 的一天
在累積足夠實力後,來到了LINE Taiwan Limited (LTL)擔任server-side engineer一職,工作的內容主要就是實作商業邏輯與API串接(如同幫一間送禮給朋友的實體商店店員寫好員工SOP,根據顧客選擇的禮物幫忙結帳、聯絡廠商訂貨、聯絡物流商送貨給指定的人等)。
在這樣看來枯燥的近似碼農的內容中,其實這份工作的精華在於當遇到大流量下如何去做各種設計的取捨,包括但不限於:
取捨項目(左/右) | 天秤向左 | 天秤向右 |
---|---|---|
可用性/一致性 | 在合理的時間內,回覆資訊 (可為舊資料)。 如社群軟體可以不用看到別人0.1秒前發的文,但是不能接受進入畫面卻要轉個五秒才出現。 | 數據改變後,查詢時需返回最新數據。 如帳務系統在存款150元時要執行兩次扣款100元之間,扣完第一次要扣第二次前要馬上得到餘額剩50元,交易失敗的訊息,但可以接受交易時等幾秒鐘 |
複雜度/維護性 | 通常越高效能、穩健的程式會有些非直覺的複雜設計。 | 好維護、好懂的程式碼不一定能達到期待的效能指標。 |
透過精通不同的設計方式優缺點並累積作取捨的經驗,我們期許自己不只是碼農且不被ChatGPT所取代。
點綴平凡的日子
雖然上面的日子看起來有點普通,但在LTL其實是很讓人開心的一件事,原因是有很棒的Developer Experience與Developer Culture。
在整個開發體驗中,從接到Planner的Spec、開發、測試、佈署、到正式發佈,在嚴謹的安全、品質把關下,工程師仍有足夠的自由做所有該做的事,也擁有足夠的自動化讓我們可以專注在有趣的事情上。
而公司的文化也很鼓勵我們在主要專案之餘可以做一些有趣的side project或參與公司的跨team task-force (TF),例如我參加的One-Pipeline TF就是想要持續的優化開發體驗,達到更高的自動化與更迅速的發布週期。而我另外參加的Developer Portal 專案,也是為了把大家開發/維護時常常會去的網站(GitHub, Dashboard, CI/CD/ API文件, Spec)通通整合到統一入口,節省大家尋找資訊的時間成本。
Green Giant 數據爵士樂 - Charlie Wang
簡報:https://speakerdeck.com/line_developers_tw/green-giant-data-dev
職場上的資料科學家
在學校學習資料科學時,往往是明確的問題、乾淨的資料、以及單純的檢驗;然而職場上並非如此單純,還需要進一步考量建模前的商務問題、建模後的部署與監測,前者攸關到要怎麼將商務問題建構成資料科學問題,有時將數量問題轉化為分類問題也會是更好的解法,其次是要怎麼有效率地準備好貼標資料,貼標結果是否有一致的定義,這都會影響建模的成果;而當模型建立完成後,也要開始考量每分鐘能預測多少結果、是否能跟上商務的需求量,若商務上不需要即時預測、是否也能透過批次預測來減低負荷量。最後當然需要時常監測模型成果,用戶行為變化快、很可能下個月就開始預測逐漸失準,要如何設定良好指標監測也是很重要的議題。
如何數據轉型
當公司規模較小時,有時資料科學家會考量更偏向架構性的問題:如何協助公司進行數據轉型。數據轉型可以區分成數據運營與運營數據兩個部分,前者偏向協助商務方善用數據進行決策,常見的手法是將商務問題進行拆解,例如「營收」可以被拆解成「消費人數x平均客單」,甚至進一步依照產品拆分,當營收下跌時,透過拆分就能適當判別原因為何、進一步對症下藥。而後者「運營數據」,則攸關數據的基礎建設,每天所需要的數據是否能即時、穩定的快速取用,這牽涉到了底層的資料清整、口徑定義、ETL管道與相依性的設計,而好的數據基礎建設,可以大幅減少後續數據運用與建模的運算時間與成本,同時加速公司的數據轉型。
數據發揮槓桿效益
過去談及資料科學案例分享時,往往都是case by case,也就是說資料科學家一次能處理的專案會十分有限,必須挑選有較大影響力的案子來執行,然而LINE的服務相當多元,每個都有各自獨特的資料科學問題與數據,要全部都以專案形式來優化、恐怕緩不濟急。於是LINE的Data-Dev部門,以平台思維來提昇影響力,開發了NLP平台–smarttext,服務方只要準備好相關資料、就能做到即使沒有技術背景,也能輕鬆完成各種常見NLP建模需求,包含了分類問題、摘要建立、或是命名實體偵測(Name Entity Recognization, NER)等,同時建立API完成部署,讓服務方能夠善用模型API,進而做內部串接整合資料科學的能力!
結論
感謝清華大學同學蒞臨 LINE 台灣本部,希望這次分享的內容讓同學們可以收穫許多!了解作為後端工程師或是數據科學家背後所需要需要準備哪些技能,以及在職場上有哪些能夠讓自己能力更進一步的方法,如果想了解更多在 LINE 工作內容,請參考以下的文章,那我們就下次見囉!