Job Hunt-商業分析師轉職

SHAN LIN
12 min readAug 4, 2020

--

#求職 #換工作 #BusinessAnalytics #DataScientist #八個月奮戰實錄 #MSBA #文組轉行

Mt. Sylvia 雪山東峰

病毒當前,經濟衰退,一片風聲鶴唳,如何殺出一條活路?

本文分享美國商業分析碩士畢業後的轉職經驗,想要謝謝一路上很多朋友幫忙,不管是面試練習、履歷修改、內推職缺、討論資料分析專案,都是難忘的成長足跡

大學外文+圖資背景,2年在台工作經驗,2018年Purdue大學MS BAIM畢業,入職海運公司,20個月後跳槽車貸風險管理,從Reporting Analyst轉行Data Scientist,從運輸業轉金融業,從Excel轉為SQL+SAS操作,中間遭逢公司人事變動、Covid-19病毒大流行、失業潮席捲全美,回看一路心驚膽戰,峰迴路轉,總之一路衝到這裡了!

"衝出去就對了! "

我的目標是成為 Data Scientist,因為喜歡從數據找新發現,分享資訊給需要的人。前一份工作已有Excel、Power BI的基礎,希望再往外觸及數學模型、大數據系統等進階的分析工具,例如data warehouse, regression, forecast等,希望進入一個重視資料管理的環境 (data governance),也好奇這條路會怎麼走下去……

讀到這裡,如果這不是你想做的,請參考我另一篇文章 (5 Types of Data Jobs),介紹常見的五種商業分析師工作,還有更多更新的歡迎告訴我!

以下分三大主題分享:

第一、面試準備與實戰

第二、心態調適

第三、職涯規劃

本篇著重在程式語言與統計,面試技巧請參考第二篇:

面試準備與實戰

  • 把握SQL資料庫語法
  • 資料分析程式語言精熟
  • 統計基本概念

把握SQL資料庫語法!!!

SQL新手學習資源

HackerRank、SQL Zoo、W3School

火燒屁股要面試了!!! 直接刷題 — Leetcode、一畝三分地

Leetcode (可註冊免費帳號,特定題目須付費才能練習)

Problem — Database — Easy & Medium

https://leetcode.com/problemset/database/

把握好難度為Easy和Medium等級的題目就OK,Hard真的不用著墨太多。沒寫過的題目先想10分鐘,想不出來就找解答。寫第一遍會很辛苦,可能一小時2題就累慘,記得要二刷、三刷,學習來自於不斷重複,反覆加強印象。

我會把題目和答案彙整成一個文檔,筆記如下:

Problem: find the second highest salary; return NULL when not applicable.

Key: ORDER BY DESC; LIMIT 1 OFFSET 1; IFNULL((select…),NULL)

Solution:

select

Ifnull(

(select distinct Salary from Employee

order by Salary DESC limit 1,1),

null) as SecondHighestSalary;

如果你跟我一樣偏好抄書學習法,建議拿白紙出來,土法煉鋼抄寫每一題的解法,跟小時候抄課文一樣,好處是,就算你手邊沒電腦,午休時間也可以拿出來複習幾題,我的筆記有三十幾題,面試之前共抄了5遍,抄久了慢慢就越懂越多

“抄久了就懂了……”

因為我上一份工作很少用到SQL,只能靠後天努力填起來。熟悉JOIN、GROUP BY、SUBQUERY等基本語法,只要拿到資料就自主練習,編語法探索資料內容

Window function如partition by, dense_rank等也是常考重點,leetcode平台有支援SQL server所以可以加強練習

