專案資料分析師分享:美國大資料工程師面試攻略
方法/步驟
先做一個自我介紹,本科南開後,加入了一個創業公司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沒去,還是覺得很瘋狂,如果細看這張表,大家可以看到矽谷(藍色)尤其是舊金山它們的融資規模遠遠大於其他地區,還是地理決定論。而在國內的兩家xiaomi,jingdong都是在北京,而最近大家看到一些泡沫論,說什麼阿里巴巴上市是否美股到頂,經緯VC創始人也提醒我們泡沫的風險,我無法判斷。如果能參與到下一波浪潮裡面去是很過癮的。我推薦大家去看看 <浪潮之巔> , <奇點臨近> ,我還是很期待未來20年的技術革命。 奇點臨近> 浪潮之巔>
我個人熱愛大資料,在矽谷這也是大家津津樂道的,有個笑話,big data is like teenage talking about sex, nobody know 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它們提出來的社群版本架構,可以說標準的制定者,一流的公司制定標準,其他的公司一般用只能用它們提供的穩定版,沒有多少話語權。但從事大資料,並不見得是要去這些制定標準的公司,大量的應用也是非常考驗架構的靈活性。並且能看到實際的產品,很有成就感。
說到今年火的,還是要看Spark。從去年至今,已經開了2屆Spark大會,上千人的規模,無數人對比Hadoop 100倍的效能提升而興奮。這裡說它的背景是誕生於Berkeley的Amplab,它們有個很有名的BDAS(Berkeley Data Analytics Stack),目前Spark已經成為Apache的頂級專案。去年這個實驗室的教授跟學生出去成立Databricks公司,拉到兩輪上千萬的風投,有人成Spark是Hadoop的終結者嗎?我看今年Spark大會上,所有的Hadoop大佬公司都是鼎力支援,像Cloudrea甚至放棄impala的一線支援而轉變成Spark。如果這麼發展下去,星星之火可以燎原啊。它裡面用到Scala是一種函式式語言。裡面的元件也很多,有Shark支援SQL類似Hive,有Spark Streaming,MLlib,Graphx,SparkR,BlinkDB。它的核心資料結構是RDD,可以跑在各種分散式系統上。總體上是個包容性+侵略性的系統。我個人也很看好它們的發展。
注意事項
1. 如果面試的話,我先看他們的經驗是不是match,對應屆生看有沒有實習經歷,如果你在Google,Linkedin實習,絕對加分,學校當然也需要,比如我們招人UC Berkeley是要機會大一些。
2. 我看過很多簡歷,不推薦用DOC,因為在不同系統中排版不一樣。簡歷也不要寫太長,不是大牛就不超過2頁。儘量突出你的技能如何匹配公司的職位,比如這個公司都是用C++,你上面都沒C++,是不大合適。我也很不喜歡看到精通,如果你這樣寫,就很容易引起麻煩,最好寫多少年經驗,對具體技術的掌握。
3. 面試當然需要準備,但到底是事倍功半,還是事倍功半。我建議把你的經歷精選1,2個準備熟練,包括如何團隊分工,技術細節,遇到困難,如何克服。不要貪多,就把你現在用的東西準備好,沒人關心你5年前幹啥的。
4. 社交很重要,最簡單是去招聘會就可以跟人混個臉熟,如果你在網路多利用有些網路招聘網站,如dice,indeed,你還要巧妙利用Linkedin,加入高階賬號,可以檢視有些校友的資源,發站內信,refer比你網上瞎投效率要高很多。