美國大資料工程師面試攻略有哪些?

來源:互聯網
上載者:User

大家好,我是來自矽谷的董飛,應國內朋友邀請,很高興跟大家交流一下美國大資料工程師的面試攻略。

個人介紹

先做一個自我介紹,本科南開後,加入了一個創業公司kuxun,做即時資訊檢索,後來進入百度基礎架構組,搭建了Baidu App Engine的早期版本,隨後去Duke大學留學,在攻讀碩士期間, 做跟Hadoop大資料相關的研究專案Starfish,之後在Amazon EC2部門實習,瞭解它們的內部架構,畢業後加入Linkedin,做廣告組的架構,涉及Hadoop調優,Data Pipeline, Offline/ Online, 即時系統。 最新是在Coursera從事資料工程師工作。

  

在多年工作中,除了對技術的不懈追求,也積累了大量的面試經驗,從國內的一線互聯網公司百度、阿裡巴巴、奇虎、人人,到美國一線公司Facebook、Google、Linkedin、Twitter、Amazon, 到熱門Startup、Uber、Pinterest、Airbnb、Box、Dropbox、Snapchat、Houzz,拿到10+ offer,並且在Linkedin期間也面試過100+候選人,參與面試題制定, 樂於分享並説明很多人成功求職,實現目標。

矽谷高科技公司介紹

  

我們看一下這張矽谷地圖,它坐落于美國加州,從聖約瑟到三藩市的狹長地帶,中間是San francisco bay,簡稱灣區。 它的由來是這邊有電腦核心處理器中離不開的矽,30年來,矽谷就發展成為無數技術性創業公司的搖籃。 在20多年前,這裡就有很多硬體公司成功上市,如Intel、Oracle、Apple、Cisco。 10年前,互聯網的興起,造就了Yahoo、Google、Ebay的神奇。 而如今Tesla、Facebook、Twitter、Linkedin正扶搖直上,成為美股高科技股的領頭羊。 這些公司的市值從幾十billion到幾百billion,PE從負數到上千,瘋狂的估值背後也改變了世界。

  

如果說矽谷成功是有原因的,我覺得有兩點:

一方面,地理位置是得天獨厚吸引大量人才,這裡有Stanford和加州州立高校提供智力庫的支援,在矽谷可以看到來自全世界的最聰明的人,中國、印度人、猶太人是構成這些Engineer的主力。 雖然國內做技術自嘲為碼農,但在矽谷成為一個優秀工程師還是收穫頗豐的。

另一方面,創業是一個永恆的話題,在Stanford有個說法——空氣中都飄揚中創業的味道,一些早期員工通過上市套現又積累經驗成了天使投資,Y Combinator、各種技術Forum、Meetup、創業導師等都很活躍。 資本的力量功不可沒,早年VC通過投資、收購、上市放大形成一個雪球效應。 大家總喜歡問什麼是next big thing,哪一個是下一個Facebook,下一個Musk,根據統計10年能成就一個千億以上的公司,目前這個進程正在縮短。

  

我就拿Linkedin作為例子,介紹高科技公司(FLG)是什麼樣子。 它是成立于2003年的職業社交網站,在10年的發展中,也不是一下子爆發的,目前有3億的全球使用者,雖然跟Facebook、Google 10億+使用者沒法比,但是它有很好的護城河,使用者定位高端精准,單位價值高。 這張照片中左邊這位是創始人Reid Hoffman,是Paypal黑幫成員,在矽谷也是呼風喚雨的大佬,目前是董事和投資人。 中間這位是CEO Jeff,2013年被Glassdoor評為最佳CEO,作為職業經理人,成功説明linkedin高速成長,他最喜歡提到transformation,希望我們每個員工能挑戰自我,在各自崗位上進化。

Linkedin提供了員工很好的福利,有號稱灣區最佳的免費食堂,每個月一次的In day,Hack day,説明員工內部創業的Incumbator計畫。 它特點是資料驅動的開發產品,比如 People you may know, Job you may be interested。 我做過Sponroed Ads 都是需要很強資料背景和Data scientist的支援。 它的Biz model也很獨特,有3個line,面向公司的招聘服務,面向廣告商的市場服務,面向個人的訂閱服務,還有最新Sales Solution,因為這麼多可能性,成為華爾街的寵兒。

矽谷最新的創業動向

