這是一篇遲來的分享文&失敗文(文章有點長),我想分享一下工作幾年觀察到
情況,以及去年下半年找工作的心得。
因為大部份公司面試的過程是如何,已經有蠻多分享文了,所以這篇文章主要是
著重在準備時的心路歷程,我發現沒有良好的心理素質有時撐不下去。有些是主
觀的想法,也歡迎大家一起討論。
(如果有需要我也可以另寫一篇分享我面了哪些公司)
每個人想去海外工作的理由都不同,我的理由如下:
1. 軟體業在海外的發展比台灣好:
我待過幾家台灣前50大公司,這些公司的本業可能是金融、半導體、製造業。
也就是他們的本業不是軟體,所以IT人員在這些公司裡基本上不會受重視,而這
些公司為求穩定,通常也不會用太先進的技術。所以對這些公司而言,能把功能
整合上線到達User要的功能為首要目標。在此情況下,通常組織裡能見度最高的
是PM或是出去談需求的人,因為主管會詢問他們目前的情況或進度,而實際完成
系統功能的人,大部份的情況老闆是不會看見也不會知道。
所以就會發生大家常講的一件事:「會升官或是會在位子上的人都不懂技術」,
其實這個原因也是因為他們不是藉由技術能力被升官的。而另一個問題,就是因
為他們沒有經過技術人員的養成階段,所以在和工程師上溝通會有隔闔,或者他們
會叫工程師作非工程師的事情並覺得是理所當然的。
例如在大公司常常有外包人員,這些外包人員是無法存取公司內部的某些系統,
為了他們可以工作,你要幫他們填申請單申請權限,而外包人員來來去去,就變
成你常常要填申請單新增或取消某個人的權限。或是寫程式的工作都是外包人員
作,你只要驗收他們寫的對不對。因為對這些非技術的人當主管,他們的角度是
你不需要寫程式,只要把系統弄上線就好。但是如果一個團隊7、8個人的職稱都
是工程師,但他們的工作都是在作非技術的事情,未來如果他們失業了,對他們
的競爭力是非常有殺傷力的。
我也有看過之前一路都當非技術職,最後當主管也當的不錯的人,但這種人目前
我認為是少數。
2. 體驗一下外國的生活:
如果你可以在別的國家,比較物價水準後還能拿到差不多的薪水,其實就證明你
是可以在不同環境活的下來的人。另一方面海外的工作經驗,也可以對一個人思
維上帶來另一種新的影響。
3. 薪水:
很多人說錢比較多,但對我而言,因為我在台灣不用租房,所以在國外工作扣稅
和租房之後,其實可支配所得不一定比留在台灣多,所以錢對我來說不是完全很
大的因素。
總而言之,為什麼想去海外,就是覺得台灣的軟體工作環境太不好了,所以才想到
國外試試看。
雖然覺得環境不好,但出國工作這件事只有偶爾閃過我的腦海,我也沒有認真思考
這件事。真正讓我開始準備的觸發點,是在2018年因緣際會去了美國一趟,在美國
的這幾天,我的念頭有所轉變,覺得應該出國見見世面。
從美國回來大概1個月後,在社群認識了一個要準備Leetcode刷題的同伴,他說想
要準備出國工作。因為我生活沒什麼目標,所以就跟他一起準備,開始了刷題的
人生。
我們每個星期都會固定相互出題練習,那段時間很辛苦,因為自己的底子不好,
每天寫一題easy和medium的題目,從不會到完全搞懂有時就會花上2個多小時。
下班回家後,吃完晚飯差不多8點開始寫,順利的話9點多可寫完,卡很久的話就
差不多10點多。又要練習英文,我都會聽English Pod或是看一些美劇來練習英文。
另外Leetcode有的題目你今天寫完,可能一個月後再寫就會忘掉。現在我寫題已經快
很多了,但回想起來那時真的蠻辛苦。而工作用到這些東西的機會很少,所以你有時
會懷疑這個意義在哪裡。不過我覺得有一個好處是,你會開始注意自己寫code的方式
,以及怎樣其實是會比較快比較好。
刷題約半年後,我打算開始找工作,朋友建議我先不要一開始就直接投FAANG這類的
公司,可以先投其他公司試試,我第一間投的是新加坡的公司,經過3輪面試後拿到
Offer,考試內容就是演算法和系統設計,覺得很順利,拿的薪水也是蠻不錯的,在
新加坡是可以過的蠻舒服的,有種付出終於有收穫的感覺。但我還想試試其他公司,
所以就拒絕了Offer,沒想到接下來我就屢戰屢敗。
我大部份的情況都是面到最後一輪被拒,或是本來已經談好但是後來被通知沒缺額了。
面試到最後一關被拒,都是覺得我實務經驗不足,比如說他提出一些在大流量情況下
的發生的問題,問我要如何解決。而以台灣大部份公司的商業模式或是市場所需的系
統,其系統流量跟外國比起來根本就是xx比雞腿。儘管我已經工作一段時間,且也特
別讀了蠻多系統設計的文章。但這一關的主管詢問的方式就是沒有實務經驗會答不
出來,所以我幾乎在這一關被問倒。
有沒有經驗這個感覺就是雞生蛋蛋生雞的問題,如果在目前的工作沒有要用相關的需求,
那到底要怎麼才會有經驗?有人說你可以自己學,但就我而言,從網路和書本上的文章自
己學習,和你工作要用是兩碼子事,你工作上要使用時會發現各試各樣的問題,這是你
照本宣科看書,其深刻度是不一樣的。
之前有一次我跟主管說,我覺得這邊比較學習不到新的東西,覺得自己的能力停滯。
他回我一句:「厲害的人到哪裡都是厲害的人,你自己想想怎麼自我學習」。
其實他講的也不完全錯,所以像我這種小時候接受溫良恭憸讓的教育的人,一定是
先反省自己。
但我後來發現,我的觀念比較傾向:職涯的成功發展,選擇非常重要。
做什麼產品,跟什麼人一起工作,比每天埋頭工作更重要。一次好的選擇能讓你領
先同儕十年、二十年,一個差的決定,也能白白浪費一個頂尖人才數年的人生黃金
時期。
當然也有神人上班閒閒,下班發展自己的興趣和自我進修就發大財,但大多數人都
不是神人。而每天工作其實佔了生活的很大一部份,如果你工作上浪費了很多時間
學習不到你想要的東西,其實職涯的成長就會相對緩慢。
另外,我本來以為最後一關都是behavior的問題,但到目前為止至少最後一關的主
管都還是1個小時滿滿的問我技術問題 XD。不過能面到最後,至少代表我演算法的
能力應該不會有太大問題。
有時候面試會面試到懷疑人生,一直被reject其實會蠻難過的,很容易產生否定自
我的心態,我推薦半路出家工程師的部落格,他低潮時候的情況,其實就和我之前
蠻像的。
其實面試到後來,我已經覺得蠻沮喪的,因為我覺得在目前的公司已經沒有成長,
我也已經不想在現在的公司作任何的事,但一直沒辦法找到下一步。我也擔心辭職
後找不到滿意的工作,就這樣覺得被困住,覺得壓力很大。
面試後期,我已經覺得有點疲乏,此時我大概面了10間左右了吧,
每個工作3~5個關卡,我大部份都是最後一關被拒,所以雖然後期有接到
Google,Facebook,或是其他不錯的公司的面試通知。
但我都先跟HR說想過一陣子再進行面試,因為我已經有此時除了要面試,還要應付
公司的工作,已經1個多月沒有固定刷題,所以我知道我此時去面應該會死的蠻慘的。
不過這些公司的HR都蠻和善的,都回信說我可以隨時連絡他們。
你會看到蠻多在網路上分享面試上FAANG公司的文章,但就我身邊的經驗,像我們這
種土生土長,沒有喝過洋墨水的台灣土狗,可以一步到位直上FAANG公司的情況比較
少,神人當然例外,像之前有一篇上Indeed的高手。
在我身邊,至少我其他三、四個朋友在準備的目前都沒上。其實我覺得他們能力
都不差,在演算法的解題上都蠻快的,但感覺總是少臨門一腳,另外就這幾次的
經驗,面試是有運氣成份,你當天的狀態,以及面試時遇到的問題,和面試官的
頻率...等等都有關係。
還有就是亞洲區的FAANG的缺比美國少太多,如果這些朋友有美國身份,相信機會
會大增。
另外我分享一下,投國外公司第一個都會有pre-test,pre-test 有分兩種
第一種是有的公司會出一個作業叫你寫,像這種我會視情況要不要作。
曾經有公司叫我寫一個TCP/IP socket client server的多執行緒通訊程式,
且限在幾個小時內作完,但我的工作內容主要是based on restful API,有需要
Multi-thread處理的情況,但我平常沒有在寫socket相關的程式,我也不想從網
路上copy socket的程式碼,所以像這種我就會放棄。
我還遇過有對方要求我去爬比特幣的價格資料,並用Machine Learning
training出一個model,並建立一個API可以呼叫這個model取回預測的價格,上述
過程都要可以自動化,一個星期內要上傳到github。
這樣功能的專案我有實作經驗,但因為我目前還是需要上班,要一邊兼顧上班的
情況下,我實在沒辦法有餘力可以作類似的作業。以前我是一個要求自己全力以赴力
求完美的人,現在我會覺得有些東西放掉生活會過的比較快樂。
另一種就是pre-test就是線上測驗,基本上就是像Leetcode的形式,但我比較喜歡有
面試官一起寫code的方式,因為你可以溝通你的想法。這種方式也比較類似工作時的
模式。
如果只是單純丟給你一份線上試題,有時其你寫不出來,不一定代表你不好,因為
有的題目是需要觀察他給一些規則,這些規則是需要有"題感"才觀察的出來,只要你
了解什麼是BFS、DFS、DP、遞迴以及資料結構的用法,其實只要跟你作一些適當
的討論和提示,大部份的情況是作的出來的。
只是大部份的pre-test 都是給你一份線上測驗。
接著分享一下工作幾年後聽過老闆講的幹話:
1.人很難找:
我待過的幾間前50大企業,老闆都跟我說人很難找,我一直很納悶,為什麼那麼大
的公司會不好找人。後來發現,他們想找很厲害的人來,但又要要叫他們作很多非
工程師的事,薪水雖然不會太差,但也不是非常高。所以吸引不到太多好手。而和
幾個年輕的朋友聊天,他們都會覺得這類型的公司風氣保守死板,所以也不會想投
履歷。
另外還有一個矛盾,就是這些主管想要能力強的人,但能力強的人通常也會比較有
自我的想法,所以會不太好管理。但是學經歷沒那麼亮眼的人他們又看不上眼,所
以你會發現,很多錄取進來都是學歷不錯,但個性上比較溫順聽話的,或是很會表
達(社交),跟老闆的頻率很合,所以也很適合作前述在大公司裡需要的溝通協調的
工作,表面上老闆是說想找culture fit的人,實際上是老闆的眼界降低了團隊成
長的動力。
2.老闆說你還年經:
老闆說你還年經,薪水之後都還有成長的空間,想想自己未來的職涯發展。
薪水在現實面絕對是重要的東西,但在台灣的環境的確要和你的理想作一個平衡不容
易,但叫你不要太在意薪水的老闆,他的團隊應該能力也是一般
3.你不用自己寫,你去問他們就好 or 你覺得你一直寫程式未來的職涯是什麼:
我對性別沒有歧視,但這兩句話都是從幾乎沒寫過程式的主女管講出來的。
他們覺得,你了解系統和程式的方式就是去詢問實作人員,以及和他們討論就可以
學習,不需要自己動手作,其實他們會這樣想也很正常,因為他們並不是靠技術升
上管理職的,所以他們會覺得你程式寫的很好有什麼用。
但是就我的經驗,其實動手作會才會發現一些實際上的問題。
而另一個女主管問我一直寫程式的未來有什麼發展,我覺得這個是人生觀的問題了,
其實有的人就是喜歡作技術的東西,像我就是比較喜歡作技術的東西,但有人說之後
就寫不過年輕人了。其實這個我沒有定論,我是覺得如果你喜歡這個東西,就會想要
去鑽研,我自己也有想過擔任管理職,但我對我自己的期許是希望透過技術的角度,
把我過去的經驗分享給年輕的工程師,讓他在學習上可以不用走太多冤枉路。
我現在自己覺得對技術還是有興趣,還希望多學一些技術和累積經驗,若需要當管理
職我也是朝向技術分享的角度為前提, 而不是行政的管理職 。
最後給新鮮人的建議
1.了解自己:
人生每個階段都要一直思考,自己擅長什麼,不擅長什麼,自己喜歡什麼,不喜歡
什麼,而這個答案在你人生的不同階段,答案會不同。我其實一直對未來很迷惘,因
為從小父母都叫我們只要讀書就好,所以我從沒想過自己喜歡什麼。而我們的教育,
你想要考上好的學校,基本上每一科都要兼顧,不能有低分,不管那科你喜不喜歡。
但是出社會後,你會發現每個人的資源(時間)有限,你不可能什麼都會。什麼是你喜
歡的? 什麼是你擅長的? 應該讓這個部份有一定的專業度,讓其他人一想到這塊領域
就想到你,不擅長的事可以學習至少不要太差,但若真的不擅長就交給那些擅長的人
去作吧,你會有自己的出路。
2.有良好的儲蓄習慣:
有人你說你只領22k要怎麼存錢,我不是職涯專家也不是理財專家,比較沒辦法回答
這個問題,但我提這點主要是想表達,有儲蓄會讓你更有勇氣在人生的某些階段
作一些改變。
3.現在有許多出國工作的機會,如果有機會,就出去看看吧! 因為在國外,你會有不
同的經歷,期望未來能有越來越多的人把新的思想帶回來,改變台灣的軟體環境。