【轉職】非本科從零開始轉職工程師的心路歷程(包含給轉職者的建議)

先自我介紹一下,作者 Jumping 我本人 2019 年以前從來沒碰過程式,透過自學資料科學相關課程,目前是有三年資料領域工作經驗的資料工程師 Data engineer,這篇文章記錄了我從自學到轉職過程的心路歷程,以及給同樣想要轉職的朋友的建議。

先聊聊我的背景

或許我跟大多數人一樣,在上大學前也完全不知道自己要念什麼科系,當時只想說「總之就是三類組,然後分數到哪就去哪」, 後來大學念了食品科學系,雖然後來也是有找到一點熱情,但畢業後仍然不知道自己要什麼,看到身邊不少朋友選擇繼續念碩士,我也憑著那一點熱情考了食品科學相關的研究所,所以在我的六年學生時期是完全沒有碰過程式,大部分都是生物和化學相關的課程和實驗。

當完兵出了社會,第一份工作理所當然的選擇進了食品業做研發,當時還常常被面試官問「為什麼你要做食品研發?」,老實講,我還真的回答不出來。

這種茫然困惑、不知道自己想要做什麼的狀態,一直持續到我出社會幾個月後,接觸程式語言時才開始產生變化。

接觸程式的過程

拿到工作的薪水後,我開始想該如何做投資上的運用,這時候我開始研究公司的財報、技術分析線圖等散戶會做的一些事,在查資料時發現很多人會使用 Python 自己寫爬蟲和畫線圖,於是我開始一點一點地學習怎麼樣寫 Python 語法,後來遇到有些股票網站資訊和圖表是需要付費訂閱才能觀看時,也試著自己按照那些付費圖表的邏輯去編寫程式,並嘗試視覺化出我心中所想的圖表。

(至於我自學的方式和課程,後續的文章會再做說明)

為何轉職?以及轉職時遇到的困難?

在這樣反覆學習和實作的過程中,漸漸發現自己對於寫程式收集及處理資料很感興趣,也很享受把想法和創意透過程式作品實踐出來的過程和成就感,於是就開始思考自己是否有機會轉職做一位工程師,而當時會想轉職很大的原因是:

  • 覺得大數據是未來趨勢,所有公司將來都會需要數據來輔助決策,因此打算往數據方面的工程師發展
  • 當然薪資待遇也很重要,我待的食品業算是傳產,薪資天花板比較低,如果轉職的話比較有發展空間

但同時也要思考許多實際上的困難

  • 因為領域跨很多,所以要補的技術和知識實在太多
  • 自己當時因為研究所 + 當兵 + 工作兩年已經滿 28 歲,要怎麼跟更年輕的肝競爭,還來得及轉嗎?
  • 要離職專心自學嗎?我自己經濟狀況是否允許?

調適心態、面對挑戰

面對這些困難,我自己仍然做了轉職的決定,是因為有了心態上的調適,像是技術不足的部分我可以靠上課學習來補足,也選擇了在繼續工作的狀態下持續自學,讓我不用擔心經濟上的問題。

另外一個我覺得很重要的心態突破,就是評估了利弊之後,好好想一下「對自己來說,最糟的狀況是什麼?」,我自己的答案是「大不了我就是轉職失敗,然後回食品業工作」,所以其實現在轉職並不會有多糟的後果,也是因為這樣想,我才毅然決然繼續往轉職資料工作者的路前進。

你也想要轉職嗎?

當我過了兩三年,回顧我的轉職過程時,我覺得有幾點人生體悟,可以給想要轉職的朋友一些參考:

– 確立目標

凡事都需要一個清楚明確的目標,才能讓我們走在正確的路上!

– 動手實作

不論是在什麼領域,學習都不能只有輸入,最重要的還是輸出,學了之後一定要自己動手做,像是當時我自己的 Side Project 就幫助我找到工作。

– 放下「沉沒成本」

