2020 SWE 軟體工程實習申請與面試Facebook/Uber ... - Medium

文章推薦指數: 80 %
投票人數:10人

2020 SWE 軟體工程實習申請與面試Facebook/Uber/Bloomberg/Google/ Amazon. Preface. 找工作,無論實習或全職,”個人”覺得對於一般人而言,大概有47.5%的 ... UpgradeOpeninappHomeNotificationsListsStoriesWritePublishedinShine’sNovel2020SWE軟體工程實習申請與面試Facebook/Uber/Bloomberg/Google/AmazonPreface找工作,無論實習或全職,”個人”覺得對於一般人而言,大概有47.5%的運氣成份,面試就像是多場連續快速的相親,HR是否撿起你的CV選擇讓你進行面試,面試官當天出的題目,當天和面試官的互動等等,除了面試後檢討並記錄自己明顯可能犯的錯誤,有時候真的是運氣不佳和面試官不對盤,相信只是還沒面到適合自己的公司我刷的題數並不多(3xx),實力也不是特別厲害(並非假掰謙虛哈,真的看太多比我聰明厲害的人們了),這條漫漫長路,尤其現在又遇上疫情肆虐慘況,如何調整每次面試前後的心態和堅持下去,是最大的挑戰,幸運地在去年底成功上岸,找到2020暑假的實習,不免俗地感謝CT朋友們StanleyLin許凱鈞(KevinHsu)/Johnny/Timx2/Brian/YengMing的互相mock/各種幫忙/諮詢因為網路上已有許多十分詳細的教學分享文,此文會記錄找實習過程中的一些我覺得相對較少提到的資訊,其他類似文章常見的部分則會簡要帶過,希望對大家能有些幫助,但並不一定適合每個人,有些做法或訊息也不一定完全正確,還是建議大家多方諮詢評估,找到最適合自己的方式SummaryOffer:Facebook,UberPhoneInterview:Facebook,Uber,Google,Amazon,Bloomberg(oncampus)OA/內推/海投:投出的履歷,不可勝數應該有>200,基本上求職期間每天會利用一段時間固定投一定數量的公司,有拿到OA的公司,總共大概5–10間左右(有些公司不用OA,直接安排電面)上述粗略估算我自己大概有5/2xx<=2.5%的機率能夠拿到和真人電面的機會PreparationsBeforearrival:Leetcode:強烈建議至少要刷到200題以上,遇到常見題型的題目,腦中能有大致正確的解法和方向,Leetcode的前200題有許多的經典題,建議可以都做過至少一遍,Leetocdecontest/challenge也滿適合跟著做稍微mock有限時間下的解題方式,剛開始進入刷題地獄,常見的方法:分題型自己刷:BFS/DFS/B-Search/Twopointers/DP……上網路課程(e.g.九X)跟著課程設定的題目刷,個人覺得課程內容對於剛入門而言是有幫助的,找朋友們一起分,或是拿到相關的題目list,照著該list的順序安排刷起,都是個不錯的方式如何正確分析每個解法的Time/Spacecomplexity要十分熟悉,並且知道該題的最佳解法要怎麼做(fromdiscussion)遇到難題的話,可以上youtube找找解題視頻,尤其圖像化的講解很能幫助理解e.g.花花醬BuildResume:因為開學後會有課業上的壓力,適應新環境,刷題找工作,準備面試等諸多任務需要克服,如果已經有想投遞特定的職缺e.g.ML/Data/Web/Mobile等,建議可以利用這段時間完成幾個足以放在CV上的sideprojects,或是找尋相關的internship的機會,除非學校修課project能剛好match投遞的職缺,不然開學後恐怕難以有足夠的額外時間再充實自己的履歷了[Update]根據投遞職缺公司的內容/Skill/Framework客製化履歷舉個例子在FacebookIntern基本上分成以下幾個大方向Web(FrontEnd/BackEnd)/ML/MobileApp,如果你想投遞的職缺類型偏向Web,而在Facebook內部常使用的語言便是Hack(PHP)/JS/React(這些資訊問人或是一畝上都滿容易得知),而你的履歷上的經歷或是Projects最好就能夠有對應以上skill/framework的表現,或許HR就能根據履歷將你match到intern的某一組,進而給予面試機會ProgrammingLanguage:用自己最熟悉的程式語言答題不過像是Python在許多方面尤其是處理input/string會比其他語言來的更快速方便,如果沒有特別偏好可以選擇從Python入門但如果是使用某語言特殊不通用的datastructure時,建議要特別注意使用這個ds是否把題目的考點,幫你處理掉了,e.g.Use“OrderedDict”toimplementLRUcache,面試官基本就是想考你怎麼處理實現LRU的order和mapping,而“OrderedDict”內建就幫你完成大部分工作,面試官相對無法了解你是否真的具備正確的思維因此建議一般通用的解法也要懂的如何實現,而在使用相對特殊的lib/ds前建議可以先和面試官溝通確認,是否能夠使用Duringsemester:Leetcode:繼續熟悉各題型的題目,面試前可以上一畝面經板,紀錄分析最近該公司最近的出題,也可以參考Leetcodecompanytags&Leetcodeforumhttps://www.1point3acres.com/bbs/forum-145-1.htmlMock:建議可以每週固定的時間找同學們一起mock面試的臨場感,一開始的題目不用太難,主要是熟悉和訓練面試當下的反應和英文口說解釋Referral/Applyyourself:Fromsummary可以大概知道其實除了面試本身之外,拿到面試機會也是個難關,往年大公司的intern職缺會在9月/10月就會公布,建議職缺公布後,就可以準備開始投遞履歷,大公司HR看到你的履歷並認可後,發給你OA或是直接邀請電面至少大概需要1–2weeks,面試通常又能安排在1–2weeks之後,特殊原因甚至也可以和HR溝通延後,真人面試和投履歷之間的時間,將近一個月或以上是滿常發生的,因此十分建議早點投,把握拿到面試的機會加上”個人”感覺在招募晚期,可錄取名額剩下不多時,拿到面試的機會和面試當下要求的難度有”隱性”的上升,甚至在去年12月時,某間學校的名額收滿後,仍在進行面試流程中的candidates,即時兩輪的面試都幾乎完美的解題,溝通講述上也無明顯缺誤,還是都收到了拒信履歷有太多重要的寫法和細節,這邊我想提的是,可以根據公司稍微調整自己的履歷,舉例來說,你想投的職缺是FacebookWeb相關(undergeneralSDE),了解到FBfrontend(JS/React),Backend(Hack/PHP)後,可以盡量放上有使用到這些語言的Projects/Experience,順序上也可以將相關的技能/Project放在比較前面的位置如果履歷被拒,盡可能改善自己的履歷後,其實可以在適當的時機換個email再投,雖每間公司的履歷審核流程不盡相同,但有機會在重投履歷後讓不同的HR看見你的履歷,也可以選擇一畝上有滿多人開始分享拿到OA/電面的時間點重新投遞,因為這或許代表HR這段期間真的有在進行審核履歷發OA/面試了ReferralResources:我自己曾經用過拿到內推的幾個其他資源fromLinkedIn/CampusEvents/Alumni/Seniors最有效得到面試的方式:https://brianhsublog.blogspot.com/2019/03/internalReferralAndTaiwanNetwork.html美國職位內推:https://www.1point3acres.com/bbs/forum-198-1.htmlNote:ExceptAmazon我認識的人們去年幾乎都是靠海投studentprogram拿到面試https://www.amazon.jobs/en/business_categories/student-programs(注意此portal與AmazonJobs不同,建議兩個都投)Interview除了解題之外,面試官也十分看重溝通方式,而不是能不能一下子把代碼寫全寫對,就算遇到了一樣的題目,千萬不要直接背出來,面試最重要之一的就是討論,一定要好好的把自己的構思,如何推導得出這個想法的flow解釋清楚,為什麼選擇使用這個資料結構、這個演算法的原因說明清楚遇到卡關沒有想法的時候,不要保持沈默太久,可以跟面試官描述自己目前對於題目的想法,自己哪邊可能還正在思索,甚至請面試官給些小提示,如果維持沈默太久,面試官想幫忙你也會不祗從何幫你,不清楚你目前的狀態和卡在哪邊了,因此無論是寫code的當下或是講述解題想法時,盡可能的和面試官積極的溝通,而這整個過程也會跟實際職場中的樣貌比較相似,讓面試官覺得你是個好溝通好合作的teamplayer針對不同公司調整面試準備的策略(以下按時間順序)Bloomberg(OnCampus)這是我的第一場面試,在Bloombergbuilding(CT)的meetingroom,果然被電得慘不忍睹,縱使在面試前已經有寫過這題,但是因為當時在Leetcode上寫的解法過於複雜也並沒能記得熟,加上當場真人面試緊張,思考方向不太正確,只解完了第一部分(LadderI),便結束了第一場面試126.WordLadderII:https://leetcode.com/problems/word-ladder-ii/檢討:在面試前多練習Mock,盡可能地讓自己熟悉寫白版和用英文講解的節奏,縱使在Leetcode上正確完成題目,如果解法過於複雜,自覺面試當場幾乎不可能完整寫出,建議考慮其他更適合面試的解法Facebook因為FB出名的很喜歡考Leetcode上面的TAG題,當初統計歸納近期的面經,也的確大都是FBTAG的高頻提居多,但FB會要求在35–40mins內完成約莫兩題medium難度的題目,並且基本上你寫的要是該題的最佳解+nobugs+followupquestions因此我便將策略調整成主要刷FBTAG題,然後重複的刷Top100的高頻題,讓自己對於常見的高頻題目,除了看到題目後心中能有最佳解的做法,這題先前自己寫的時候容易遇到的錯誤點,有哪些cornercases需要考慮等等,都能夠了然於心最終讓自己對於每題高頻題基本都能很熟悉並幾乎無誤的完整寫出來這算是我最後只刷了3xx主要的一個原因,因為後期主要都在重複刷FBTag的題目,當初大概刷了Tag題200/2xx,Top100的題目大概有刷了3–5次不等重複多寫幾次後對於題目也會有不一樣的認識,像是:相似題目間有沒有比較general的算法能夠通解,確認自己的解法是否為最佳解,有沒有比較好記憶的其他最佳解法,也可以嘗試建立自己的刷題記錄,寫下自己的想法和該題目常見的followupquestionsThoughtandFollow-upNotesCategorizeProblems而在面試過程中,我很幸運的都遇到了好人面試官,基本都是FBTAGTop100的題目(真的很幸運),順利的通過電話面試,整個面試過程其實拖得有點長,從10月中開始橋面試時間,11月初一面,最後在12月初拿到了offerUBER跟其他公司不同的是Uber會把你寫的code真的compile&run帶入面試官給的input看結果是否正確(HackerRankIDE),滿刺激也滿真實的,總的來說Uber兩輪問的題目不難,但跟面試官討論了比較多的followupquestions在寫出來題目正確結果後,第一輪的面試官問了許多cornercase的判斷考慮和其對應處理e.g.normalinput=1,2時input=Null/string/0/overflow/notvalid以及將題目generalized後的解法(以上各種cornercase需要自己想到)第二輪的面試官則問了較多的systemdesignfollowup,像是簡單版本的stocktradingsystem怎麼做loadbalance/APIdesign/security/concurrency等等,問了基本的想法概念和實現在code中,但並沒有問的太深入Google再面Google的時候,因為已經確定拿到最想去的公司的offer,因此大概有兩個多禮拜離開Leetcodehell了,Google有和其他大公司不同的面試流程,一次連續面完兩輪,再看結果決定是否有需要額外加面第三輪,也是我面到唯一有特別額外簽NDA的面試Google著名的不太出Leetcode上面的題目,並使用googledoc進行面試,第一輪遇到的面試官便在googledoc先打了幾行字後,後續操作了幾個googledoc的內建功能後,便要求我實現他剛剛操作的功能,真的非常不leetcode,也滿有趣的!!第二輪則是沒遇過看起來也是自創的DP題目,Overall,準備google面試的方式應該會和其他公司不太相同,除了稍微看些面經外,看看google偏好的題型類別,熟悉複習每個不同面向類別題型的思路解法或許會更有效AmazonAmazon有十分繁複的3輪OA+最後的一輪的電面,對比其他公司需要多加注意BehavioralQuestions(BQ),而網上有許多關於BQ詳盡的準備方式和參考題目,我這邊不再贅述,Amazon會綜合參考3輪OA+BQ+Coding決定是否錄取如果OA中的Programming&邏輯題沒有全對,不用過於擔心,還是很有機會能夠進到最後的VO,我就是個例子,尤其我邏輯題沒有事前準備,真的錯了頗多,Programmingtestcasemiss1or2,還是有拿到VO,但難免會多少影響到最後整個的綜合評比就是在VO面試中被問到了一題沒寫過的DP+Tree的題目,雖然最後有勉強的寫出解答,但估計中途太卡加上面試官給了提示後並沒有馬上回應出正確的解法Beginningsalwayshidethemselvesinends2020的暑假,美國大部分的科技公司都將實習改為remote了,有些甚至直接revoke/canceloffer,我很幸運的還能保有這個機會,繼續體驗不同的挑戰在疫情侵襲不安動盪的2020,綿長伸延獨處的時間,不再的日以為常,或許正適合思索那些以前不敢想像的職涯,著手進行那些需要額外時間的興趣,放大來看,疫情紛擾總有落幕的一天,如何讓自己能在這段期間,妥善地培養對應心態且戰且走,相信最後一定都能有個好結果https://www.youtube.com/watch?v=A2CwZ1UTSSATakecareandstayhealthy!!如果有任何關於SWE實習申請面試的相關問題,歡迎透過mailorFB聯繫我希望我也能盡點力幫忙傳遞幸運RooseveltIsland6021MorefromShine’sNovelReviews,Reflections,ReturnsReadmorefromShine’sNovelGetstartedShine168FollowersFollowRelatedHowtogenerateparenthesesusingbacktracking?MyinterviewexperiencewithMetaIfyouareinthetechnologysector,workinginacompanylikeMetamaybeabigdream.Frankly,Ithoughtitwasadreamformetoworkin…NoviceLeetCode:TwoSumIntroduction:MedianofTwoSortedArraysGiventwosortedarraysnums1andnums2ofsizemandnrespectively,returnthemedianofthetwosortedarrays.HelpStatusWritersBlogCareersPrivacyTermsAboutKnowable



請為這篇文章評分?