日本一本亚洲最大|日本午夜免费啪视频在|国产自产在线视频一区|亚洲福利精品视频

    <object id="4ihfc"></object>
      
      
    1. <object id="4ihfc"></object>
    2. 我要投稿 投訴建議

      國內(nèi)IT碩士北美求職記

      時(shí)間:2021-01-04 09:36:06 求職故事 我要投稿

      國內(nèi)IT碩士北美求職記

        最近簽掉了 offer,找工作的事情算是告一段落。在這里寫一點(diǎn)面試體驗(yàn)和心得,希望對有興趣去北美工作的朋友有所幫助。

      國內(nèi)IT碩士北美求職記

        先簡單介紹下自己,國內(nèi)碩士在讀,明年畢業(yè),沒有牛 paper,也沒參加過 ACM-ICPC 競賽。在實(shí)驗(yàn)室做過內(nèi)核、虛擬機(jī)和 Android 底層相關(guān)的研究工作,接過一些網(wǎng)頁和移動(dòng)開發(fā)的外包,2011 年開始在字節(jié)社兼職負(fù)責(zé)后臺(tái)開發(fā)。另外也經(jīng)常上 Stackoverflow 和 GitHub。

        這次決定直接申請美國的職位后,由于心里沒底,不知道國外公司招聘的難度,所以一開始投了很多公司。幾個(gè)大公司都找人內(nèi)推或者直接投了,小公司也投了不少,比如 Foursquare、Path、Pinterest 和 Square 等都試了。當(dāng)時(shí)甚至在手機(jī)上找了一圈應(yīng)用,把可能涉及后端開發(fā)的應(yīng)用都投了一遍。不過大多數(shù)公司都沒給我安排面試,只有 Microsoft、Google、Facebook、Twitter 和 Hulu 這五家公司愿意給我面試機(jī)會(huì)。

        一般來說,國內(nèi)畢業(yè)后直接投國外公司,會(huì)比出國留學(xué)畢業(yè)后找工作的難度大一些。除了語言因素之外,我了解到的主要原因在于工作簽證,出國留學(xué)畢業(yè)后可以通過 OPT 簽證入職,之后再過渡到 H-1B 簽證。而國內(nèi)畢業(yè)的學(xué)生只能通過 H-1B,這意味著要等到第二年的十月份才能入職。好在 Google、Facebook 等公司不太介意這個(gè)問題,還是會(huì)歡迎國內(nèi)的應(yīng)屆生申請。

        校招的 HR 一般會(huì)有各自的職責(zé)。比如 technical sourcer 負(fù)責(zé)發(fā)現(xiàn)有希望進(jìn)入自己公司的應(yīng)屆生;recruiter coordinator 會(huì)幫助 recruiter 安排面試者的面試時(shí)間、面試官,以及 onsite 面試時(shí)幫助面試者訂機(jī)票和酒店;staffing consultant 則負(fù)責(zé)發(fā) offer 以及介紹公司的具體福利制度,并解釋面試者相關(guān)的問題。不同公司的 HR 職責(zé)的分法自然也不一樣,我在 Facebook 的面試過程中只和兩位 HR 聯(lián)系過,而在微軟的面試過程中則聯(lián)系過五六位 HR。

        在面試流程方面,相比我了解到的國內(nèi)公司的面試,國外公司的面試安排上會(huì)更人性化一些。例如安排面試時(shí)間時(shí),HR 一般會(huì)先讓你給出幾個(gè)空閑的時(shí)間點(diǎn),然后他們再從這些時(shí)間中給你安排面試。此外在為你安排 onsite 的住宿時(shí),也會(huì)詢問你有沒有相關(guān)的要求。

        關(guān)于面試題目,大多數(shù)公司都比較側(cè)重面試者對基本的數(shù)據(jù)結(jié)構(gòu)和算法的掌握程度,以及把這些內(nèi)容實(shí)現(xiàn)為實(shí)際代碼的能力(一般會(huì)要求你選一個(gè)語言實(shí)現(xiàn),而不允許用偽代碼)。越是規(guī)模大的公司越注重這些基本功,而小公司除此之外還會(huì)考察你的開發(fā)經(jīng)驗(yàn),例如對某個(gè)框架的了解和性能優(yōu)化方面的技巧。關(guān)于這一點(diǎn)區(qū)別我的理解是大公司里面會(huì)有自己的框架和開發(fā)工具,面試者的基本功好就能比較快的上手;而小公司一般用社區(qū)現(xiàn)有的工具,所以已有的開發(fā)經(jīng)驗(yàn)可以直接用在將來的工作中。

        下面是這幾個(gè)公司的面試細(xì)節(jié),有些公司因?yàn)樵?onsite 面試的時(shí)候簽了 NDA,所以沒法透露具體的面試題,還請見諒。

        Microsoft

        微軟是我最早投的公司之一,托了在微軟總部工作的一位學(xué)長幫忙內(nèi)推。面試包括一輪 HR 面和四輪 onsite 面。

        申請了一個(gè)多月后一直都沒有反應(yīng),直到微軟國內(nèi)招聘的前一天,北京的 HR 打電話問我是不是投過微軟的職位,要我參加第二天上海站的筆試。

        筆試過后,又過了一個(gè)多月,收到了微軟一位招聘人員的郵件,問我是不是對微軟北美的職位有興趣,要我填一份基本情況的問卷,里面有問到其他公司的面試進(jìn)度。我當(dāng)時(shí)已經(jīng)收到了 Google 和 Facebook 的面試邀請,就如實(shí)填寫了;貜(fù)第二天后就收到了郵件通知,告訴我會(huì)有 HR 進(jìn)一步跟進(jìn)。第三天有一位 HR 聯(lián)系我和我約電面的時(shí)間。微軟約電面的方式和其他公司不大一樣,HR 會(huì)給出很多個(gè)選項(xiàng),讓你在里面選擇幾個(gè)空閑的時(shí)間。另外值得一提的是這些時(shí)間都轉(zhuǎn)成北京時(shí)間了,這也是微軟在安排面試時(shí)比較人性化的一個(gè)地方。

        第一輪面試是 HR 面。HR 先問了一些技術(shù)無關(guān)的問題,比如喜歡做什么,工作地點(diǎn)的偏好,什么時(shí)候開始學(xué)的編程,為什么投了微軟等等。接著是一些智力題,比如 9 個(gè)小球,8 個(gè)質(zhì)量相等,另一個(gè)比其他的重,如何用天平稱兩次把它找出來;公司開發(fā)了一種新鍵盤,有哪些測試它的方法;在會(huì)議室內(nèi)怎么估計(jì)室外的溫度。都是些更像是考驗(yàn)英語水平而不是技術(shù)能力的問題。

        面完第二天收到了 onsite 的通知。雖然是北美的職位,onsite 面試地點(diǎn)卻是在上海。我參加的是周日的面試,和我一起參加面試的還有一位學(xué)生,他之前在微軟實(shí)習(xí),了解到這次有去北美工作的機(jī)會(huì)后也想嘗試下。面試官是從總部飛過來的工程師,一共有四位,其中三位都已經(jīng)是 principal 級的了。HR 提到一般技術(shù)面試要五輪,因?yàn)槲覀冎皡⒓舆^一輪筆試,所以只需要面四輪。

        onsite 面每一輪的過程都差不多,都是面試官自我介紹,接著我介紹自己和做過的一些項(xiàng)目,然后開始技術(shù)問題,最后是我提問的環(huán)節(jié)。微軟的面試問題會(huì)考察面試者編碼、設(shè)計(jì)和測試三方面的能力。

        coding 環(huán)節(jié)要求直接在白板上寫代碼,我被問到兩個(gè) coding 問題。一是如何檢查一棵二叉搜索樹是否正確,二是寫一個(gè)解數(shù)獨(dú)的程序。第一個(gè)問題寫起來很快,第二個(gè)問題因?yàn)闀r(shí)間有限,我先寫了一個(gè)沒啥剪枝的暴力搜索的版本,寫完后和面試官分析了可以在此之上做的優(yōu)化。

        設(shè)計(jì)方面的問題有兩個(gè)。第一個(gè)問題是設(shè)計(jì)一個(gè)分布式的數(shù)據(jù)管理系統(tǒng)。使用場景可以是一個(gè)連鎖店信息的記錄系統(tǒng),每個(gè)分店都有可能更新自己的信息,并把這些改動(dòng)傳播到整個(gè)系統(tǒng)中。在設(shè)計(jì)這一系統(tǒng)的同時(shí)要考慮性能、容錯(cuò)、一致性等要求。我一開始想了一個(gè)基于 push 的機(jī)制,在面試官指點(diǎn)下逐步優(yōu)化,最后還是有不少問題。于是干脆重新設(shè)計(jì)了一個(gè)基于 poll 的系統(tǒng),優(yōu)化改進(jìn)之后面試官滿意了。

        另一個(gè)設(shè)計(jì)問題和類的設(shè)計(jì)有關(guān),要求設(shè)計(jì)一個(gè)包含圖形界面的棋盤游戲。因?yàn)橹白鲞^不少相關(guān)的開發(fā),所以這一部分我還挺擅長的。按照 Single Responsibility 的原則設(shè)計(jì)了幾個(gè)分工明確的類,另外把網(wǎng)絡(luò)對戰(zhàn)和 AI 接口都考慮進(jìn)去了。設(shè)計(jì)完成后面試官要求我從用戶鼠標(biāo)單擊這一事件開始介紹整個(gè)控制流程,在某些類中還會(huì)問及這么設(shè)計(jì)的原因,以及和其他設(shè)計(jì)方案相比的優(yōu)缺點(diǎn)。

        測試部分的問題也有兩個(gè)。第一個(gè)問題是如何測試一個(gè)隨機(jī)函數(shù)。第二個(gè)問題和分布式系統(tǒng)有關(guān),面試官先向我介紹了一個(gè)分布式系統(tǒng),包括它的使用場景和基本的架構(gòu),然后問我其中某一個(gè)部件應(yīng)該如何測試。提到正確性、可伸縮性、一致性和容錯(cuò)性后再給出相應(yīng)的測試方法應(yīng)該差不多了。

        onsite 面試后的第二天后就收到了 HR 的郵件,祝賀我拿到了 offer,并和我約時(shí)間談具體的 offer 細(xì)節(jié)。雖然微軟一開始拖了兩個(gè)多月才開始安排面試,但是一旦開始面試后他家的效率非常高,是這次面試的幾家公司里效率最高的了。

        Google

        Google 面試也是托學(xué)長推薦了。HR 說我的簡歷看起來很不錯(cuò),先給我安排了兩輪電面。

        電面都和 coding 有關(guān),面試官會(huì)給你一個(gè) Google Docs 鏈接,在電話里描述題目后要求你在 Google Docs 上寫程序。題目的難度不高,兩輪一共四題,都是對基本數(shù)據(jù)結(jié)構(gòu)的操作,例如給在一個(gè)未排序的數(shù)組中去掉重復(fù)的數(shù)字,還有把一個(gè)有序數(shù)組轉(zhuǎn)成一個(gè)平衡二叉搜索樹,在一個(gè)已排序但有重復(fù)數(shù)字的數(shù)組中查找元素等。

        第一輪電面聊天的時(shí)候還發(fā)現(xiàn)第一輪的面試官是在 ITA Software 做的。正好前幾天用他們的產(chǎn)品 Matrix Airfare Search 訂到了低價(jià)的去土耳其的機(jī)票,過了一星期神奇的在面試的時(shí)候碰到了這個(gè)團(tuán)隊(duì)的工程師。當(dāng)時(shí)一下子就興奮起來,聊了不少和 Matrix 的有關(guān)的話題。這位面試官聽說中國的機(jī)票也能用他們的平臺(tái)查詢,還挺吃驚的。他還提到他們原本想把計(jì)算任務(wù)放到 Google 內(nèi)部的計(jì)算框架上,但是由于和合作方的合同的限制,沒法把一些商業(yè)數(shù)據(jù)放到 Google 的平臺(tái)里,只能繼續(xù)用原有的計(jì)算引擎。

        第二輪電面的面試官是位印度人,雖然我很難聽懂他的口音,但是他很耐心,會(huì)和我重復(fù)描述問題,所以題目做下來也沒啥困難。在和他的聊天中得知他除了正業(yè)(Youtube)外還在閑余時(shí)間研究機(jī)器人。

        電面結(jié)束后第二天收到了 HR 的郵件,邀請我去總部面試。由于當(dāng)時(shí)已經(jīng)是九月底了,而我十月初打算去土耳其玩兩星期,于是只能從土耳其回來后開始準(zhǔn)備簽證了。Google 的 HR 非常熱情,每次回郵件都很及時(shí),經(jīng)常能在加州時(shí)間晚上十一點(diǎn)左右收到她的郵件。她幫我弄來了 Google 的面試邀請信,順利的過了簽證面試。之后另一位 HR 還幫我訂好了從上海往返 San Jose 機(jī)場的機(jī)票,以及三晚的住宿(因?yàn)榭紤]到我需要倒時(shí)差,多了一晚住宿,這一點(diǎn)也很體貼)。

        Google 給我安排的住宿是 Wild Palms Hotel,在 Sunnyvale。不愧是硅谷的旅館,每天早上起來吃旅館的早飯,都能聽到有人討論 Java。在 Sunnyvale 的第二天我坐公共汽車到處逛了逛,考慮到接下來要在加州玩一圈,就辦了張 T-mobile 的一個(gè)月電話卡(60 美元,包括不限量的短信、通話和 3G 流量,但是這家的信號非常差)。這家旅館和蘋果總部也很近,出門有公交車直達(dá),作為半個(gè)果粉自然不會(huì)浪費(fèi)這個(gè)機(jī)會(huì)。

        第三天在 Google 工作的學(xué)長開車帶我去了公司。Google 的園區(qū)里有不少免費(fèi)自行車,沒有鎖,直接就可以騎。我在 Google 商店買了點(diǎn)禮品,在園區(qū)騎車轉(zhuǎn)了一會(huì)兒后就開始面試了。

        面試一共有四輪,每輪 45-55 分鐘,中間有 5 分鐘的休息時(shí)間。中午會(huì)有 Google 工程師帶你吃飯。帶我吃飯的 Google 工程師也是中國人,了解到這點(diǎn)后我們就知道用中文聊天了。吃飯時(shí)間里了解了不少在 Google 工作的優(yōu)缺點(diǎn),也一定程度影響了我之后做的決定。

        由于簽了 NDA,沒法在這里透露具體的面試題目。面試主要都是算法題,比電面難一點(diǎn)。除了算法題外我還被問到一個(gè)分布式系統(tǒng)的設(shè)計(jì)題,以及一個(gè)多線程相關(guān)的 coding 題,后者用信號量很容易解決。其實(shí)如果能和面試官好好交流,這些題目做出來應(yīng)該是沒啥問題的。

        面完第二周 HR 通知我拿到 offer 了,打電話告之了 offer 的具體細(xì)節(jié)。Google offer 的郵件附件還包括一份各項(xiàng)福利的介紹,著實(shí)吸引人。我還記得 HR 打電話來的時(shí)候我正好在三藩 Exploratorium 邊上的小湖旁,在湖邊美景中聽到這樣的好消息自然分外興奮。HR 還告訴我沒有限制我的簽約時(shí)間,可以在任意長的時(shí)間后再做出決定,也算是 Google 非常體貼的地方。另外具體的職位會(huì)在入職前一段時(shí)間決定,HR 的說法是可以根據(jù)自己的喜好在一些項(xiàng)目之中選擇。

        Facebook

        我在今年三月份投過一次 Facebook 的暑期實(shí)習(xí),被告之已經(jīng)招滿了,接下來校招時(shí)會(huì)再聯(lián)系我。七月份的時(shí)候我又在網(wǎng)站上投了一次開發(fā)職位,還麻煩一位在里面實(shí)習(xí)的學(xué)長幫我內(nèi)推了。八月一位 HR 聯(lián)系我安排第一輪面試,電面安排在了九月。

        Facebook 的 HR 也很負(fù)責(zé),她在電面前幾天打電話和我聊天,介紹 Facebook 的基本情況,以及面試流程。第一輪電面結(jié)束后的情況分三種,如果面試表現(xiàn)很不錯(cuò),那就直接獲得了 onsite 的機(jī)會(huì);如果面試表現(xiàn)一般,面試官不確定要不要,就會(huì)再加面一輪;如果面試表現(xiàn)不好,就可能直接被刷了。除此之外 Facebook 的 HR 比較體貼的一點(diǎn)在于給中國人安排的第一輪面試官很有可能也是個(gè)中國人,降低了語言上出現(xiàn)問題的.可能。

        HR 的電話里還提到 Facebook 入職后有六星期的 bootcamp,可以熟悉各個(gè)項(xiàng)目和團(tuán)隊(duì),具體的項(xiàng)目是 bootcamp 結(jié)束后自己選的。問了一下在那工作的朋友,做出的選擇一般都會(huì)被滿足,因?yàn)?bootcamper 的選擇分布還算比較平均的。

        Facebook 電面和 Google 差不多,是在 collabedit 上進(jìn)行的。也是面試官在電話中口述題目,我在網(wǎng)站上寫代碼。老實(shí)說這個(gè)網(wǎng)站的體驗(yàn)不怎么樣,面試過程中出現(xiàn)過幾次我這邊寫的代碼沒在面試官那里出現(xiàn)的情況。好在面試官比較有經(jīng)驗(yàn),一發(fā)現(xiàn)有問題就會(huì)提醒我刷新頁面。

        第一輪電面我做了三個(gè) coding 題,題目都不難,但是要求 bug free。電面的面試官抓 bug 的能力著實(shí)厲害,找出了兩個(gè)我一開始沒發(fā)現(xiàn)的 bug。好在他提示說有 bug 但沒指出的情況下,我把它們都修正了。面試題目難度和 Google 的電面難度差不多,都是對數(shù)組、二叉樹和字符串的基本操作。第一題是把一個(gè)字符串中的 %20 都轉(zhuǎn)成空格,第二題是按層打印一棵二叉樹,第三題是找出兩個(gè)有序數(shù)組里不同的數(shù)字(類似求集合的異或)。程序正確后面試官還會(huì)問一些優(yōu)化方面的問題,例如在不同的情形下應(yīng)該使用哪一種算法。

        面完后第二天收到 recruiter 的消息說我拿到 onsite 的資格了,具體的時(shí)間會(huì)在十一月通知我。

        Facebook 給我安排的酒店是 Palo Alto 的 Sheraton。酒店門口停著不少出租車,面試那天的出租車司機(jī)還是用 Square 收的錢。我的面試正好趕上了他們的 University Day。這一天的安排是上午三輪面試,中午吃飯,下午逛一圈公司以及三場講座。我的第三輪面試還出了點(diǎn)茬子,面試官一直沒出現(xiàn),HR 只能先帶我去吃中飯。中飯結(jié)束后 HR 帶著別人邊逛公司邊介紹,我只能繼續(xù)我的第三輪面試了。

        Facebook 校招時(shí)本科生和碩士生是統(tǒng)一級別的,面試只包括算法題,不會(huì)有設(shè)計(jì)題;而博士生則高一級,面試的時(shí)候還會(huì)有設(shè)計(jì)題。三輪 onsite 面試包括一輪 jedi 和兩輪 ninja。jedi 面主要是讓面試者介紹自己的項(xiàng)目經(jīng)歷,了解面試者的技術(shù)專長和偏好,不過面試官也讓我做了一個(gè)簡單的 coding 題。ninja 面各有兩個(gè) coding 題,題目難度都不大,和電面差不多。但是與電面不同的是,面試官會(huì)深入問一些細(xì)節(jié)的問題,例如代碼里生成了多少個(gè)新的對象,有沒有辦法優(yōu)化等,有一個(gè)問題還要求我用一種算法實(shí)現(xiàn)后,再用另一種完全不同的思路實(shí)現(xiàn)一次。(onsite 面試是簽了 NDA 的,這里就不方便透露具體的題目了)

        面試完之后有三個(gè)講座,第一個(gè)講座介紹了 Facebook 總體的工作環(huán)境。第二個(gè)分產(chǎn)品和后臺(tái)兩個(gè)講座,同時(shí)進(jìn)行所以只能選一個(gè)。我一開始選擇了后臺(tái)開發(fā),不過當(dāng)時(shí)突然對產(chǎn)品有了興趣,就去聽了產(chǎn)品的講座。一位負(fù)責(zé) Events 開發(fā)的工程師結(jié)合這個(gè)產(chǎn)品介紹了下 Facebook 內(nèi)部產(chǎn)品開發(fā)的流程,例如新特性是怎么出來的,如何測試等。最后一個(gè)環(huán)節(jié)是幾位剛從 bootcamp 畢業(yè)的員工和我們分享他們在 Facebook 中工作的感受。

        University Day 結(jié)束后,參加活動(dòng)的每位學(xué)生還收到一個(gè)包裝精致的禮物。拆開來后是一塊兩面分別刻著「Move fast and break things」和「Proceed and be bold」的玻璃磚。我還是很喜歡這個(gè)禮物的,這也一定程度上影響了我最后的選擇。

        面試完第二天 HR 從我這里要了三位 reference,包括他們的職稱和聯(lián)系方式,接下來 HR 會(huì)聯(lián)系他們詢問我的情況。Facebook 的動(dòng)作也很快,第二周就給我發(fā)了 offer。有意思的是,offer 郵件的 welcome package 最后一頁建議面試者在入職前熟悉一下 Unix,還推薦了幾篇文章和兩本書。

        Google 和 Facebook 的 onsite 是在同一星期面的,前后只隔了一天,收到 offer 的時(shí)間也只差了一天。package 方面, Facebook 比 Google 的要好不少,但是 Google 的 HR 說可以 match Facebook 的 offer。去之前我想過如果兩個(gè) offer 都拿到,那就去 Google。但是到了這兩個(gè)公司,和幾位面試官以及在里面工作的朋友深入聊天后,最終還是選擇了 Facebook,因?yàn)樗?guī)模更小,應(yīng)該能有更多的鍛煉機(jī)會(huì)。

        另外我了解到的 Google 和 Facebook 的面試流程都是先由各位面試官給你打分,例如分 strong hire / hire / weak no hire / strong no hire 四檔(不一定完全一致,比如可能會(huì)多一檔 neutral)。同時(shí)要寫下關(guān)于你的面試情況的報(bào)告。再接著由 hiring committee 討論要不要給你 offer,以及 package 如何。有亮點(diǎn)(某位面試官的 strong hire)很重要,一個(gè) strong hire 和幾個(gè) weak no hire 會(huì)比平庸的清一色的 weak hire 好。

        Hulu

        Hulu 是這幾個(gè)公司里唯一一個(gè)我沒有找人內(nèi)推而拿到面試機(jī)會(huì)的,也是面試體驗(yàn)最好的一個(gè)公司。Hulu 和 Twitter、Zynga、Foursquare 等公司一樣,用了 jobvite 接受和追蹤職位申請。因?yàn)槭巧暾埖牡谝患夜,我在申?Hulu 時(shí)的 cover letter 寫得很詳細(xì),針對職位需求上的每一條都寫了我的相關(guān)工作經(jīng)驗(yàn),這也許是最后能拿到面試機(jī)會(huì)的原因吧。其他公司的 cover letter 都寫得很簡單,短短兩段就結(jié)束了。

        Hulu 的第一輪電面和其他公司的有些不同。45 分鐘里要做四個(gè)題。面試官提前十分鐘發(fā)了一封郵件給我,上面有兩段代碼。第一段代碼是一個(gè)檢查兩個(gè)字符串是否是 anagram 的程序,寫得很繞而且性能很差。面試官先問我這段代碼的用途,然后問有什么方法優(yōu)化,并要求我把代碼寫在 titanpad 上。接著他問了我第二段代碼是做什么的。第二段代碼也寫得有點(diǎn)復(fù)雜,不過可以看出是一個(gè)檢查有向圖里面是否存在環(huán)的程序。

        然后是設(shè)計(jì)題,要求設(shè)計(jì)一個(gè) LRU Cache,只要說出接口、用到的數(shù)據(jù)結(jié)構(gòu)和大致的算法就可以了,我想了個(gè)用一個(gè) LinkedList 和一個(gè) HashMap 的方案。

        第四題還是代碼題,寫一個(gè)合并兩個(gè)有序鏈表的程序。

        面完后還有點(diǎn)時(shí)間,我們就聊了聊。面試官是在 Hulu 做支付的,主要用的語言是 Scala(Hulu 里面各個(gè)團(tuán)隊(duì)用的技術(shù)都很自由,可以選擇自己喜歡的語言開發(fā),Python Ruby C# Java 都有)。我當(dāng)時(shí)正好在字節(jié)社做 iOS 上的應(yīng)用內(nèi)購驗(yàn)證,就問了他有沒有處理黑卡壞賬方面的經(jīng)驗(yàn)?上 Hulu 在 iOS 上只有訂閱方式的支付途徑,沒有 non-consumable product 的相關(guān)經(jīng)驗(yàn)。

        面完后 HR 給我安排了第二輪電面。面試官來自法國人,是 FFmpeg 的維護(hù)者之一。面試官看我簡歷上有星際比賽的獎(jiǎng)項(xiàng),還當(dāng)過校隊(duì)的隊(duì)長,就和我聊起了星際2的平衡性。接著說到最近的蟲群之心 beta,他覺得改動(dòng)沒有當(dāng)年母巢之戰(zhàn)的有意思,因?yàn)榍捌诘母膭?dòng)不大。

        聊了二十分鐘的星際2后才切入正題,coding 題很簡單,就是在一個(gè)數(shù)組里找出兩個(gè)數(shù),使得他們和為給定的數(shù)。寫完這個(gè)最基本的版本后還有些別的變化,比如如果所有的數(shù)都是一定范圍內(nèi)的正整數(shù),這時(shí)可以用一個(gè)數(shù)組統(tǒng)計(jì)每個(gè)數(shù)字的出現(xiàn)頻率。

        二面結(jié)束后等了三星期還沒有消息,不知道是默拒了還是 HR 忘了。三星期后我又寫了封信詢問我的二面結(jié)果,HR 回信說歡迎我去他們公司 onsite 面,之前校招忙把我忘了。

        Hulu 的總部在洛杉磯,Santa Monica 附近,離海灘只有幾公里的路程。一進(jìn)面試的會(huì)議室就看到白板上寫著「Welcome Yuanxuan to Hulu」,一下子對這個(gè)公司充滿了好感。

        Hulu 的 onsite 面試題是面過的幾家公司里最難的,一共有四輪。前三輪由來自內(nèi)容團(tuán)隊(duì)、API 團(tuán)隊(duì)和架構(gòu)團(tuán)隊(duì)的工程師面試,最后一輪的面試是 CTO 親自面的。題目也是涵蓋了算法、設(shè)計(jì)和實(shí)際的編碼,有一輪的問題從設(shè)計(jì)一個(gè)分布式系統(tǒng)開始,討論了這個(gè)系統(tǒng)的身份驗(yàn)證、數(shù)據(jù)分片、原子性、容錯(cuò)等問題的設(shè)計(jì),考察了很多細(xì)節(jié)的地方,最后還讓我寫了 SQL,以及如何優(yōu)化這些查詢指令。不過我對 SQL 很不熟悉,每次用都要查手冊,當(dāng)時(shí)用了 ActiveRecord 的查詢接口代替。

        CTO 面完后 HR 進(jìn)來問了我有沒有其他公司的 offer,接著帶我逛了一圈 Hulu 的工作場所。Hulu 總部只有 40 位左右的工程師,大家相互之間都很熟,氣氛非常好,也比較自由。逛完后 CTO 帶我出去買了杯咖啡,在回來的路上給我發(fā)了 offer。Hulu 的 package 和 Facebook 的在數(shù)額上差不多,但是因?yàn)楣拘再|(zhì)的問題沒法發(fā)股票給我,只能用相近的獎(jiǎng)金代替。

        回到公司后,CTO 問我對哪個(gè)團(tuán)隊(duì)比較有興趣,我說如果我最后簽了 Hulu 的話應(yīng)該會(huì)想去做后端。HR 就安排了這個(gè)團(tuán)隊(duì)的工程師和我一起出去吃晚飯,還給了我兩張 voucher 用于支付回去的出租車。當(dāng)時(shí)因?yàn)橛X得去 Hulu 可能性不大,覺得對方這么熱情實(shí)在不好意思,可是還是推脫不掉,只得跟著他們?nèi)チ烁浇患也蛷d。因?yàn)?Hulu 主要內(nèi)容是美劇和電影的,飯桌上討論的主題也是各種電視劇,還提到接下來 Hulu 可能會(huì)搬到附近另一個(gè)辦公樓。

        最后還是沒有接受 Hulu 的 offer,雖然對他家印象非常好。一方面我更希望在灣區(qū)工作,另一方面小公司吸引人的一個(gè)點(diǎn)在于初期的股票,由于 Hulu 沒法發(fā)股票所以這個(gè)優(yōu)勢也就沒了。

        Twitter

        Twitter 用的也是 jobvite 的招聘系統(tǒng),我麻煩了一位在里面工作的學(xué)姐幫忙內(nèi)推。據(jù)說 Twitter 相比其他互聯(lián)網(wǎng)公司 work-life balance 是比較好的,工作會(huì)相對輕松。而在給我安排面試時(shí) HR 給出的可以約的最晚的時(shí)間點(diǎn),也是幾個(gè)公司里最早的,于是我只能很早起床等待面試官的電話。

        第一面是一位負(fù)責(zé)移動(dòng)端網(wǎng)頁前端開發(fā)的工程師面的。他說我的簡歷上工作經(jīng)歷很豐富,就不讓我做 coding 題了,讓我談?wù)勛鲞^的這些項(xiàng)目。談完項(xiàng)目后又進(jìn)入了聊天時(shí)間,我提到喜歡 Twitter 的一個(gè)原因在于他有很多好用的開源項(xiàng)目。比如我平時(shí)寫一些小型的 web 應(yīng)用都會(huì)用 bootstrap,省時(shí)省力;而我之前實(shí)習(xí)的時(shí)候做的一個(gè)分布式的內(nèi)容下載系統(tǒng),也參考了 murder 的實(shí)現(xiàn)。另外因?yàn)楫?dāng)時(shí)我在實(shí)現(xiàn)字節(jié)社 iPhone 和 iPad 的 web 界面時(shí)碰到了之前修復(fù)的 bug 后來再次出現(xiàn),忘了測試的情況,就問了他 Twitter 是怎么做移動(dòng)端 web 界面的測試的。結(jié)果面試官說他們也基本上是買一堆設(shè)備然后人工測的,倒是桌面端可以用 Selenium。

        愉快的結(jié)束第一面后,就開始了略有點(diǎn)無語的二面。我的二面前三次都沒面成,第一次被放鴿子了;第二次面試官是 iOS 團(tuán)隊(duì)的,聽我介紹完自己想做后端時(shí),說他面我不合適,會(huì)讓 HR 再幫我重新安排一輪;第三次再次被放鴿子,面試官那天很忙,抽不出身。每次面試失敗后都要再等一星期才能收到 HR 的消息,所以光二面就拖了一個(gè)月。

        第四次二面終于面成了。我聽面試官介紹應(yīng)該是來自平臺(tái)相關(guān)的團(tuán)隊(duì),不過面試官接著問我是喜歡寫代碼還是喜歡倒騰環(huán)境的時(shí)候,我說喜歡寫代碼,結(jié)果面試官說他的團(tuán)隊(duì)主要是做運(yùn)維的,開發(fā)的工作量很小。估計(jì)是考慮到之前已經(jīng)放過一次鴿子了,這次面試官還是繼續(xù)面下去了。

        雖然運(yùn)維團(tuán)隊(duì)本身不是我喜歡的,但是面試官的問題相當(dāng)對我胃口。一上來就是一連串的幾個(gè)關(guān)于僵尸進(jìn)程的問題:什么是僵尸進(jìn)程?如何列出所有的僵尸進(jìn)程?如何獲得這些僵尸進(jìn)程的 PID?如何把它們終止?我用 ps grep awk xargs 配合管道把這幾個(gè)問題用一行命令行解決了,他很滿意。

        第二問是統(tǒng)計(jì)一個(gè) httpd 的訪問日志中,訪問量最大的前五個(gè) IP。我用 Ruby 寫了一個(gè),六行代碼就能搞定。

        接著面試官了解 DNS 嗎,如果瀏覽器沒法上網(wǎng)一般怎么診斷?我的回答是先 dig 看 DNS 解析是否正確,然后用 ping 判斷 IP 是否可以訪問,再用 curl 看是不是瀏覽器設(shè)置的問題。最后還可以用類似 www.websitedown.info 的服務(wù)檢查。

        第四個(gè)問題是怎么把一個(gè)文件復(fù)制到多個(gè)機(jī)器上?我說可以先用 ssh-copy-id 把公鑰拷過去,然后再用 scp 拷文件。面試官說這樣機(jī)器多就麻煩了。我解釋到可以用 expect 寫腳本自動(dòng)輸入密碼,還加了句當(dāng)然也可以用 Twitter 的開源工具 murder 分布式部署。

        第五問是文件系統(tǒng)中 soft link 和 hard link 的區(qū)別。我的解釋是 soft link 是一種特殊的文件,它的內(nèi)容是被指向的文件的路徑,而 hard link 是直接指向 inode 的。所以 soft link 可以用于目錄,但是 hard link 不可以。

        文件系統(tǒng)中 inode 和 path 的區(qū)別。我回答是 inode 是文件系統(tǒng)的一個(gè)數(shù)據(jù)結(jié)構(gòu),指向某個(gè)磁盤上的文件;而 path 是由多個(gè) struct dentry 組成的,每個(gè) dentry 描述了 inode 的父子關(guān)系。

        最后一問是如何修改 DNS 服務(wù)器?我說可以修改 /etc/resolve.conf。

        感覺 Twitter 的電面題會(huì)包含不少概念題,當(dāng)然也有可能是運(yùn)維團(tuán)隊(duì)的特點(diǎn)。幾天后我收到 HR 的郵件,告訴我兩位二面面試官都表示我對他們的團(tuán)隊(duì)不怎么感興趣,而除了這兩個(gè)團(tuán)隊(duì)外目前還沒有其他團(tuán)隊(duì)可以給我安排面試。估計(jì)從此就進(jìn)入等待列表了,沒能去總部 onsite 面試,我在簽掉 Facebook 后就聯(lián)系 HR 把招聘進(jìn)程終止了。

        后記

        最后簽了 Facebook,等著下一步關(guān)于工作簽證手續(xù)的通知。mm 也表示愿意和我一起去美國,她應(yīng)該會(huì)先在那里讀個(gè)碩士再找工作。

        希望接下來的簽證手續(xù)等事情都一切順利了。

      【國內(nèi)IT碩士北美求職記】相關(guān)文章:

      北美求職簡歷十“不要”02-07

      國內(nèi)大學(xué)直申新西蘭碩士條件01-24

      海歸碩士求職簡歷03-08

      北美與美國教學(xué)設(shè)計(jì)02-07

      碩士生求職簡歷04-20

      外科碩士個(gè)人求職簡歷05-22

      碩士學(xué)生的求職信08-13

      碩士英文求職信07-11

      會(huì)計(jì)女碩士的求職經(jīng)歷01-19