善用手邊資源,用圖書館電腦的Microsoft Access練習,或者用SQL Fiddle自己create table (http://sqlfiddle.com/#!9/91f722/6)。

一畝三分地 — 數科面經 (註冊帳號免費)

https://www.1point3acres.com/bbs/forum-259-1.html

怎麼找: 北美求職 >>> 美國面經 >>> 數科面經

「數科面經版」是針對資料分析職位的文章匯集,可查詢特定公司的面試題目,有些公司會有重複率很高的SQL考古題(尤其是西雅圖那一家XD),非常建議找在裡面工作的學長姐請教,其他公司可能會換題目出花樣,又或者依職位不同而有不同要求

"面試考古題是公開的秘密"

Oracle SQL Developer

如果你還有3個月到半年時間,想要增強對資料庫的認識,建議考一張Oracle SQL Developer證照!

為什麼特別分享Oracle SQL證照呢? 相信各位在學校都有上過SQL課程,大體知道SELECT、JOIN、UPDATE等這些資料操作語言(Data Manipulation Language, DML),但其實資料庫程式語言博大精深,還有資料定義語言(Data Definition Language, DDL)、資料控制語言(Data Control Language, DCL)、流程控制(Transaction Control)等,這些是學校可能著墨較少、但工作上也需具備一定認識的知能,而這個證照考試內容正好是很完整的入門介紹,因此推薦大家去考起來備好

請參考我的備考心得文:

Oracle Database SQL Certification 1Z0–071 — Study Guide

資料分析程式語言精熟(R/Python/SAS)

要多熟叫熟?

建議至少精熟一項程式語言,我所謂精熟,是指拿到一組資料,你能夠信手拈來基本的資料處理語法,很快的完成一套資料分析:資料讀取、初步清理、畫圖看分布型態、跑一個簡單的regression,應該在2小時內完成,不需仰賴Google大神和Stackflow神隊友

如何練就?

每天跑一些function,跟讀英文每天背單字,像醃泡菜一樣讓記憶長期發酵,用健身的概念去想,就是常常鍛鍊特定腦區,自然就肌肉發達,時間到了就準備好上場應戰

或者自己做一套筆記,方便複習,最後熟到可以背出library、function等,以下拋磚引玉,我的自己筆記如下:

R: https://medium.com/@shan.caracara/r-script-25513e747595

Python: https://medium.com/@shan.caracara/python-script-dd95fa00b703

SAS (整理中)

為什麼很重要??? WHY??

為什麼會有這樣的建議呢? 這是因為自己有過萬分痛苦的面試經驗:

我在面試西雅圖某家大型電商的時候,遇到面試官出驚喜包。

Live Coding面試官給了(X,Y)值,例如X=10時Y=0.45,X=20時Y=2.11等等,假設X和Y為線性相關,請問X=90時Y為何?請問回歸方程式係數為何? 請用任何程式工具於15分鐘內作答。

這是一個國中程度的線性代數題,但我當下腦筋 完 全 空 白 …… 完全擠不出一行code,僵持了15分鐘尷尬的沉默,打開Google亂查心亂如麻,我羞愧到幾乎要動筆用手算,但已經慌亂到公式也想不起來 囧,還是乾脆直接放棄面試呢…… 萬念俱灰,被逼上梁山,最後打開Excel的內建回歸方程式功能,勉強給出了答案,但大勢已去,面試官冷冷的結束面試。

啊成也Excel,敗也Excel。工作太常用Excel所以程式語言都荒廢,臨危之際也是Excel救了我一把。

事後冷靜檢討,其實簡單解決。

#以R為例

x = c(10, 20, 30,…)

y = c(0.45, 2.11, 3.56, …)

md <- lm(y ~ x)

summary(md)

當時的我已經拿到商業分析碩士,工作1年半,程度竟然還是遠遠不及……事後我低潮了3個星期多,於是痛下決心要把這個大洞補起來。

如果你還抱持僥倖心態,覺得不會寫查一查就沒事…… 快覺悟吧!

"害怕被面試官秒殺? 那就快覺悟吧!!!"

做專案

工作上實在用不到程式語言,所以決定自己做找資料專案練習,故事這樣開始的。

當時我開始參加邁阿密本地的資料科學讀書會,每個月聚一次,學員可以自願上台分享自己的專案。大家講得主題五花八門,有供應鏈、基因突變預測、信用貸款、R Shiny、政府捐款等,我每次去感覺如沐春風,所謂music to the ears就是這種感覺吧,這才是有趣好玩的資料科學啊!

在某一場工作坊認識了朋友M。M是KPGM的資深director,自學machine learning與商業分析知能,工作上曾參與醫學研討期刊論文發表,對產業和分析都有一番見識。

某天我跟朋友聊到

我: reporting一直做報表好無趣,好像少了什麼……

M: 那你想做什麼呢?

我: 一邊做報表的時候,我自己也會研究數字變化,對照業績近況想,到底是什麼變因造成的? 假如我可以跑一個回歸方程式,總量=變數1+變數2+變數3……,也許可以找出關聯,主動提出來幫主管分析原因?

M: 嗯…… 那你或許可以試看看Decision Tree?

我: 咦?我之前都沒想到耶,對耶,Decision Tree是探索變因的常用方法之一,可以試看看!

於是我就自己做了一個Decision Tree,出乎我意料,過程超級挫折! 因為樹幹完全長不出來,明明上課有教過,原理很簡單,為什麼實際操作這麼困難?

原來是因為target variable比例太懸殊,因為有訂單vs沒訂單比例是1比4,這樣的資料型態,正是Decision Tree的致命傷,遇到instance太少的那一邊它很難算出independent variable的關聯,後來我採用over sampling / under sampling調整比例,才勉強長出一個節點,最後跑了一個回歸方程式,一看不得了,每個變數P值都不顯著,也難怪啊

讀書會的激勵

其後,我把我超失敗的Decision Tree帶去邁阿密資料科學讀書會上台報告,我提問說為什麼會做不出關聯呢,台下的朋友就提出很多有趣的見解,某位有運輸業經驗的朋友說,因為運輸業本身競價激烈,客人可能更在意其他競爭對手的價錢,而不是航運本身的地點、貨品這些變因,因此都不最關鍵的變數。至於model,有位資料科學家就建議我,可用Random Forest、Neural network等更複雜的模型去辨識其中的關聯,我聽了收穫滿滿,覺得一切都值得了

小專案收穫

這個小專案我做了10周,很踏實了複習所有步驟, 印象深刻,每一個function都是絞盡腦汁寫出來的,面試的時候就不會再腦袋空白,而開始增強能力之後,信心也大大增加,也反映在寫履歷、面試的表現上

這個專案的程式碼,也成為我日後複習程式語言的筆記,常用function、library等一網打盡,面試前就拿出來壓壓驚,告訴自己我都會的OK的!

我也用行動證實了自己對資料分析的熱誠,每天下班就迫不急待回家繼續做2小時,工作上動腦筋也比主管快一步,周末也花上5小時泡在電腦前,樂此不疲,越做越開心,越有自信

上讀書會跟武林高手交流,非常有成就感,也交到好朋友,歸屬感更強烈了

當時我也是用上讀書會報告當作我最主要的動力,也是專案的終點,否則沒完沒了的做下去,也不知道怎麼收尾

統計觀念

以下是常考題不藏私,面試20+場加上天天爬文的經驗總結:

Stand Deviation (標準差)

Confidence Level (信心水準)

Confusion Matrix

Area Under Curve

Receiver Operating Characteristic (ROC curve)

How to evaluate the accuracy of classification?

How to handle features when they are correlated?

How to explore and transform numeric and categorical variables?

How many kinds of JOIN are there in SQL?

What is LEFT JOIN?

T-Test

ANOVA

R-Square

F-Test

Basic Assumption of Linear Regression

What is P value?

Hypothesis Test

Binomial Distribution

Normal Distribution

Bias and Variance Trade off in Machine Learning model

How does collinearity affect estimators?

我推薦StatQuest Youtube 頻道,快速秒懂統計原理,但請小心服用,畢竟他還是用數學的觀點來解釋,如果要用在面試上,被問到商業分析情境題,還是要搭配Wiki或教科書的原始定義,跟別人討論容易混淆的概念,建議一讀再讀,學習來自不斷重複、重複,慢慢的會把相關的概念連接起來

如果講的似是而非,把不同觀念搞混在一起,會被面試官抓包! 最好先找一個有統計背景的人聽一下,把假設(assumption)、定義、應用原則、舉例都講一遍,確定自己真的通了,比較不會被問倒!

--

--

SHAN LIN

Data Analytics * Curiosity -I Write What You Don’t Find on Google || Article List: https://ppt.cc/fhjetx || LinkedIn: http://linkedin.com/in/shan-lin-0723