學程式要選擇資料科學或是網頁開發領域?這篇文章帶你了解 data science 和 web dev 領域的交互關係、各自解決什麼問題、有什麼差異,以及如何進入資料科學領域,給網頁開發及入門者學習建議,了解資料科學如何幫助你,成為更好的網頁工程師。
隨著AI大數據和資料科學領域崛起,資料科學家成為了現今最熱門的職位之一。藉由資料分析,企業得以投其所好地設計出使用者喜歡的產品。
面對資料科學的熱潮,該如何選擇技能進修?已經是工程師,又如何跨入資料科學領域?ALPHA Camp 邀請資料工程師-維元分享網路開發與資料分析領域的應用與學習!
維元清大資工碩士畢業,是 ALPHA Camp 資料工程師,也是程式社群 JSDC 核心成員及 ST2DE 計劃發起人。擁有網站開發與資料科學雙棲思維的維元,分享:
- 網頁開發與資料科學之間的交互關係
- 如何進入資料科學的領域:給網頁開發者及入門者的學習建議
資料科學、網頁開發,有什麼差異?
很多人可能想知道,到底要選資料科學,還是網頁開發作為未來轉職第一份工作?
如果用武功來比喻,網頁開發就是劍法、招式,資料科學則是內功、心法。網頁開發的最終目的,是把資料及畫面呈現給使用者看,資料科學則是開發背後的邏輯及跟算法。
網頁開發者
什麼是網頁開發?一開始不外乎是學 HTML、CSS、JavaScript 操作,接著進一步到後端處理 HTTP 的互動,從使用者來的 request 產生對應的 response 並回傳,當中會包含資料庫有關的應用。
網頁開發者的工作樣貌
由於網頁是從資料到使用者的一個互動過程,我們可以將這個互動過程拆分為前端及後端:
- 前端開發:處理使用者端在瀏覽器上的互動,然後跟後端做 HTTP 的請求跟回應
- 後端開發:處理 Web Server 或系統上的操作,根據使用者的請求從資料庫上整理資料,最後回傳給使用者
常見網站應用
最基本的應用是靜態頁面,像是一頁式網頁、活動頁,著重 HTML、CSS。進階一點的應用是動態網頁,像是購物網站、部落格等,需要處理後端及資料庫的操作。最後現在比較流行的是動態效果網頁,像是遊戲、或線上直播。
零基礎也學得會的程式入門,從HTML、CSS、JavaScript開始學習網頁開發
資料科學家
什麼是資料科學?資料科學是從數據中找出價值,然後去生產數據產品。
資料科學家的工作樣貌
資料科學家的工作是負責從取得資料到產生結果。具體可以分為五個步驟:
- 取得資料
- 資料清理
- 訓練模型
- 模型驗證
- 改進及應用
資料取得與清理必備 SQL 職能 :SQL 入門課程熱烈開班中!14 天從語法到真實企業案例
網頁開發與資料科學的職能交集
網頁開發、資料科學,兩者其實都跟「資料」息息相關。網頁開發者從資料庫中取得資料,根據使用者需求回傳資料並呈現;資料科學家則是從資料中找到關係。這邊透過兩個例子來說明彼此間的職能交集:
例一、電商推薦系統
在電商網站常會出現「相似產品」、「猜你喜歡」的推薦商品區塊,這是很典型的網頁開發或資料科學都會用到的案例:
以推薦系統來說,後端開發者跟資料科學家會怎麼做?
- 後端開發者:最簡單暴力的做法就是用統計的方式,計算過去哪些商品賣得最好。因此最後系統呈現出的推薦商品都一樣,大家都被推薦了最熱門的商品。
- 資料科學家:資料科學家會應用不同的算法,像是協同過濾(Collaborative Filtering, CF)或相似度計算,使用基於數學或演算法的方式來設計算法,最後提供給使用者客製化的推薦體驗。
後端開發者跟資料分析者如何合作?
通常會分成兩個不同的團隊。資料科學家會先從資料庫拿到購買資料,拿這些資料去跑模型,最後拿到一組結果,再把結果包成一個函式(function),將函式提供給後端團隊。
這時候後端團隊只要把函式帶入,就能產生結果,完成客製化推薦系統。
例二、網頁爬蟲
接著再從另一個角度來看資料分析,很多資料工程師的入門工作是做網頁爬蟲,爬蟲工作是從網頁中取出資料,存到資料庫裡。既然是從網頁中取出資料,如果資料工程師不了解網頁架構,實作上就會出現很多問題,很難開發一個有效的網頁爬蟲程式。因此資料工程師也需要懂網頁開發。
網頁開發與資料科學,並不是兩個獨立的技能樹
由於網頁開發跟資料科學都跟「資料」高度相關,兩者間的職能存在一定交集,倘若這時團隊壁壘分明,就可能存在模糊空間:常發生資料科學家做出模型,提供給後端做模型部署後,這時當流量變大,所導致的「效能問題」到底該由資料科學家解決?或後端開發者處理?此類權責不分的狀況。
因此,網頁開發與資料科學不是兩個獨立的技能樹。如果能夠把兩個技能拉近一點,後端開發者能略懂資料科學,資料科學家也略懂網頁架構,其實兩個人都可以創造更大的守備範圍!
如何進入資料科學領域
最後談談很多人都感興趣的問題,如何成為資料科學家。資料科學家在 2013 年被譽為全球最性感的職業。在台灣,越來隨多企業開始用數據的方法來解決問題,對資料科學家的需求也大增。
由於資料專案需要的是一支團隊,角色包含:資料科學家、資料分析師及資料工程師。因此資料科學的技能樹不是單一路徑,從數學、程式到應用,其涵蓋很大,任何人都能從中找到適合的位置。
給網頁開發者的學習建議
工程師若想進入資料科學領域,可以從 JavaScript 開始, JavaScript 跟資料沒有那麼遙遠,像是可以使用 TensorFlow.js 或 ml5.js 去處理資料,就能達到很好的效果。(可參考 JSDC 發布的 YouTube 影片: Deep Learning、Big Data 應用)
給入門開發者的學習建議
想入門,該選資料科學還是網頁開發?做選擇時,應該要根據目的去學習。資料科學與網頁開發兩者結合,可以做到更多的應用,想要兩者同時進修,可參考以下學習方法:
- 先思考自己想完成的工作是什麼
- 若目的是想做出一個網站:可以先學網頁開發後再鑽研算法;或嘗試做一個工具,能夠蒐集資料
- 若目的是找出結果:從分析問題開始,先去做算法,最後再把網頁做出來
將兩者整合成一個 Project 來做,以成果導向為目的來學習,會是較有效的方式。
結語
以趨勢來看,不論是近年崛起的資料科學,或有穩定需求的網頁開發,兩者其實都很熱門。要選哪個領域入門,還是要回歸到自身的需求,因為技能養成是一條終身學習的道路。
但不管最後選擇了哪個領域,最終目的是要快速完成專案,不是學了網頁開發,就不用管資料科學,反之亦同。職場上常需要選擇好工具來完成不同的任務,所以真正重要的是建立快速遷移的能力。