說矽谷,除了那些已經成功的大公司,不得不說一下現在最新的創業動向,這些代表了未來下一個FLG。 我總結了一些領域和代表公司:雲計算(Box, Dropbox)、大資料(Cloudera)、消費互聯網(Pinterest)、健康(Fitbit)、通訊(Snapchat)、支付(Square)、生活(Uber)。

  

這裡是華爾街網站更新的最新融資規模,比如Uber就達到18Billion的估值,我當時拿到Offer沒去,還是覺得很瘋狂,如果細看這張表,大家可以看到矽谷(藍色)尤其是三藩市它們的融資規模遠遠大於其他地區,還是地理決定論。 而在國內的兩家小米,京東都是在北京,而最近大家看到一些泡沫論,說什麼阿裡巴巴上市是否美股到頂,經緯VC創始人也提醒我們泡沫的風險,我無法判斷。 如果能參與到下一波浪潮裡面去是很過癮的。 我推薦大家去看看 《浪潮之巔》、《奇點臨近》,我還是很期待未來20年的技術革命。

大資料相關技術

  

我個人熱愛大資料,在矽谷這也是大家津津樂道的,有個笑話,big data is like teenage sex: everyone talks about it, nobody really knows how to do it. 其實大家還是興趣驅動就好,不要那麼功利,大資料技術涉及太多,平常工作中也是慢慢積累,有無數的坑和技術細節需要克服。 並不是說那個技術最熱就要用哪個,如果你用不好,你的壓力很大的,舉個例子,你用某個開源資料庫,發現它偶爾有資料丟失怎麼辦,如果這是線上服務,你不斷收到報警,這時候你當時選用它的優點 scalable,容錯性都沒意義了。

接著說大資料,這裡面Hadoop作為行業標準,我面過的除了Google,微軟不用,幾乎所有的公司都在用,建議大家利用這個機會。 這裡面有三巨頭,Cloudera是老牌Hadoop諮詢公司,Hadoop的創始人做CTO,Hortonworks也是很多Hadoop的committee,MapR是提出hdfs的erasure 編碼方式高效而著名, 它們都是融了鉅資,模式也很像,先推出社區免費版,但有個商業版提供更好的管理。 而今年出現一匹黑馬Spark,簡單說就是記憶體級別的計算,比Hadoop框架裡能節約IO,利用緩存,能適應批次處理,反覆運算,流式計算。

  

這裡看一下它的生態系統,如何學Hadoop是個循序漸進過程,先要理解學習它的Core系統,HDFS, MapReduce, Common,在週邊有無數的系統工具方便開發,我個人用過的是Avro作為資料格式, Zookeeper作為選主的高可靠性的元件,Solr作為搜索介面,Pig搭建工作流,Hive 資料倉儲查詢,Oozie管理工作流,HBase 作為KV分散式存儲,Mahout資料採礦的庫,Cassandra nosql 資料庫。 我建議初學的考慮Chinahadoop的課程。

而Hadoop本身也是個進化過程,幾年前0.19版本,到0.20、0.23分流成Yarn架構,最後進化成Hadoop2.0, Hadoop1.0 和 2.0 它們的介面和元件是完全不同的,但總體上Hadoop 2.0 是趨勢, 因為它有Yarn這樣分離的資源管理平臺,可以以外掛程式的方式開發上面的Application,解放了生產力,而像Spark,Storm這些新型處理器也是支援Hadoop 2.0的。

  

這裡是Hortonworks它們提出來的社區版本架構,可以說標準的制定者,一流的公司制定標準,其他的公司一般用只能用它們提供的穩定版,沒有多少話語權。 但從事大資料,並不見得是要去這些制定標準的公司,大量的應用也是非常考驗架構的靈活性,並且能看到實際的產品,很有成就感。

  

說到2014年火的,還是要看Spark。 已經開了2屆Spark大會,上千人的規模,無數人對比Hadoop 100倍的性能提升而興奮。 這裡說它的背景是誕生於Berkeley的Amplab,它們有個很有名的BDAS(Berkeley Data Analytics Stack),目前Spark已經成為Apache的頂級專案。 去年這個實驗室的教授跟學生出去成立Databricks公司,拉到兩輪上千萬的風投,有人問Spark是Hadoop的終結者嗎?我看2014年Spark大會上,所有的Hadoop大佬公司都是鼎力支援, 像Cloudrea甚至放棄Impala的一線支援而轉變成Spark。

