來到東京兩年、最近剛結束一個專案, 也剛好看到前陣子在 ptt tech_job 有人分享在日本當手搖工程師的文章, 就想寫篇文章分享一下日本工程師的另一面。
我本身是非本科,年資接近五年的前端工程師, 兩年多在台灣、兩年在東京,當初完全沒有想過會到東京工作, 在第一份工作結束後,覺得人生應該有很多東西可以嘗試、想換個環境。
所謂的環境不是「噢,小公司換大公司」, 或是「支付產業轉旅遊產業」之類的換環境, 這種轉變太小了,希望是能帶給我人生更多衝擊的轉換。
除了想嘗試新文化之外,台北的天氣真的是太「悶」了, 就是字面上的「悶熱」,所以也沒考慮東南亞,就往日本、韓國考慮, 在因緣際會下,就來到東京啦!
台灣把前端玩得很深的公司數量、跟日本把前端玩得深的公司數量有落差, 這影響到職缺、薪資、未來發展性; 且如果你是非本科junior到senior之間的工程師, 在台灣要找到前端技術含量高的公司相對困難。
但若以我個人的狀況看「薪資水平」這件事情的話,不是。
我在台灣其實拿到的薪資換算日幣、扣掉物價,其實不會差太多, 台灣也是有願意給不錯薪資的公司,
而為什麼稅後、房租、物價抵扣後,沒有領得比較多,我還願意來東京? 就是本篇文章的後續了。
「努力固然重要,但選擇更重要」
其實回頭看自己的職涯,在實習一年、正職工作兩年左右的時候, 我就可以在台灣拿到將近 130 萬的前端 offer(非博弈業),其實是很不可思議的。
所謂的「不可思議」是在跟很多朋友聊以後, 發現很多人在職涯的路上,點的技能可能在職涯發展上不太有用, 或是第一份工作的團隊沒有可以指引和互相啟發的人,
雖然我的標題是「選擇更重要」, 但選擇分兩種,一種是你通盤了解以後選擇一個有效率的路, 另一個是上輩子有燒好香拜好佛,緣份到了自然就被選擇。
坦白講, 我是偏向後者, 大學時有學了一些網頁開發,剛好遇到有團隊在找實習生, 我也就這麼進去實習了一年,實習的過程,同事也都很強, 跟一群很強的人一起工作,自然而然,你思考問題的方式也會跟他們很像。
而同樣是「寫網站」這件事情, 我有面試過很多兩年經驗的前端工程師,會使用框架、會湊出一個功能, 但當問他為什麼使用這個套件、這個做法會遇到什麼瓶頸的時候, 往往無法回答。
而一個工程師的程度,往往就在這個「心態」,就種下了未來的果。
「選擇更重要,那選擇什麼?」
有些人會選擇 domain know-how, 例如「電商、blockchain、AI⋯⋯」等, 有些人會選擇公司規模、有些人選技術投入⋯⋯等。
什麼叫選擇「做事方法」?
除非你自己創業,通常你的第一份工作都是「有老闆」的情況, 而「老闆」怎麼跟你定義問題、釐清問題、解決問題,就會完全影響你的「做事方法」。
我曾經面試過一個專案公司出來,專門派遣到客戶端做事的工程師, 當他派遣到客戶端時,客戶端的技術主管對於派遣工程師做的事情絲毫沒有要求, 甚至會為了應付客戶,而要求工程師用非常蠢的做法做事。
例如,曾經有過去接案工程師的面試者回我說: 「我們用 redux 純粹是因為規格書上有 redux,所以我們只好用在裡面,我們只存了一筆資料在裡面」
且被派遣的工程師,常常被要求最低標準,達到能動就好。
當然,不是說不能用最低標準去把功能衝出來, 而是當工程師自己在執行的時候,瞭不瞭解自己選擇這個方式的原因?自己犧牲了什麼?如果未來有空的時候,該做哪些事情降低現在的技術債?
以前端的世界來說,同樣的需求有非常多工具可以解決,像如果對方說「我熟悉 react, redux」,我可能會問他「你怎麼處理 asynchronous dispatch?當初為什麼選這套?」多數人會回答「公司專案開始的時候就用 A,所以我沿用」
這樣的回答不能說不好,但如果不會開始有好奇心去想 「為什麼我需要這個工具?別的工具怎麼解決問題?我的專案用了別的工具的 pros&cons 是什麼?」的話,很難成為一個 senior 工程師,充其量就是一個⋯⋯寫程式很快的工程師。
不過通常我會問一些更基礎的知識, 例如: event loop, event delegation, browser compatibility ⋯⋯等。
以我過去的經驗, 真的對這些議題有深刻了解的人,才能找到槓桿解, 而不是解決一個現在的問題,製造未來的工作機會。而我很慶幸我自己,在第一份實習的工作,就能跟有這樣思考高度的人一起工作。
接著,是「求職市場」的選擇
我不會說國外的月亮比較圓,日本、新加坡工作雷的也是真的很雷, 像 ptt tech_job 版前陣子就有一篇找資工系去搖手機的公司,真的也是雷到炸,
但一切都是「相對」的, 以前端工程師在台灣的工作來說, 「台北」就是一個相對「台南」好的求職市場,好的定義是「光譜更細」。
這邊先有一個假設,就是每個人都要做比自己「會做的事情再難一點點」的地方工作, 那麼他進步的速度會是最快的。就像重訓一樣,你要找到適合自己的重量,你進步才會快, 一直用過小的啞鈴,你只會原地踏步; 一下子用過大的啞鈴,那你就會受傷需要休息。
當然,這個「做事難一點點」會依每個人過去的背景、智商而有不同, 例如有人只要有 doc 就能寫出維護性還不錯的程式碼, 而有些人可能需要一些範例、一些前期的 code review,也能寫出不錯的程式碼, 每個人的「一點點」都不同。
如果你等級是 12,在台北可能可以找到 15 的工作,剛開始可能會有點挑戰,但久而久之,就知道怎麼達到 15 的水準,或是公司有人早就已經在 20 ,在點「管理職」的技能,這個時候他可能可以協助你,用更快的速度達到 15,甚至超過。
但如果你在台南,而等級是很尷尬的 12,且沒有前輩, 那你既摸不到等級 20 的工作,做等級 10 的工作又很乏味、無法前進, 就會薪資原地踏步、技術也原地踏步。
我在日本看到的是,日本真的是從 0~20 級的工作都非常多,0 級就真的是你會日文以及有一個「一定要完成的心」就會錄取你,從零開始教的工作(但風險就是可能會加入搖手機大隊,然後都沒寫到程式);也有一開始就要求偏 senior 等級的工作 (以我部門的同事來說,在台灣大部分都是 150/年等級的。)。
加入這樣的市場的好處是, 只要你求職期間拉得夠長、願意去尋找機會, 很容易找到符合自己甜蜜點的工作,也就是「稍微困難一點」, 但靠自己或公司有資源可以協助你往下一個階段走。
舉例來說,我朋友說,他們公司的 junior 會花很多時間負責研究每個解決方案的優缺點, 把找到的資料整理好、分享給大家,這樣他在研究的同時,就會知道這些套件到底解決什麼問題。此外,無論是我自己或是朋友們的公司,相對於我們在台灣的經驗,都有更多的 pair programming, 而 pair programming 時,通常在解一些 edge case。這些經驗其實都是大還丹,吃了經驗增加不少。
而就我過去的經驗,台灣很多公司的工程師, 因為時間的壓迫,把東西做完就好,甚至連文件都沒時間看,直接 trial and error, 更別說什麼 pair programming,根本只在書上出現過。
綜合上述, 在東京,我看到更多人從「普通的工程師」進展到「真正瞭解問題、提出方案」的工程師。
「回得去台灣嗎?」
這是很多人問我的問題,也是夜深人靜的時候我問自己的問題。
以現階段來說,回不去; 以長遠來看,我終究是會回去,畢竟台灣是我的家。
而我期望我自己回去的時候,可以帶一些我在日本工作時, 看到的日本文化好的地方,例如「人才培育」。
在日本工作的這段期間,定期會跟 manager 聊, 主要會偏聊手上 project 部分的東西,像是進度上有沒有問題、技術上有什麼需要協助, 怎麼做可以更好、公司怎麼樣可以協助你。大概七成談手上的東西,三成談你的發展。
一段時間也會跟 director 聊, 就會聊偏向組織規劃,像是跟其他城市辦公室的人合作怎麼改進、對自己的職涯發展有什麼期許, 是想要繼續當工程師、還是想轉管理職(沒錯,日本也是可以寫程式寫到很高薪的,不一定要轉管理,但要挑對公司)
透過每次的談話,其實可以更知道自己現在的狀況, manager 跟 director 也會讓你知道公司內部未來可能會有什麼樣的機會、是否要轉過去做, 可能在台灣我待的公司規模不大,沒有這樣的制度,但我覺得這是一個很好的機制。
(相關報導:
抓到了!散布蘇貞昌摔筆假消息 新北「韓粉」工程師被逮
|
更多文章
)
舉例來說,在面試印度人的時候,我感受到他們強烈的求生本能, 只要問他們一個問題,會相關的 ABCDEF 通通講出來,怕你不知道他懂哪些東西, 以及他們可能有個「東京求職兄弟會」,因為考題的答案都一樣, 如果是很棒的答案就算了,重點是這答案又不怎麼樣,真不知道是怎麼變成他們心中標準解的⋯⋯
在面試菲律賓人跟越南人的時候,滿讓我驚奇的。因為以前都覺得菲律賓是東南亞相對進步的地方(實際上菲律賓的人均 GDP 也將近越南的 1.4 倍) ,但平均來說,我面試到的越南人素質都還不錯,無論是對前端的理解力或是英文能力。而我面試到的菲律賓人技術部份普遍都不行。雖然這只是我少許樣本的結果,但有讓我對越南改觀。
而墨西哥人則是口音很有趣,印度人講話聽久了就習慣了, 但公司的墨西哥人我到現在還是常聽不懂他在講什麼。雖然他們講起來就是有種「我英文很好」的感覺, 但我就是常聽不懂。
「薪水固然很重要,但人生更重要」
這其實是在我來日本以後的一個轉變, 可能也是薪資已經超過我心中的「緊張線」, 「緊張線」的意思是,只要我領的薪資低於這條線,我就會覺得不夠、要努力, 但只要超過這條線,多個 10%、20%,甚至 50%, 都不會讓我「因為薪資而選擇一個工作」。
這條線每個人不同,對我來說差不多是在稅後年薪 120~150 萬左右(喜歡的公司可以降低一點、台灣的物價比較低可能可以再降一點點)。
我非常慶幸我在兩年前決定來到日本, 不是因為我在這邊拿到多高的薪資。我過去那些留在台灣的同事,也有不少人拿到不輸我在日本的薪資(換算物價、回台機票後,兩邊存的差不多)。
而是在日本,我交到更多「技術宅」朋友, 因為彼此的母語都不同,能共同溝通的語言就是英文。 而在語言隔閡下,能夠彼此聊得來的,通常就是思考脈絡跟你很近的那群人。
例如,我們會在吃拉麵的時候,問對方: 「如果你今天面試一個工程師,而你只能問他一個問題,你會選擇問他什麼問題?」
或是,在盛開的櫻花樹下,我們會喝著啤酒討論: 「JavaScript 最奇怪的特性是什麼?最棒的特性是什麼?」
另外還有一點是,在這邊,你在東京遇到的大部分外國人(非日本人就稱為外國人), 東京都不是他們「海外工作」的第一站。他們通常屬於遊牧族群,逐興趣而居; 也因為他們去過很多國家工作、做過很多不同的產品,交流起來很有趣。
我有遇過一個法國人,之前在台灣工作過,他非常喜歡台灣、台灣的食物和人,甚至天氣(除了台灣老闆,他恨死台灣老闆)。
我也面試過一些美國人,他們是真的超愛日本文化,日文都學到 N2 甚至 N1 , 但最後通常都會因為薪資談不攏而不來,畢竟在美國工程師薪資真的太好了。
而少部分白人朋友來日本很大的目的是要去風俗店,又是另外的故事了⋯⋯
「什麼樣的人適合來日本?門檻高嗎?」
基本上,你在台灣實力大概是 70~100 萬年薪的工程師, 大概都有機會拿到在日本全英文工作環境的 offer,換算到日幣的話, 購買力其實差不多,存錢跟台北差不多,主要看你的娛樂,畢竟日本聚餐很貴, 但衣服、3C等等都還好。
或是你日文 N3 以上,有上完一個線上課程,能夠拼出一個像樣的作品, 大概就有機會拿到非常 junior 的工作。但我會推薦練強一點再來, 否則過來領 23~30 萬日幣,真的會滿辛苦的,要存錢就要天天吃牛丼(不過非常 junior 在台北也是要住雅房+吃滷肉飯才存得到錢就是了)。
我來日本的原因,主要是想要「出國工作」, 而「出國工作」這件事情,背後的目的是養成「移動能力」。
「移動能力」的意思是「我可以在任何國家工作,且都能保持差不多的購買力」。
一來是,這個世界越來越平、競爭越來越激烈, 做一份靠壁壘才能過好日子的工作,會讓我很沒安全感(所以當時沒有考慮中國)。
二來是,這個世界這麼多元、這麼多采多姿, 多出去走走、和人交流,激盪出不同的火花,應該是一件很棒的事情吧!
最後,分享一段東京女子圖鑑裡的啟示 :「你以為的力爭上游,可能也只是另一種隨波逐流。」
提高薪水是簡單的問題, 做影響範圍更大的工作是簡單的問題。但如何讓自己活得自在、活得快樂,是非常困難的問題; 期望大家都能找到,屬於自己自在的、快樂的工作環境和方式。