2017 Yahoo 實習心得

1 minute read

分享一下 2017 大三暑假去 Yahoo (現已被 Verizon 收購,隸屬於 Oath) 實習的心得,包含電話面試到現場 interview 被電的坎坷路程,公司的超棒福利,跌跌撞撞的做 project,誤打誤撞寫了一篇 paper,還有 mentor 跟 manger 與公司文化的分享。

這篇讀者應該都有中文背景,那我就用中文寫了。

面試到錄取

電話面試

四五月的時候就拜託在裡面當 project intern 的小胖學長幫我內推,我把英文履歷直接寄給他,他幫我 forward 給他主管。然後很開心的我不久後就接到電話通知,跟我約時間電話面試。

這個聯絡我的人,聯絡的很勤,簡訊電話都不下好幾通,而且又是女生,所以我想應該是個 HR。

電話面試我約在早上 10:30,當天等她的電話打來,結果是 HR 打來,一來就她會用英文問問題,我可以選擇用中文或英文回答,我當然是耍潮用英文回答XD

因為面我的 Team 是 Production Engineer (主要工作是把東西放上 production),需要對系統架構比較熟,所以問的問題大約如下:

  • How to monitor the cpu/memory usage of a process?
  • How to run a process on 50 servers?
  • List some common port and its usage.
  • How to rename 200 files in a directory?
  • Do you know CI (continuous integration) and CD (continuous delivery)?

多半是跟系統、架構有關啦,我比較答不出來的是開發流程,因為學校一般不會用 CI/CD,所以什麼 SDLC, CI/CD 我完全不會……

因為我覺得對方是 HR ,所以遇到 monitor cpu/mem/swap 我通通跳針回答萬能的 htop,想說 HR 沒技術背景,應該不知道這是啥xD

最後很開心的得知電話面試有過,進入 on-site 階段!

BUT,最扯的是,後來輾轉得知面我的人是工程師,不是什麼 HR,我那天可是把對方當成沒技術背景的人所以亂答啊,然後這個人還是我後來的 mentor 之一,真是萬分羞愧啊啊啊啊啊啊

On-site

on-site 面試一開始先見到主管,主管只考了我一下英文自我介紹,還有簡單的 hash,就叫我等下一關。第二關來了兩個 Production Engineer,一樣又是一堆系統架構問題,比電話面試難的地方大概是白板寫 bash script,還有一些語法等等,這裡我還可以 handle 八成。

第三關,兩個看起來凶狠而實際上也凶狠的 developers 來面我演算法跟 Python 語法。演算法考用 Python 寫一個 Stack,除了做到 pop, push 都是 O(1),還要做 getMaxElement(): 回傳目前 stack 裡面最大的值,也要 O(1),這好像是 leetcode 經典題,大家可以思考一下。

因為是第一次上白板面試寫 code,我超緊張腦袋一片空白,最後回答了一個很爛的答案,弄一個 tree 把 pop, push, getMaxElement 通通變成 O(log(n)),對我也不知道我為什麼要回答這個。

下一題是 Python 語法,因為我狂妄的在履歷上寫 Proficient at Python,果然被電到飛起來,面試官請我實做一個 Python decorator,把某個 function 的 return string 加上一個換行。

一樣考倒我,我知道 decorator 是啥,也知道它怎麼運作,但我沒有親自實做過 QQ

錄取

乍聽之下我面試很慘,我其實面完也覺得很慘根本不會上,白板題都太緊張了,但最後竟然給我拿到了 offer,我也覺得不可思議 Orz

比起說面試大忌「我不會」、「我不知道」,我猜是因為把腦中想法、已知的全部講出來,有很大的加分效果的,Yahoo 的面試題搞不好就是要刻意電你?

補充一下,offer 是台灣這邊給的,還要等美國總部同意,要再等大約兩周,那邊大概就是看 GPA、面試官的 review再評估一次,一般都會過,我後來也有順意拿到並接受這個 offer。

公司福利與一天

Yahoo 不愧是外商企業,福利超級好。我的一天簡述如下:

