作者yesiah ()
看板Oversea_Job
標題[亞洲] 樸實無華的日本隱形冠軍(一)
時間Fri Nov 19 18:09:04 2021
人生第一次發長文,試試水溫。
試玩網誌版
https://vocus.cc/article/6195ffd2fd89780001cff507
-----------------------------------------------------------
日本一直以來都是臺灣人海外求職的一個選擇。不只是旅遊相當便利,就算要回臺灣,也
只花費不到幾個小時。職場的暗黑文化雖然時有耳聞,但也不乏思想較為現代的公司。
我的前公司就是在眾多傳統日商中,少數願意接受開放思想,而且盡力(即便緩慢)在變
化的公司。它對新鮮人來說起薪可以,既不操也不黑,卻幾乎沒人認識。
比起交戰守則,這篇更像是遊記。
我會談到我如何從零開始在日本找到一份軟體工程師的工作,想要找到一間穩定 + 不操
不黑的公司的人,這篇可能會適合你。
想要看如何在海外拿高薪成為人生勝利組的人則可以左轉。
如果有幸出續集,將會接續分享在東京工作生活了兩年半的零碎記憶,以及為何離開前公
司。
《Disclaimer》
任何好與壞都會照實呈現。但一切都是以我的個人觀點出發。不一定適用所有人。
請問你哪位
- 112 BS + CMU MS MechE
- 原本以為會做機構設計、數值模擬,想不到 CMU 把人都變成了軟體的形狀
於是跟著到處投履歷,畢業前共拿到美國三個 + 日本一個 offer
- 美國太多人談了,所以這裡談談日本
怎麼找到這家公司的
2018 年 7 月底,再 5 個月就要畢業,找工作找到焦頭爛額,萬念俱灰。曾經拿到的
offer 又被我拒絕了,著實是窮途末路。靈機一動,在 Linkedin 上順手一搜,找到了一
個來自臺灣的日本獵頭,於是丟了 Cold Message 主動詢問職缺。
當時已經過了日本求職季,開缺不多。僅有少數公司長期在找人。而我的前公司
Asprova Corp. 就是其一。
簡單介紹一下。
Asprova 的業務是販賣生產排程軟體,客戶是各大製造商。由於是買斷制的 standalone
software,商業模式很類似轉訂閱制以前的 Adobe 或是常見的工程軟體 Matlab/AutoCAD
。想當然爾,主要工作內容就是寫新功能、修 bug、測試、發更新版。
特別的是,Asprova 在這塊利基市場的市佔率是日本第一。海外以歐洲的業務拓展最為迅
速,中國其次。開發則是 100% 在日本總部。
創業二十幾年來幾乎沒有遇到強勁的對手,也因此「穩定」成了一項優點,同時也是我離
開的原因。
官網上的 Job Description 幾乎沒變,簡單翻譯一下,省下大家 Google 的時間
- 職位:開發工程師
- 職務內容:開發 Asprova APS
- 資格:一到二個月之內能夠理解 100 萬行以上的 C++ 原始碼,或者在競賽中曾取
得良好成績
- 國籍不拘,但入職之後需要學習日文,並以日文工作
最重要的待遇沒公開,但當時的數字是年薪 700 多萬日圓(本薪 + 分紅)。日幣真是難
懂,直接換算的話是美國新人的一半,可是跟 Line 福岡比差不了多少,試一下不吃虧,
對吧?(入職兩個月後漲到 8 位數,有續篇的話再說明發生了什麼事)
順帶一提,日本這個級距的年收,總稅率約 20%,實得(手取り) 80%。
(更:各路大神表示我少算了,實際稅額高於 20%)
さぁ,來面試吧
面試題目對板上各路大神來說完全不難,我寫出細節只是希望盡量還原時空背景,讓各位
可以體會我當時的心境。
一面 | 技術面試
如果人在日本,會在公司進行。而我約了線上面試,時長約 1.5 小時。前一小時是
LeetCode,最後半小時是基礎技術問答 + Q&A 時間。
由於我完全不會日文,面試採英文進行。面試官是個新加坡人,難度是 LeetCode Easy。
哈!我已經面過好幾家,Easy 等級的題目秒殺吧。遺憾的是,我高興得太早了,面試工
具是早年公司自己開發的平台,只支援 C++03。
只支援 C++03。只支援 C++03。只支援 C++03。
Okay cool,我們的好朋友 std::unordered_map、美妙的 move semantics、以及其他
C++11 的酷東西都是不存在的。這在我心裡立了第一個 red flag。
(進公司之後發現一半的開發者只會用 C++03,另外一半只會一點點 C++11。確認過日期
,是 2019 年沒錯。)
接著,面試官開始說明題目,是常見的找出重複值。Checkpoint 有兩個:100 萬筆資料
,3 秒以內跑完;另一個是同樣 100 萬筆資料,0.3 秒內跑完。
好了,你可以開始寫了。
題目描述很明確,不需要問 Clarification Question。按照標準流程,我開始描述我打
算怎麼處理這個問題。
面試官打斷了我:
你不需要說話,寫就好了。
扎扎實實的文化衝擊。也許是我 too young too naive。好吧,我閉嘴。
又一個 red flag。
既然要找出重複值,用 Hash Table 簡單明快。但等等,他剛剛說 C++03......。當時的
我沒有自信可以現場刻一個 Hash Table,退而求其次用 std::map,這是個 O(NlogN) 的
解。殘念,2.7 秒,沒有通過第二個 Checkpoint。
到這大約過了 10 分鐘。我打算用剩餘的時間思考,如何不用手刻 Hash Table,又能跑
到 0.3 秒以內。然而掙扎了 30 分鐘,面試官看不下去,主動給我提示:最佳解的複雜
度也是 O(NlogN)。
真的假的?!
經過我腦中的種種掙扎,最後我才發現 sort + linear search 可以跑進 0.3 秒內,順
利通過這關。理由是 sort 可以省掉 (de)allocate 記憶體的時間。
現在回頭看,完全不是個太難的問題,但還是請容我找點藉口。
因為時差的關係,必須要在晚上 10 點面試,加上前面兩個 red flag 造成的心理衝擊,
著實讓我腦子的運轉速度低了不少。
不論如何,這關算是過了。
後續的技術問答不難
- 知不知道 Hash Table 是什麼
- 請舉一個 Hash Function 的例子
- ......
最後面試官介紹了公司人員、業務內容,而我簡單的提問之後結束這一回合。
從一面可以看出,這間公司的面試流程相當制式。就像大學聯考,給你寫考卷、問答題,
不需要溝通,一切都有標準答案。在公司待半年之後,有跟主管反應過這個面試流程有不
少改善的餘地,但也許是我日文太差,也許是我講得不好,總之沒成功說服他。
二面 | 技術面試
同一個面試官。跟一面一樣有一題程式測驗,只是省略了後面半小時的 Q&A 部分。溝通
部分也跟一面一樣,說明完題目之後不需要說話,寫題目就好。
有了上次經驗,我算是懂他們的路線了。特地加強認識了一下 C++03 與 11 的不同。這
對於出生在 C++17 的我來說有點煎熬。
結果完全沒用到。
這次是 Graph 題,Easy 水準。只需要自訂的 struct Node + BFS,跟標準的 LeetCode
題目有 87% 像。少踩了 C++ 版本差異的坑,二面樂勝。
三面 Onsite | 技術面試 + 主管閒聊
也許是日本的極致現場主義作祟,CEO 覺得不管怎樣人都一定要見個面,故安排在東京辦
公室進行。只有一場,時長三小時,跟各大公司比簡直一片蛋糕。而面試以來感受到的第
一個 positive signal,就是公司出錢飛我到東京辦公室面試!
這邊不得不提一下芝加哥 O'Hare 機場真的塞爆。明明已經落地了卻在機上等了一個多小
時才成功下機,直接完美錯過下一班飛機。下一班往東京最早是隔天。幸好原本就有多排
一天的緩衝時間,才沒有錯過面試。
這是我第一次去日本。從機場的整潔到商旅的空間利用,無處不讓我讚嘆。工整、細緻、
優雅,跟在電視上看到的一樣!
不過我沒空管時差,也沒空好好欣賞。下機之後趕往新宿赴約,跟獵頭約好要協助我買一
套新的西裝去面試。還沒賺到錢,就先噴了 3 萬日圓。
現在想想根本是多餘的,因為公司根本沒有期待我穿西裝。但當時不知道,也傻傻的沒問
,只覺得既然是日商,那麼穿一套西裝不會錯。
至於獵頭為什麼還要陪我買西裝?我認為他應該是覺得這人可以當朋友,所以提供特別服
務吧。事實上,我們到現在也還是好朋友。真的很感謝他的幫忙。如果有人想要找日本工
作的話,我也可以協助介紹一下。
拉回正題。終於到了辦公室門口,裝潢是簡潔的工業風。進去之後被帶進一間會議室。進
門第一眼看到的是張會議桌,約能坐 6 人。長桌盡頭有個大螢幕,可以接上電腦投影。
透過背後的一大片落地玻璃,能直接看到走廊。玻璃上掛了塊白板,彷彿在暗示我這家公
司鼓勵溝通。真是諷刺,目前為止的面試中我可沒感覺到。
目前為止頗有現代科技公司的感覺。第一印象還可以。
此時面試官 T 走了進來,是個高高瘦瘦,斯斯文文的日本人,也是公司的 CTO,aka 我
未來的主管。他遞給我一份約 10 頁的面試文件。第一頁是題目,剩下的全是某 C 類別
的實作內容。
雖說是英文面試,但 T 的英文不算太好,常常雞同鴨講。
總而言之,有 1 小時左右可以詳細閱讀,接著再回答第一頁的問題。
- 請畫出 C 的資料結構
- 請說明 C 如何執行插入/搜尋/刪除
- C 有不少 member variable 是指標,請說明透過指標存取跟直接存取物件的不同
之處
- 請說明 C 如何做到既能儲存字串,也能儲存整數
最後的問題給了我一個猜想:會不會 C 其實很像 std::variant?詳讀之後我驗證了這個
猜想。不同的是,C 是一個樹狀的 std::variant,每個物件都可以擁有子物件。
不過比起這個,更令我在意的是滿滿的 legacy 感以及 anti-pattern。我也真的看到了
new 和 delete,手動管理記憶體。這裡 (
https://qr.ae/pGmHXg) 有另一個位仁兄分享
他在日商看到的程式碼長什麼樣子,雖不中亦不遠。
我以為這是壓力測試。測試我在面試中,同時面對複雜的考題以及 legacy 的時候能不能
依然保持冷靜,清楚解讀程式碼的功能。後來我真正看到那號稱 100 萬行 codebase 的
時候才發現是我想多了。
Anyway,讀完了,也回答了問題。T 對我的回答有 2 成不滿,不過算了。T 雖然身為公
司 CTO,自己也有 50% 時間在開發,但從對答中我能感覺到他並沒有完全理解我說的東
西。追加確認了一下,發現他應該沒有沒有讀過 CSAPP。這個基礎上的認知差距,我不覺
得有辦法在面試中說明完整。
T 又追問了一個設計問題:給定一個 struct S,如果要把大量的 S 物件存成 binary
file 的話,該怎麼設計。這邊沒有太特別的事情,就不贅述。
最後的 QA,我確認了公司的規模約 50 人(全世界)。
也確認公司會全額補助我學日文。
與同事們挨拶
結束後,T 帶我穿過一道門,出現在眼前的,是傳統的方格辦公室。這才發現,原來外面
有裝潢的空間,是用來見客戶的,裡面這樸實無華的才是真正的辦公空間。開發成員不多
,少於 10 人,其中只有一半是日本人。大多是不善言辭的類型,很符合大眾對於 Geek
的刻板印象。一面的新加坡面試官也在其中,他可以說是開發部中最健談的人。
當晚,CEO 與 CTO 帶我到五反田一家小而美的壽司屋吃晚餐。每一道壽司,都與爭鮮的
壽司相去甚遠(請原諒學生時代的我,說到壽司只能想得起爭鮮)。中途,服務生送上了
三隻
生大蝦,蝦肉真新鮮,又甜又彈牙。我不知道該怎麼樣評價一家壽司屋,但我心想,
有這種生大蝦的店一定不凡。
我偷瞄了帳單,三個人將近四萬日圓。即便對現在的我來說,這也算得上一餐豪華美食。
更別說當年窮到脫褲子的我有多驚豔。
猶豫
隔了幾天,我收到了錄取通知。年薪就是一開始聽說的 7xx JPY/year,沒有日商常見的
包吃包住,只有通勤補貼。同時,我手上有來自美國的另外 2 個錄取通知。頓時為現在
充滿選擇的自己感到些許驕傲。
客觀上來看,這個選擇相當簡單。美國其中一個 offer 位處矽谷,不僅提供 2 倍多的薪
水,還極有可能在幾年內上市(也確實在今年上市了)。反觀這家日商,在面試中立了數
個 red flag,薪資也不比人高。倘若真有贏面,就贏在地點吧。
對大多數人來說去矽谷準沒錯。但有太多事情不能用錢,或者任何單一因素來衡量。而我
當時正處在這樣一個不簡單的狀況中。
煩惱至極的我,決定採取科學方法。我找來身邊一位朋友當我的黃色小鴨,告訴他我有什
麼選擇,一邊分析有什麼優劣,最後詢問他我該怎麼選。
旁人的眼光是透澈的,他只說了一句:
我覺得你已經做好決定了。
他是對的。
我早就知道我會選什麼,只是心裡還不願意接受,還在嘗試說服自己而已。
一周之後。我回信給 Asprova,告訴他們,我願意加入。
-----------------------------------------------------------
還有下篇的話,將會描寫更多實際的工作體驗,以及在東京的生活。
如果有人特別想知道哪一塊的話可以告訴我,我會盡可能說明。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.228.181.5 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Oversea_Job/M.1637316547.A.CF7.html
推 ke265379ke: 回信是寫 yes , i do 嗎? >< 11/19 19:14
→ ke265379ke: 上市的是電動車那間嗎? 11/19 19:14
怕日本人不懂,要寫 イエス、アイ ドゥゥ
不是 Rivian,0A2B
→ RLCorn: 800的級距是23%吧,估計你第一年沒有被扣住民税…過那個 11/19 19:31
→ RLCorn: 甜蜜區間以後有夠高qq 11/19 19:31
推 yu90342: 如果有 unordered_map 或是自幹 hash table,最優解應該 11/19 19:33
→ yu90342: 是 O(n)? 11/19 19:33
對,最佳解應該要是 O(n)
面試官的提示是基於沒有 unordered_map + 不預期我自幹 hash table
→ evadodoya: 二樓溫 11/19 19:55
推 alihue: 第二年的住民税是爆擊 11/19 21:04
推 eju901677: 想知道離開的後續 11/19 21:07
2 個月間刷題,同時面了幾家日本跟台灣的公司
已經確定會留在台灣
這部分的經驗,板上跟隔壁板都很多,暫時沒打算細寫
推 nelley: 在日本工作但還真沒聽過這家 11/19 21:20
推 coldspoon: 感謝分享,期待續集! 11/19 21:27
推 TripleC: 推 11/19 22:50
→ antpro: 800的級距是20% 11/20 02:18
推 MAGICMCGRADY: 推,想看你分享日本生活 11/20 05:06
推 MAGICMCGRADY: 不過看起來你的日本同事不是像日劇裡那種輕浮的跑業 11/20 05:08
→ MAGICMCGRADY: 務的 11/20 05:08
業務端的人還沒描述到,不過確實不是輕浮派
都是中老年人
推 resay543: 看到duplicate 0.3 也 我也傻住 求續集 11/20 05:21
人生第一次遇到用 execution time 而不是複雜度來評斷結果的xDDDD
→ NTUohtani: 三樓說的是課稅所得超過800才是23% 11/20 05:46
→ NTUohtani: 其實到年薪1000為止手取都還是80%左右 11/20 05:47
→ siriusu: 1000 要手取 80% 是不包含住民稅吧 11/20 06:47
推 siriusu: 忘記推了~ 還有在找日本工作嗎歡迎站內信交流 11/20 06:52
→ RLCorn: 看收入種類,如果只拿現金,過695萬後絕對不只20% 到千以 11/20 08:19
→ RLCorn: 後更是一半在繳稅 11/20 08:19
→ RLCorn: 每次看到年金跟住民税被扣一堆就想哭qq 11/20 08:22
→ NTUohtani: 啊,的確沒算到住民稅,抱歉。根據前一年收入大概在%70 11/20 10:50
→ NTUohtani: -%75之間 11/20 10:50
稅金的部分我沒有太仔細算,可能要再查一下才有確切的數字
我是幾個月前離職的,技術上人還在日本
如果說要按這個年度的薪水來徵稅的話,住民稅應該也還沒繳?
文中說的 20% 是每個月月薪的預扣,還有去年的稅單概算的
※ 編輯: yesiah (61.228.181.5 臺灣), 11/20/2021 11:44:49
※ 編輯: yesiah (61.228.181.5 臺灣), 11/20/2021 11:46:45
※ 編輯: yesiah (61.228.181.5 臺灣), 11/20/2021 12:17:58
推 richuncle97: 推 11/20 12:52
推 lingerptt: 黃色小鴨厲害,你竟然沒選加州高薪 11/20 14:18
推 create8: 求續集 11/20 18:32
推 ljk476820: 強 果然日本年薪要8位數走IT最快 11/20 21:43
一開始就直上 Amazon/Indeed/Google 最快 :DDDDD
推 UpccFeng: 推 11/21 01:07
→ p31819: 不只扣所得稅住民稅,一堆扣下來挺多的 11/21 11:04
謝謝提供參照表,內文已稍微修正,以免誤導
推 chia0712: 好奇為什麼選擇那麼多可是選了這家? 11/21 14:43
※ 編輯: yesiah (61.228.181.5 臺灣), 11/21/2021 20:00:54
※ 編輯: yesiah (61.228.181.5 臺灣), 11/21/2021 20:06:23
推 johnny94: 這篇在分享公司跟面試心得,一堆人在那邊計較稅金… 11/22 10:32
→ KFVC: 除非沒在台灣工作過 不然總會懷念台灣的低稅呀XD (尤其最近 11/22 14:35
→ RLCorn: 言論自由、理性思考 11/22 15:46
推 a101: 感謝分享 期待續集 11/22 16:12
推 lc85301: 好奇最後為什麼會決定選日本而不是美國 11/22 22:43
推 indiroia: 不太懂這麼多red flag還是去了? 11/23 01:10
推 hutdris: 感謝分享,敲碗後續! 可以體會選日本的心情,但開發過 11/23 01:33
→ hutdris: 程應該很… 11/23 01:33
下篇會講到開發過程
推 q1q1w1w1q: 推好文 11/23 09:14
推 cominlin: 大概是為了某個日女吧(煙) 11/23 16:53
我沒有你想的那麼好啦((羞
好像很多人好奇為何選日本,其實就是優先順位的問題罷了
薪水名利固然重要,但再怎麼說都是第二、三順位
如果去矽谷賺大錢會危害到自己的第一順位,痛也得割
推 masturbateee: 推 寫得蠻精彩的 11/23 17:09
推 kukockuo: 謝謝分享,實際上班到可用日文溝通花了多久? 11/24 06:48
總共正規學習了 9 個月
沒有詳細去記升級曲線,印象中 2-3 個月就被迫上台公司簡報了
但簡報畢竟可以事先翻譯好 + 潤稿背稿
真正可以用日文大約半年吧
會議上主要講技術內容,有背景知識,上手比較快
生活上就是買買菜,去餐廳沒問題,打電話安排網路安裝解約什麼的程度
如果會臺語 & 常看動畫,耳朵都有打開的話,學日文的起步相當快
大部分的發音跟語塊都在腦子裡了,只是不知道意思,也不知道怎麼組合
正式開始學習單字跟文法之後,就會發現早就聽過的東西原來是這個意思
然後砰砰砰就上去了
不過我一開始就沒有打算過度融入日本,只打算學到生活 + 工作堪用即可
所以從 3 月開始學到 11 月底就不繼續上課了
檢定也沒去考,因為用不到
接下來的一年半就是依賴前面的老本跟 DeepL 自學上去
※ 編輯: yesiah (61.228.145.176 臺灣), 11/24/2021 18:58:51
※ 編輯: yesiah (61.228.145.176 臺灣), 11/24/2021 19:05:08
推 deacon: 加州跟日本稅那麼重討論一下也是合理吧 又不是每個國家都 11/24 22:26
→ deacon: 像台灣年薪幾百萬所得稅還是只有2 30% 11/24 22:26
推 Starcraft2: 選了日本 帥 11/25 04:39
推 GGFACE: 所以你回台灣了? 11/26 11:08
推 fallen01: 為什麼美國在二三順位 11/26 17:25
推 yoloboy: 推 滿好奇為何在美念碩且有offer 但不選擇留下來的原因 12/05 00:07
推 jinniw43805: 最佳解是Floyd算法嗎。 快慢指針那個 01/08 12:21