[亞洲] 樸實無華的日本隱形冠軍(一)
人生第一次發長文,試試水溫。
試玩網誌版
https://vocus.cc/article/6195ffd2fd89780001cff507
-----------------------------------------------------------
日本一直以來都是臺灣人海外求職的一個選擇。不只是旅遊相當便利,就算要回臺灣,也只花費不到幾個小時。職場的暗黑文化雖然時有耳聞,但也不乏思想較為現代的公司。
我的前公司就是在眾多傳統日商中,少數願意接受開放思想,而且盡力(即便緩慢)在變化的公司。它對新鮮人來說起薪可以,既不操也不黑,卻幾乎沒人認識。
比起交戰守則,這篇更像是遊記。
我會談到我如何從零開始在日本找到一份軟體工程師的工作,想要找到一間穩定 + 不操不黑的公司的人,這篇可能會適合你。
想要看如何在海外拿高薪成為人生勝利組的人則可以左轉。
如果有幸出續集,將會接續分享在東京工作生活了兩年半的零碎記憶,以及為何離開前公司。
《Disclaimer》
任何好與壞都會照實呈現。但一切都是以我的個人觀點出發。不一定適用所有人。
請問你哪位
- 112 BS + CMU MS MechE
- 原本以為會做機構設計、數值模擬,想不到 CMU 把人都變成了軟體的形狀
於是跟著到處投履歷,畢業前共拿到美國三個 + 日本一個 offer
- 美國太多人談了,所以這裡談談日本
怎麼找到這家公司的
2018 年 7 月底,再 5 個月就要畢業,找工作找到焦頭爛額,萬念俱灰。曾經拿到的
offer 又被我拒絕了,著實是窮途末路。靈機一動,在 Linkedin 上順手一搜,找到了一個來自臺灣的日本獵頭,於是丟了 Cold Message 主動詢問職缺。
當時已經過了日本求職季,開缺不多。僅有少數公司長期在找人。而我的前公司
Asprova Corp. 就是其一。
簡單介紹一下。
Asprova 的業務是販賣生產排程軟體,客戶是各大製造商。由於是買斷制的 standalonesoftware,商業模式很類似轉訂閱制以前的 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,告訴他們,我願意加入。
-----------------------------------------------------------
還有下篇的話,將會描寫更多實際的工作體驗,以及在東京的生活。
如果有人特別想知道哪一塊的話可以告訴我,我會盡可能說明。
--
回信是寫 yes , i do 嗎? ><
上市的是電動車那間嗎?
怕日本人不懂,要寫 イエス、アイ ドゥゥ 不是 Rivian,0A2B
800的級距是23%吧,估計你第一年沒有被扣住民税…過那個
甜蜜區間以後有夠高qq
如果有 unordered_map 或是自幹 hash table,最優解應該
是 O(n)?
對,最佳解應該要是 O(n) 面試官的提示是基於沒有 unordered_map + 不預期我自幹 hash table
二樓溫
第二年的住民税是爆擊
想知道離開的後續
2 個月間刷題,同時面了幾家日本跟台灣的公司 已經確定會留在台灣 這部分的經驗,板上跟隔壁板都很多,暫時沒打算細寫
在日本工作但還真沒聽過這家
感謝分享,期待續集!
推
800的級距是20%
推,想看你分享日本生活
不過看起來你的日本同事不是像日劇裡那種輕浮的跑業
務的
業務端的人還沒描述到,不過確實不是輕浮派 都是中老年人
看到duplicate 0.3 也 我也傻住 求續集
人生第一次遇到用 execution time 而不是複雜度來評斷結果的xDDDD
三樓說的是課稅所得超過800才是23%
其實到年薪1000為止手取都還是80%左右
1000 要手取 80% 是不包含住民稅吧
忘記推了~ 還有在找日本工作嗎歡迎站內信交流
看收入種類,如果只拿現金,過695萬後絕對不只20% 到千以
後更是一半在繳稅
每次看到年金跟住民税被扣一堆就想哭qq
啊,的確沒算到住民稅,抱歉。根據前一年收入大概在%70
-%75之間
稅金的部分我沒有太仔細算,可能要再查一下才有確切的數字 我是幾個月前離職的,技術上人還在日本 如果說要按這個年度的薪水來徵稅的話,住民稅應該也還沒繳? 文中說的 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推
黃色小鴨厲害,你竟然沒選加州高薪
求續集
強 果然日本年薪要8位數走IT最快
一開始就直上 Amazon/Indeed/Google 最快 :DDDDD
推
不只扣所得稅住民稅,一堆扣下來挺多的
謝謝提供參照表,內文已稍微修正,以免誤導
好奇為什麼選擇那麼多可是選了這家?
這篇在分享公司跟面試心得,一堆人在那邊計較稅金…
除非沒在台灣工作過 不然總會懷念台灣的低稅呀XD (尤其最近
言論自由、理性思考
感謝分享 期待續集
好奇最後為什麼會決定選日本而不是美國
不太懂這麼多red flag還是去了?
感謝分享,敲碗後續! 可以體會選日本的心情,但開發過
程應該很…
下篇會講到開發過程
推好文
大概是為了某個日女吧(煙)
我沒有你想的那麼好啦((羞 好像很多人好奇為何選日本,其實就是優先順位的問題罷了 薪水名利固然重要,但再怎麼說都是第二、三順位 如果去矽谷賺大錢會危害到自己的第一順位,痛也得割
推 寫得蠻精彩的
謝謝分享,實際上班到可用日文溝通花了多久?
總共正規學習了 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
加州跟日本稅那麼重討論一下也是合理吧 又不是每個國家都
像台灣年薪幾百萬所得稅還是只有2 30%
選了日本 帥
所以你回台灣了?
為什麼美國在二三順位
推 滿好奇為何在美念碩且有offer 但不選擇留下來的原因
最佳解是Floyd算法嗎。 快慢指針那個
35
[請益] junior php工程師職涯求建議代PO - 因為怕被認出來,請容許我模糊一點資訊 自我介紹: 頂大文科畢業,做了幾年低薪工作,決定轉工程師。35
[請益] 軟體工程師生涯規劃請益各位年薪300萬的大大好,幫友人代發 小弟朋友剛從原公司離職,離職的原因比較複雜,不過主要是因為部門改組 接下來他找工作找了一個月,不過碰了不少壁,目前面到一間公司感覺還不錯,但又很擔心 將來,故上來請各位前輩給予建議 =================================9
Re: [問題] 在台灣要當原畫師怎麼接到日本工作?上班中簡單回一下,不管是這位看起來是來發廢文的原po或者是任何想當原畫師的各位 首先在臺灣想畫日本動畫可以嗎? 認真講從2020 3月起日本疫情爆發後越來越容易接到單了,各家公司缺人缺超凶,你只要 會沒有找不到,只有畫不完 會日文這點我不知道你是不是在亂,但大概有n2~n3水準其實就可以溝通了,比較難的是