我每天吃公司的早餐,吃到 0930 回座位,打開尊爵不凡的 15 吋 i7 Mac 寫 code。1140 去排隊拿公司的鬍鬚張滷肉飯,邊吃邊看權力遊戲,再愜意的睡午覺到 1330。下午再去樓上莫凡彼點一杯免費的焦糖拿鐵,搭配 Oreo 當下午茶,順便玩個投籃機或打桌球,下班之前再去拿個優酪乳,1810 準時離開公司。

沒錯,公司會借你 i7 mac 寫 code,也有專人現煮咖啡,並供應早午餐跟零食,福利很好。這一屆還招了三四十個 intern,包含 designer 跟 marketing,所以能可以找到很多人一起吃飯聊天,互相照應XD

上班時間的話表定是 0900 - 1200 + 1300 - 1800,主管 ok 的話當然也可以早來早走。以我們 team 的正職而言,有的九點半到六點半走,也有八點半來五點多走的,總之不用打卡,所以上下班時間很自由。我們 Team 還可以 work from home(也很多人這樣做),反正你有在做事主管是不會管你的。

Manager, Mentor

我的主管是個香港人,有留學過外國的樣子,作風非常美式,不盯上下班只看進度,人也很好溝通,聯絡其他部門的人非常迅速。我覺得實習的主管影響這兩個月非常大,有其他同學在別的公司遇到雷主管就會很慘……

Mentor 全力幫助我們,真的很辛苦,畢竟除了原本的工作,還要處理兩個新來的蔡逼八 intern 哈哈,其實就算 mentor 不在你也能找其他人問問題,大家都很願意回答的,外商公司比較不會有台商公司那種不同職位很難溝通的問題。

總之這部份無可挑剔,mentor 與 manager 堪稱完美啊XD

Project And Paper

interview 的時候主管就有說這是一個跟 security 有關的 project,並詳述內容。雖然最後做的有一點差異,不過大致相同啦。第一個月我們還被要求參加 Yahoo 內部的 conference,所以花了大概三個禮拜在弄這篇 paper,要弄什麼 ACM template 2 column 有夠煩人,但我們硬用 Google Doc 把它做掉XD

好欸,人生第一篇半殘的 paper 就這樣投出去了,其實是一個不錯的收穫

實習中期,大多在寫 project,弄架構以及測試,因為最少要到可以使用的程度。另外公司的開發環境跟我平常不同,加上一堆複雜的權限設計,這讓我們踩了不少雷。至於 project 的細節礙於公司政策不能分享,就是跟 security 有關這樣。

實習後期的最後兩個禮拜幾乎都是在練 presentation 、做 slide 還有海報,這無法避免,因為實習的最後,總是要報告給上層的人聽。我們還比較特別,主管找了一堆美國 team 要我們分享給他們聽,只好拿出渾身解數,想辦法透過 hangout 用英文 present,算是一個蠻不錯的挑戰~

結語

總結一下實習這兩個月學到的東西:

在 coding skill 的部份,我認為成長不大,畢竟開發的時間不多,我們還有 paper 跟 presentation,沒辦法增進太多程式能力。

學習最多的,應該是大公司的開發架構與環境吧,Yahoo 內很多基礎架構都非常新,CI/CD 或者是認證也都做得很好,資料庫、框架、套件等等都弄得很完整。所以在開發階段常常遇到的問題,通常都是已經有一個工具幫你解決XD 與其重造輪子,不如學會站在巨人的肩膀上!

另外就是英文能力了,畢竟幾乎所有的文件、溝通都是用英文,經過這兩個月我比較趕開口跟外國人溝通了~ 溝通後發現,其實英文文法或是用字不精確沒關係,只要置身在那個對話情境(然後假裝自己很有自信),想辦法讓彼此了解在說什麼,就可以正常溝通了:)

最後我給 Yahoo 實習一個非常正面的評價!唯一的缺點大概只有薪水低於行情吧 (大學生 180/hr, 碩士生 200/hr,週一到週五,每天八小時+休息一小時不支薪),其他在福利、內部架構、工作風格上都是無可挑剔的。