2020 總結:疫情當前,危機化轉機 — 轉領域一年從 Hello World 到通過 Google 實習,心得篇

隨著北京的疫情再起,原本計畫週末去晃晃,現在又不敢出門了。北京寒風凌厲,孤苦一人的我只好窩在房間,坐在電腦前敲敲打打。
今年對眾多留學生、畢業生來說情勢嚴峻,大公司抑或停招減招,中小公司則狀況慘烈。到了年末,回首自己今年達成的目標,或許有些地方值得作為後進效仿,又或作為一個小故事供大家參考。
這篇心得文主要是對自己今年以來的成就做些紀錄與總結,同時也寫些我面對這瞬息萬變的 2020 做出的應對與心路歷程。
將來有空的話,會寫些比較實用的準備面試的方法以及實習經驗與所學。
第一題 Leetcode

2019/10/19 我寫了人生第一題 Leetcode 題目 - Two Sum (還編譯錯誤)。等到我真的寫對 Two Sum 已是一個月後。
19 年的 9 月前,我沒修過資料結構、操作系統、離散數學、電腦系統架構、網路架構、分佈式架構、任一個 coding language,刷題數 0,更別說什麼機器學習、AI。
傳言,滿手爛牌還敢出國的人就是我。如果以上你修過任一個課,或者刷題數不為零,你比我當時具備了更多電腦科學的基礎,希望我的經歷能給你一些啟發。
而如今,2020/12/31 ,我完成了
- NYU IT 實習
- 獲得IT Director(今成為Amazon Senior Manager )青睞且持續保持聯絡
- 實作的程式進入 Business Intelligence 部門的網頁後端
- 實習期間同時參與3個專案 - AICS 實習
- 第一次使用 Azure 服務,並實作雲原生 Kuberenetes 工具
- 沒拿到 Return QQ,但受到 Mentor 肯定 (希望不是客套xD) - Alibaba 實習
- 獲得 A+ 評級,取得 SP Return Offer (高於同級薪資不少)
- 實習期間實作的功能上線運作 (預期可增加的產品收入相當高)
- 獨自完善眾多文檔
- 受主管邀約開了一個小型分享會,介紹 Kubernetes - Microsoft Research Asia 實習
- Microsoft Open Source Project Owner (300 Stars):設計場景、架構、實現方法、data pipeline、測試及文檔
- 管理 1 個實習生 (第一次的管理經驗) - 通過北美 Google 實習面試
- 通過三輪電話面試
- 通過 Hiring Committee (Team Matching) - 完成個人網站

我認為這一年來能做到這些事情最重要的因素有以下幾點。
1. 積極主動
看起來老生常談,但我想透過親身經歷,分享一個因為我主動爭取而換來機會的故事。
面試提問
任一個工作面試通常都有提問環節,怎麼問?可以問什麼?
NYU校內工作的招聘主要透過 Handshake。我在 2019 年 10 月時透過Handshake 找到一份 NYU Career Center 的接線生工讀。因此在新學期前的寒假,我持續在 Handshake 上投遞履歷。
1 月初收到一份 BA 工作的面試邀約,工作內容如下