其實不會有所謂「真正準備好」的時候,何時開始都不嫌晚,最適合開始進行的時機就是「現在」,不要因為「沉沒成本」而委屈求全。我到現在還是很感謝當時的我所做的選擇,因為沒有當初的「捨」,就沒有現在的「得」

– 列出恐懼與困難

把自己目前想得到的恐懼和困難都寫下來,如果自己還在為了轉職而卻步,想想這些困難是「知識技術」上的挑戰?還是其實是「勇氣」的挑戰呢?列出了所有的恐懼並面對它們,說不定會發現其實自己離目標沒有想像中的遠喔!

如果你正在為了要不要轉職而猶豫不決,希望我的這些經驗能幫助到你! 也歡迎把文章分享給正在轉職的朋友們!

最新 Airflow 2.6 版本有哪些更新?簡介 Notifiers, Grid View, Trigger, CLI 等多項更新內容(附程式碼)

Airflow 在最近釋出了最新的 2.6 版本,Astronomer 也在第一時間舉辦了一個講座,這篇文章記錄我在講座中看到的各種 Airflow 新功能和新修正,講座影片我放在本文最後面的參考資料,若有興趣的話也可以看看!

這次 Airflow 2.6 版本的更新包含了:

  • 35+ 個新功能
  • 50+ 個功能改進
  • 27 個 Bug 修正

以下是本篇文章的大綱:

  1. Notifiers:更方便的 Pipeline 示警功能
    1. 內建 Slack notifier
  2. Continuous Timetable:可以讓 Sensor 持續運作的功能
    1. Continuous 使用範例
  3. 可用 CLI 來測試 Connections 和查看 DAG 詳細資訊
  4. 新增部分 Async 非同步設定,釋放你的 Airflow 壓力
  5. 修正 Task 卡在 Queue 狀態的問題
  6. UI 介面的更新
    1. Grid View 更新:與 Graph View 有了更佳的整合
    2. 更新 Trigger DAG with Parameters 功能:可直接帶入歷史參數設定
  7. Pandas Serializer for XCOM:讓 Task 可以直接回傳 Pandas DataFrame
  8. 其他更新
  9. 總結
  10. 參考資料

Notifiers:更方便的 Pipeline 示警功能

這次多了內建的 Notifier 可以用
主要是搭配 DAG/Task 的 on_success_callback 或是 on_failure_callback 來使用

我覺得把通知直接整合進 Airflow 是一個很重要的功能
因為如果 Pipeline 壞掉卻沒有收到通知,那個後果真的非常可怕
尤其是常常 Pipeline 之間會有相依性
一個壞掉若沒有提早修復,就會造成很恐怖的連鎖反應
(例如:Data Engineer 修到瘋掉)

內建 Slack notifier

目前只有 Slack 是可以直接內建使用的,後續版本應該是還會再新增
設定的程式碼可以參考以下:

https://github.com/astronomer/2-6-example-dags/blob/main/dags/notifier_slack.py

如果想要用其他的通知,就需要另外自定義
自定義的方式也可以參考他們寫的程式碼: 2-6-example-dags/dags/notifier_file_toy.py


閱讀更多»

Kaggle 發布最新的 Kaggle Models 讓模型的使用變得更方便

Introducing Kaggle Models

Kaggle has released a newest addition: Kaggle Models.

Kaggle Models is where we can discover and use pretrained models and is collaborated with TensorFlow Hub (tfhub.dev) to make a curated set of nearly 2,000 public Google, DeepMind and other models.

Models has a new entry in the left navigation alongside Datasets and Code.

In the Model page, it is organized by the machine learning task they perform (e.g., image classification, Object Detection or Text Classification), but can also apply filters for things like language, license or framework.

Using Models

To Use the models, we can either click “New Notebook” from the model page or use the “Add Model” UI in the notebook editor (similar to datasets).


Kaggle 新功能 Kaggle Models

Kaggle 最近發佈了最新的功能:Kaggle Models!