如果這麼發展下去,星星之火可以燎原啊。 它裡面用到Scala是一種函數式語言。 裡面的元件也很多,有Shark支援SQL類似Hive,有Spark Streaming、MLlib、Graphx、SparkR、BlinkDB。 它的核心資料結構是RDD,可以跑在各種分散式系統上。 總體上是個包容性+侵略性的系統。 我個人也很看好它們的發展。

  

我在Linkedin做過一些大資料的廣告系統,我就簡單提一些我學到的。

Linkedin有特有的開來源資料系統,包括Voldermort (分散式KV存儲), Kafka (分散式即時訊息佇列),Espresso (基於mysql的海量存儲),Databus(資料變化捕捉),可以查看HTTP:// data.linkedin.com

Lambda架構,離線使用Hadoop做pipeline,near online做高效聚合,提供混合式架構,達到即時和一致性的妥協。

Kafka在linkedin起到奠基作用,一方面所有即時tracking都是通過它,另一方面 data bridge,比如圖中通過kafka可以實現資料的無縫銜接,否則很難想像每個資料來源異構系統,它們的通信將是 n^2 級別的複雜度。

分散式並不酷,如果考慮到高可靠性,強一致性而資料量並不是想像的大,不見得要使用;否則自討苦吃。 儘量使用成熟的,可靠的,例如MySQL, Memcached

求職經驗

  

根據我的求職經驗,我給出幾點建議:

如果面試的話,我先看他們的經驗是不是match,對應屆生看有沒有實習經歷,如果你在Google、Linkedin實習,絕對加分,學校當然也需要,比如我們招人UC Berkeley是要機會大一些。

我看過很多簡歷,不推薦用DOC,因為在不同系統中排版不一樣。 簡歷也不要寫太長,不是大牛就不超過2頁。 儘量突出你的技能如何匹配公司的職位,比如這個公司都是用C++,你上面都沒C++,是不大合適。 我也很不喜歡看到精通,如果你這樣寫,就很容易引起麻煩,最好寫多少年經驗,對具體技術的掌握。

面試當然需要準備,但到底是事倍功半,還是事倍功半。 我建議把你的經歷精選1、2個準備熟練,包括如何團隊分工、技術細節、遇到困難、如何克服。 不要貪多,就把你現在用的東西準備好,沒人關心你5年前幹啥的。

社交很重要,最簡單是去招聘會就可以跟人混個臉熟,如果你在網路多利用有些網路招聘網站,如dice,indeed,你還要巧妙利用Linkedin,加入高級帳號,可以查看有些校友的資源,發站內信, refer比你網上瞎投效率要高很多。

如何找到面試題?

網上有很多資源,比如Glassdoor是個匿名發佈網站,經常有面試題,有些技術論壇Stackoverflow、Careercup也會有很多參考題。

如何知道一些靠譜的公司?

可以看你知道的牛人都選擇去哪些公司,如果名氣不大,可以去流量排名上去看他處於什麼地位,如果沒有上市,可以看它的融資規模,還可以從Linkedin看它的員工是否優秀。

什麼時候才知道準備好面試?

演算法是否過關,是否能寫出遞迴和動規;

Coding是否過關,是否能在IDE中寫出Bug Free;

Design是否過關,是否能給出Tradeoff;

專案經歷整理,能夠流利說出架構、難點、自己的貢獻;

加分項:Github、Blog、參與Open source。

如何回答行為面試問題?

比如你有沒有過失敗的經歷,如果你老闆給你不喜歡的任務怎麼辦,你想像中成為什麼樣的人。 這裡一方面可以結合自身精力,另一方面多關注公司的介紹頁面,包括公司創始人背景、企業文化、招聘的要求。 這些都是可以提前做好功課,儘量體現出來你的激情、負責、勤奮等優秀品質。

如何拿到美國工作簽證?

要來美國工作,一般是要求H1B的身份,是有雇主向勞工局提出申請Sponsorship,根據現在的形式,每年的名額都是一搶而空,那麼這樣就需要抽籤決定。 在4月1日之前提出申請,4月1日之後開始抽籤,如果是在美國獲取碩士以上的學位,可以有優先順序,抽取概率更高,而根據2014年情況,普通的抽中幾率是50%。

如果沒有抽中,如果是美國有碩士學位,可以使用OPT照樣工作,並且可以省社會安全稅。 而如果是海外的,只能等來年在抽。 像Google、FB這種全球性公司,他們也會提供其他國家辦公室的機會,然後比如工作一年後再通過L1或者H1B繼續到美國工作。 另外如果你抽中名額,再跳槽期間是可以transfer而不需要依賴名額,每3年可以續一次,最多6年。 如果H1B期間申請綠卡,還是可以延長的。