可以看出是一份與 Software Engineer 不太相關的工作。
不過考慮到面試不僅可以增加面試經驗、還能訓練英文口說、訓練自己整理過往經歷以及有機會多一份校內打工的經歷
只要有面試機會,我就會去參加。
面試主要是介紹自己經歷。講完後,換面試官介紹這個工作職位,大概是學校會召開預算會議,我需要紀錄會議內容;同時也要處理預算數據等等。
此時因為聽到面試官提及『處理數據』,我便向面試官詢問所謂數據處理具體是做哪些事情?又是怎麼做的?用了什麼工具來『處理』?需具備什麼樣的技能?
面試官回答『我們有一些工程師用 Python 將 IT 內部數據庫的數據包括預算、入學人數、預期收入等等做 ETL pipeline,轉成 Excel,最後供 IT 行政人員使用,包括查閱,校正,修訂等等』。
我對 Python 那塊非常感興趣 (畢竟是與 SDE 相關的技能點),便說:
『剛剛提到使用 Python 做 pipeline 的這個職缺有沒有需要 Intern?我是一個 Computer Engineering 系的學生,熟悉 Coding;曾經在中研院時有過相關的工作經驗。且 Python 工作所做的工作內容符合我未來的職涯規劃,因此我非常想試試看該職位。』
非常幸運的,這位面試官正是 NYU IT 團隊的 Director。她告訴我這塊目前確實需要人手來幫忙開發,他會將我的履歷轉給相關的人。幾天後,Director 便幫我安排了另一場面試。
最後,Director 發給我 Student Business Analyst 以及 Software Engineer Intern 兩個職位的 Offer 讓我自己選擇。
這次的面試經驗與結果,讓我體認到積極爭取機會與多提問的重要性。
我們需要主動展現自己的動機與能力。
在國外讀書的經歷裡,我注意到印度同學們『特別』之處。為什麼現今眾公司的高層,清一色印度人?他們與華人體制下出來的學生有什麼本質差異?
我分析後得到的幾個結論是
- 印度同學善於包裝。(甚至到快要偽造的程度)
- 他們非常積極且主動爭取機會。(相信有跟印度人同組或是當過同事的應該很懂)
- 他們的問題很多(有營養的也有沒什麼意義的問題)。
- 他們很擅長與人交談。
以上幾個特色,如果能時時提點自己,職涯發展上一定會有不小收穫。
以這次面試經歷來看,我積極爭取機會,也把握與面試官交流的時間(面試後半段基本在閒聊),同時不斷提出疑問(提問的同時又能再一次展現動機),還有適時的包裝自己。最終換來一個校內 SDE 實習的 Offer (完全沒出現在 Handshake 上的職缺)。
創造機會
創造機會算是積極爭取機會的延伸,去更近一步創造自己的優勢,產生貢獻。
以下分享在阿里巴巴實習的小故事。
時間輾轉來到八月,我隻身一人來到中國杭州阿里巴巴,入住喜來登大酒店(阿里補助兩週酒店住宿及機票)。我實習的組在零售通部門,全世界最大的 B2B 零售鏈路產品。
然而好巧不巧,這組剛經歷大風吹。在我入職的時間點,團隊中最老的員工才來部門未滿一年。隨之而來的結果就是找不到原本的開發者,幾乎沒有交接的文檔,作為一個新人想要了解產品架構無從下手,我只能從原始 Code 一行一行慢慢讀,跟著以前的需求單去還原當時的設計與架構。
可想而知,進度十分緩慢,不僅沒人能問,且產品架構非常龐大,作為一個第一次到如此大型公司實習的我而言有點無所適從。然而
危機就是轉機
我這時便想,既然我需要一行一行 code 閱讀,我自己也要透過紀錄筆記來理解,那何不順便幫團隊完善文檔呢?
於是,我主動向主管申請權限,開啟所有需求單的閱讀權限 (包含眾多業務域的權限全部申請)
除了平時我做的筆記之外,我在部門內的文件,一個『域』一個『域』的將文檔補齊,包括狀態機、業務模塊、域的邊界、程式架構、接口等等,我理解到哪就寫到哪。實習結束前至少補齊了 3 — 4 個業務域的文檔。
換來的成果便是
- 我所做的貢獻顯而易見而且得以留存
- 我對產品的架構理解更全面,讓我能在僅兩個月內完成兩個上線 Feature
- 我用繁體字寫的文檔 😊
這些貢獻絕對是最後使我拿到 SP Offer 的關鍵因素之一,畢竟我實習長度只有2個月而已。
小結
- 我主動爭取而來的 NYU IT SDE Intern 之後幫助我在 AICS 及阿里面試時有足夠份量的專案內容可講,進而取得他們的 Offer。
- 在阿里工作的經歷 (BAT 在中國名氣)加上 AICS 的工作內容非常巧合的與微軟亞洲研究院的實習題目直接相關,進而只通過一次電話面試便取得微軟亞洲研究院實習 Offer (一般需要2–3輪)。
- 至此累積起來的經驗讓我投遞北美 Google Summer Internship 後,在 Google hiring freeze (雖是正職) 的情況下,竟直接收到 Google HR 的電話面試邀約 (一般還有履歷及 OA 等前置關卡)。
這一連串的經驗累積,起源於看似不怎麼重要的面試時的一個提問。任誰應該也想不到現在做的事情,會有多大程度影響未來。
所以我想,只要盡力、積極,結果都會是好的,如果還沒好?那只是還沒到結尾而已。
2. 跳脫框架
在我同時拿到 AICS 與阿里 Internship Offer 後,我自己不斷掙扎,究竟要去 AICS 實習,還是去阿里巴巴,又或是待在北美的新創實習呢?
經過一番思考後。我想,最能代表當時心境的一句話便是『小孩子才做選擇,我全部要。』
Think outside the box.
當大家在猶豫今年受疫情影響的經濟狀況時,我二話不說選擇休學;當常理思考要做哪一個實習時,我主動與 Alibaba HR 談判,關於實習長度、實習補貼、入職日期。最後阿里開給我特例 Offer,讓我最短只需入職一個月,且入職時間可推遲至九月之前(一般暑期實習最短需 12 週);當 NYU OGS 告訴我,休學的話,21 暑假不會有 CPT,我還是沒有猶豫的投了北美 Google Internship。目前還在跟 Google 與學校談判,雖說真的很有可能因為沒簽證而做不到實習。
不過又如何呢?
我不斷告訴自己不要陷入 2 選 1 的陷阱之中,肯定有第三個選項等著挖掘。
3. 運氣
除了主動爭取之外,我必須得說還有一項重要元素是運氣。
運氣好, NYU IT Director 喜歡我的個人特質。
運氣好,MSRA 居然與 AICS 的題目強相關。
運氣好,我有關心我的朋友、家人、還有菜心,持續給我鼓勵。
然而這裡並不是要談怎麼有好運氣,反而恰恰相反,誠如爐石冠軍所說
唯有把細節做到完美,才有資格討論運氣。
曾經我在 2019 年面 Amazon Internship 時拿到 Hard 題 (LFU Cache)。做不出來被 Reject 過後,我整天在想,Amazon 號稱對 New Grad 與實習最友好的公司,在一畝三分地以及朋友分享文中不乏看見 Two Sum or 常見的 Easy — Medium等級題目。『為什麼就我拿到 Hard 題?』『我是不是太衰了?』『如果當初給我 Two Sum 我一定…』這樣的想法時時刻刻環繞在我耳邊。
然而現在我回頭思考,遇到 Hard 題就掛,僅僅代表我做的題目不夠多罷了,即便是 Hard 題,LFU Cache 也是在 Tag 題中出現的題目。
我不會做,但絕對有同期找實習的學生會做,機會就是給了這些同學們。而我不夠強,如此而已。運氣很重要,但在沒有把自己能掌握的部分掌握住之前,我似乎沒資格大聲嚷嚷自己運氣不夠好。
在這之後,我調整好自己的心態,努力補齊自己不足。
4. 動力
追求卓越,成功自然追著你跑
這是三個傻瓜裡藍丘大師信奉的箴言,也是一個我很要好的朋友曾經告訴過我的。我也一直將這句話藏在心底。
然而不知從何時開始,我身邊的朋友每個都在談論錢,讀那科系沒用因為賺不了錢;想轉 CS 因為這個賺很多錢;找到好工作,拿超好的 pay 就一切解脫了;等我財富自由我就不用做這些了;他很有錢,所以他很成功;等等諸如此類的價值觀。
我自知得利於我的家庭背景,也深知對於一個一路受到菁英教育的我,似乎沒有資格也不會對於他人的選擇與價值觀品頭論足。也因此我非常感謝我的爸媽,我從不需擔心我的一分一毫,甚至誇張地說,我能每年去世界各地旅遊,能有遠大的夢想,能毫無顧忌的追尋所求,決不是靠我一人努力而來,更多的是汲取自社會,取自家庭,取自那無憂無慮的童年。
不過既然我已擁有這些優勢,我還是想回歸最原始的初衷,追求目標,追求卓越。對我而言,目標是不會有達成的一天的。
5. 勤奮
之前在ptt板上看到一位創業家說過的一句話:
當做自己喜歡的事時,你會發現自己其實是個超人。
大家都聽說阿里 996,事實上沒那麼操(多半10 9 5),但我在入職的兩個月內都是10 10 5,十點到十點走,一週工作五天。我的導師常常問我,沒事就早點回家啊,怎麼還待在這裡?而實際上我正在看 code,幫部門寫文檔;寫文檔之餘,每天至少看三篇阿里巴巴內部的技術文章。小至常見 Java 語法style,中至常見開源軟體的優化改動(阿里會用很多常見的開源軟體,再對其做優化,像是 Hadoop,Kafka 等等),大至系統架構的設計概念與方法。
入職微軟亞洲研究院之後,拜阿里累積的架構設計的基礎思維,我在入職第二週便提出初版場景的設計及架構,並做了一個場景簡報,主管當場稱讚我報告的很好,進度很快,掌握程度很高;我在微軟的日子裡沒有一天早於晚上八點離開。按原訂計畫,我的場景預計在春節前發布,如今還未 2021,我的場景已經 Ready 等待回 Master。
在今年,我的家人、菜心、好朋友、不熟的朋友都告訴我可以好好休息,放輕鬆。不過對我來說,這些日子反而過得很快樂,每天都期待著進步,單純的學習與變強,還有與之而來的成就感。
我一直以來都不是個天才,準確的說我只是一個具備小聰明的,投機型玩家。然而投機正是源於對目標的渴望,正如 Jimmy Butler 所說的
If there is no talent, let hard work be your talent.
我想,以這角度而言,這就是我最大的天賦。

而我相信每個人都能成為這樣的天才。
北美 Google 實習面試對我而言就如同 2020 最後的成果驗收。通過面試是對我今年最大的肯定,也意味著休學的決定應該是相對正確的選擇。不管最後有沒有辦法如期去 Google 工作,我想今年都會是最珍貴的一年。
希望 2021 可以逐漸回到原本的生活!也希望這篇文章可以讓閱讀的你/妳,尤其是給想轉專業的同學們一點啟發!
如果對我的實習經歷有興趣,或者有任何想問的問題,非常歡迎主動加我的 Linkedin 或寄信給我,有空我都會回訊息!
祝各位新年快樂!