Kaggle Models 是 Kaggle 跟 TensorFlow Hub 合作,整合了將近 2,000 個 Google、DeepMind 等等的預訓練模型。

現在只要在 Kaggle 左側欄中,就可以看到多了 Models 這個選項(在 Datasets 和 Code 的中間),裡面預設是按照不同的機器學習用途 (Task) 來分類(像是 Image Classification、Object Detection, Text Classification),但也可以用過濾器篩選,像是語言、框架或 Licence。

Kaggle 左側欄中,就可以看到多了 Models 這個選項

Kaggle Models 的使用方法

如果想要使用這些模型,可以從 Models 頁面上點擊 “New Notebook”,或者點擊 notebook editor 中的 “Add Model”(跟使用資料集時差不多)。

裡面預設是按照不同的機器學習用途 (Task) 來分類

參考資料


歡迎追蹤我的 IG 和 Facebook

2022 年 Kaggle 資料科學 & 機器學習現況調查

每年底 Kaggle 都會在網站上做問卷調查,去年底的調查總共收集了 23,997 份來自 173 個不同國家的回覆,我這次用圖文整理翻譯了一些重點。

  1. 1. Kaggle 數據競賽平台現況
  2. 2. 性別趨勢
  3. 3. 居住地
  4. 4. 程式語言熱門度
  5. 5. IDE 工具熱門度
  6. 6. 雲端筆記本
  7. 7. 機器學習框架
  8. 8. Transformer
  9. 9. 雲端服務
  10. 10. Tensor Processing Unit (TPU) 
  11. 參考資料

1. Kaggle 數據競賽平台現況

  • 資料科學家 > 1000 萬名
  • ML 競賽 300+ 場
  • 公開資料集數量 > 17 萬
  • 公開程式碼數量 > 75 萬

2. 性別趨勢

資料科學產業依然維持著性別高度不平衡的狀況

閱讀更多»

把數據變吸睛的動畫!用 Flourish 製作全球疫情數據的 Bar chart race

這篇文章記錄了什麼是 Flourish如何取得全球各國的疫情數據透過 Python 進行數據清理、並使用 Flourish 來呈現一個吸睛的資料賽跑圖(Bar chart race)!

如果不會寫程式也沒關係!
只要準備好適當的數據,也能直接到 Flourish 上面進行資料視覺化喔!

話不多說,點擊左下方的播放鍵,讓我們先來看看成果長什麼樣子吧!


  1. 關於資料視覺化工具 Flourish
    1. Flourish 是什麼?
    2. Flourish 是免費的嗎?
  2. 關於全球疫情數據
    1. 數據是從哪來的?
    2. 如何清理數據?
  3. 進入 Flourish 資料視覺化的世界
    1. 1. 前往 Flourish 免費註冊會員
    2. 2. 創建 Bar chart race 圖表
    3. 3. 匯入資料
    4. 4. 預覽 Bar chart race 並調整設定
      1. Setup
      2. Color
      3. 最重要的 Timeline & animation
      4. Header
    5. 5. 為你的故事畫龍點睛:Captions
  4. 作品成果展示
  5. 參考資料

關於資料視覺化工具 Flourish

Flourish 是什麼?

Flourish 是一個提供資料視覺化服務的平台,類似 Tableau 那樣,完全不需要寫任何程式碼,只要準備好資料,任何人都可以輕鬆創建很酷、很生動的圖表。

因為它的方便性,使用者人數也快速成長,截至 2022 年 2 月已經有將近 103 萬使用者,產出的圖表也已創造了超過 218 億的瀏覽次數,目前也已經被知名的視覺設計工具 Canva 收購

Flourish 是免費的嗎?

免費註冊!免費製作數量無上限的圖表!

這方面真的是很吸引人,不論是要製作作品集,或是數據分析師想要製作很吸睛的圖表給老闆主管看,免費方案就已經非常足夠。


閱讀更多»