面試流程

  

如果你拿到面試機會,下面的流程是先電面,對於engineer,演算法coding基本功是必須的。 還是準備好你的小白板,根據面試官的題給出思路和代碼,說起來容易,但就是那10多行的代碼,80%以上的人都掛了。

然後就是onsite,美國公司為了體現人才為先,都會來一次onsite,如果是遠端過來,報銷機票、車費、酒店、吃飯,聽起來也是免費旅遊的機會。 但onsite也不容易,基本上4-6輪,每輪45min到1小時,也會讓你挑戰極限的,經常是頭痛欲裂,我最狠的一次10天面7家onsite,連續飛,連續面,真是折磨。

他們都考察什麼呢,簡單說是你到底聰不聰明,是否經過工程訓練,是否能夠合作。 總體分成3塊,一類是技術問題,比如演算法,系統經驗;一類是交流能力,你個人經驗,興趣;一類是hr喜歡問的行為面試,比如你有沒有過失敗的經歷,如果你老闆給你不喜歡的任務怎麼辦,你想像中成為什麼樣的人。

面試準備

  

技術面試這裡面涉及面也挺廣。 看似簡單的coding不見得能過關,不信,你寫個字串查找,我不需要你知道KMP,就是暴力解法,可是90%的人都掛在這道題上面。 演算法方面,常見的hashtable、heap、trie。 系統設計也是很多同學害怕的,很多人說我沒設計過那些系統。

如果大家演算法都過關,系統設計就能繼續篩選,體現出來你的層次。 還要一些很隨機的問題,數學上的概率組合,Linux的常見命令都有可能觸及。

  

我這裡列出考察Hadoop的一些基本問題,都比較簡單,大家Google一下,知乎上也有我的詳細題目。

  

對於演算法,是考察的重中之重,我總結了一些高頻題目,同樣參見我的知乎。

  

這兩道題是我真實中被問道的,雖然不是常規,大家可以思考一下。 其中求面積的,是Apple當時問的,同學們能在15min內演算出來嗎?

選擇工作

  

假設你經歷過面試的考驗,拿到offer,下面就要面對如何選擇的問題。 在考慮offer之前,先對公司做個研究,比如這公司是什麼規模?產品是什麼? Glassdoor員工如何評價的?你的職位你喜歡嗎?這就跟選學校一樣,如果選錯了,也是需要走很多彎路。

我個人的參考是,首先這公司是不是上升期的,產品是否有愛,團隊是否比較強,學到東西。 對公司分類,Hortonworks這種是純技術性的,面向企業級的可能沒多少人知道;而Uber是大眾消費性,很多朋友都用過。 現在的熱點是移動互聯網,大家也可以多考慮這一塊。

大家都很關心矽谷公司的待遇福利,這邊我也做個介紹,待遇分成基礎工資,根據Glassdoor排名,大概在每年10w刀-20w刀,矽谷目前也是水漲船高,獎金有些大公司有(Google, FB 15% - 20%)。 如果是上市公司,會給限制性股票,分3-4年行使,創業公司一般給期權,不同就是限制性股票是白送的,不需要自己掏腰包,期權需要自己買入,不同時期價格不同。 但股票交的稅非常高,期權是有些長期避稅。

最後也要考慮你的興趣和對風險的承受能力,如果去大公司做個螺絲釘,實現共產主義生活也無可厚非。 去小公司壓力大,成長快。 但也要做好失敗的準備,看看當年zynga教訓。

職場感觸

  

矽谷生活著一群不在乎別人怎麼看,但有很瘋狂的想法的人。 大家在這談創新、談技術、談創業,資本湧入,人才競爭,導致大家都是很高的期望值,迫不及待的去改變。 這種浮躁也許是社會進步的動力。

我這上面的都是最熱的話題,每個領域都是百億甚至千億的價值。 最近阿裡巴巴的成功上市創造最大IPO,讓大家看到中國互聯網的野蠻成長,中國的發展速度和廣闊市場讓大家想像無限。 而百度在矽谷設立人工智慧研究院,阿裡巴巴也準備在矽谷招上千人研發團隊,越來越多的人才拼搶。 中國的一些互聯網產品也走出國門,微信、小米、360都在廣泛佈局投資未來。 有時候會想當大家都是談論技術改變世界,做個小App就值上億,甚至上百億,但真的世界因為你改變了嗎?我們也要多些獨立性思考。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.