資料工程師看台灣職場觀察與回顧:Data Engineering 是個有挑戰&變化的領域

文/Luke Hong

幾年來也寫了一些文章,但好像從來沒有好好自我介紹過,因此想要寫一篇文章作為對自己目前經歷的總結,以及分享我對這領域職場的看法。

我是國立大學資工學士畢業,對於人工智慧相關的領域感興趣,剛好在上一段人工智慧冰河期的最尾端時,為了畢業專題自學了類神經網路相關的內容。
當時看到類神經網路的評語多為極耗資源且成效沒有特別優秀,不如使用其他如 SVM 等方法。結果一年後當完兵返回陽間時,發現最新潮的 Deep Learning 其實就是類神經網路的延伸應用。

大學時在朋友的幫助下,有過一段接案做網站的經驗。出社會後在小公司做了兩年的後端工程師,到職一年以後開始感到索然無味,而又興起了往 Data 及 Machine Learning 相關領域發展的念頭。

在經過一段時間的自學以後,很幸運的得到布丁大大的賞識,讓我轉職為一名 Data Engineer,繼而開始一段精彩刺激的一條龍冒險。

截至 2021/03 為止,我有兩年 Backend Engineer 及將近四年的 Data Engineer 工作經驗。另因只待過新創規模的團隊,此經驗與大公司的環境可能有嚴重落差。

轉職資料工程師

我想像中的職涯發展

如同最前面所說,當時我試著要往 ML 的方向發展,但是我並沒有足夠的工作經驗與學術研究,因此打算先以 Backend 與 ML 的介接點——Data Engineering 資料工程領域來著手。

整體來說我認為 Backend Engineer 與 Data Engineer 兩者之間,技能樹有很大幅度的重疊,只是在於使用的工具與以及處理流程的不同。後端基本上是 Request 到 Response 這種一來一往的方式,而資料工程比較像是單向的 Data Flow。

因此在目前市場上 Data Engineer 供應甚少的狀況下,也有聽過一些公司是直接訓練內部的 Backend/Software Engineer。

資料工程師在做什麼

作為一個十分新興的領域,資料工程基本上涵蓋了從基礎服務層級到資料處理應用,還很有可能連著分析與視覺化也要包辦。對應到 Web Development 的領域來說,相當於從 Infrastructure、Backend、Frontend,甚至可以說是每一間公司對於 Data Engineer(以及 Data Scientist)的想像都不太一樣,有些想要能點石成金的魔法石、有些想要能治百病的仙丹,而有些只是需要能大肆宣傳的廣告看板。

比起後端相對的龐大專案來說,資料工程師更多是以許多大大小小的元件,來組合出一個完整的架構。不同的資料型態、不同的後續應用,對於整體架構都有非常大的影響,所以相對沒有可以比較簡單起手的 Best Practice(例如選一個程式語言、一個 Framework、一個 Database 即可開始)。
不過近年各大 Cloud Provider 都提供了越來越完整的相關服務,算是不錯的起手選擇。

由於 Data Engineer 最主要的工作,應該是串接與維護 Data Pipeline,因此常常會自嘲為「水管工」。

資料工程師的職缺

這是我覺得很微妙的一點。

在經歷過前幾年企業一股腦地招募了 Data Scientist ,就如同是要尋找能達成任何願望的神燈一樣。但是漸漸的在缺乏資料儲備與軟體開發者的支援、上司與員工的期望落差等等問題上,讓這個美好的泡泡破裂了,而慢慢的讓企業開始重視起 Data Engineer 這種角色。

「你是 Data Engineer? Data Scientist?還是 Data Whatever?」

我認為因為 Data 領域的職缺依舊相當模糊,一樣掛著 Data Engineer 的職稱,有些偏向傳統 BI Engineer 的角色、有些是要求前端技能做資料視覺化、有些是必須負責任何跟 Data 相關的一條龍工程師。

整體來說,我認為有經驗的 Data Engineer 在求職市場上,由於人才需求與供應上相對上更加失衡,比起同等經歷的 Frontend Engineer 及 Backend Engineer 可能得到更好的待遇。

目前台灣 Data Engineer 職缺數量最多的應該莫過於網路廣告行銷產業,再來是電商、金融、軟體服務與工業製造等。

資料工程師的困難

目前許多公司的 Data Team 規模相對其他開發團隊小了許多,可能只有四分之一到十分之一甚至更低,因此應該有不少 Data Engineer 都已經習慣於單打獨鬥。在這種環境之下,我認為心理負擔相對較大。

另外是 Data Engineer 對於各式工具的依賴,比起 Backend Engineer 來說更重。因此應該避免只熟悉了工具的使用,而無法根據不同目標與場景設計架構的能力。

結語

對我來說 Data Engineering 是一個相當有挑戰與變化的領域,資料量的成長比起客戶或使用者數量的成長來得更容易(雖然不一定有意義),例如曾經遇過一個新客戶帶來的資料量,比起其他客戶加起來的總資料量還要多。因此在架構附載能力、開發維護的人力與金錢成本以及未來的成長彈性等問題之間,要怎麼取得平衡是很有趣的問題。

有什麼意見或感想,都歡迎在下方留言交流。

文章由 Luke Hong 授權轉載,原文連結

瀏覽 3,321 次

覺得不錯的話就分享出去吧!

發佈留言

Back to top button