久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

剛收到了Facebook的Offer,,我是這樣為面試做準備的

 會飛的肥皂 2018-04-11



(一)為了能到硅谷工作,我已準備多年


當(dāng)我還在澳大利亞的大學(xué)學(xué)習(xí)計算機科學(xué)的時候,,我總是想象著未來能成為硅谷的一名軟件工程師,。我希望自己未來能夠到科技行業(yè)的創(chuàng)新中心硅谷去工作。這個目標讓我充滿了動力,,它也讓我能夠更加專注地準備面試,。


為了更好地學(xué)習(xí),我辭去了在墨爾本一家非常棒的公司的首席iOS工程師的工作,,然后回到了我的家鄉(xiāng)城市珀斯,。在珀斯,我開始為硅谷公司的面試做準備,。我知道面試準備將是非常困難和艱巨的一項任務(wù),。


如果你告訴一群軟件工程師技術(shù)面試的流程,其中的很多工程師都會對常見的面試方法持反對意見,。很多爭論來自于這樣一個觀點:即在白板上解決算法問題實際上并無法實際代表軟件工程師是否能在實際工作中完成日常任務(wù),。


我在這篇文章中不會去討論這個話題。相反,,我將從應(yīng)聘者的角度來探討不同類型的面試實踐,。同時,我還會分享我自己在面試過程中學(xué)到的東西,。


(二)面試是一種技能


在我準備的面試的過程中,,我始終知道面試是非常具有挑戰(zhàn)性的。但是直到我被第一次面試折磨之后,,我才知道面試是那么困難,。


在面試前,我曾使用過一些付費和免費服務(wù),,這些服務(wù)可以讓那些擁有行業(yè)經(jīng)驗的人通過電話對應(yīng)聘者進行代碼和白板模擬面試,。這種面試模擬練習(xí)對我應(yīng)對真實面試中所面對的壓力是非常有幫助的。但是后來我逐漸發(fā)現(xiàn),模擬面試練習(xí)只相當(dāng)于真實面試內(nèi)容的很小一部分,。


我的建議是,,在你沒有積累一些模擬或?qū)崙?zhàn)面試經(jīng)驗之前,不要面試你夢寐以求的工作崗位,。面試中緊張的情緒會讓你難以承受,,只有通過不斷練習(xí)才能克服這種緊張的情緒。


和生活中的其他很多事情一樣,,不斷練習(xí)可以增強你的自信,。


(三)我經(jīng)歷的幾種不同類型的面試


如果你在最開始的電話面試中表現(xiàn)得足夠好,你就有機會參加現(xiàn)場面試,,面試可能會持續(xù)整整幾天的時間,。每次面試通常會持續(xù)4到6個小時,具體時間取決于你所面試的公司,。


在我自己在硅谷面試的過程中,,我總共進行了7次現(xiàn)場面試,這讓我對目前的面試現(xiàn)狀有了一個獨特的看待視角,。


通常情況下,,現(xiàn)場面試會覆蓋三個主要面試主題:算法、架構(gòu)設(shè)計和行為,,這些正是我專門研究和精心準備過的面試內(nèi)容,。然而,也有一些公司似乎不按常理出牌,,他們會擴大的面試內(nèi)容范圍,,以考察應(yīng)聘者的更多實用技能。


下面分享一下我經(jīng)歷過的幾種面試類型:


(1)算法面試


這是最常見的面試類型,。面試官會要求你在白板上解決一個問題,,并據(jù)此來評估你對數(shù)據(jù)結(jié)構(gòu)、排序算法,、遞歸,、時間/空間復(fù)雜度分析、模式和極端案例識別等方面知識的掌握情況,。


在這樣的面試中,,你通常會提出一個蠻力的解決方案,然后試著改進這個解決方案,,并且討論權(quán)衡不同的解決方案,。


這類面試是我準備最充分的面試類型,,因為連續(xù)6周時間,,我每一天都會練習(xí)在一個廉價的懸掛白板上解決算法問題,分析它們的時間/空間的復(fù)雜性,真正理解所寫的每一行代碼帶來的結(jié)果,。


就我個人而言,,我非常喜歡白板算法,因為我不需要擔(dān)心編寫可編譯的語法,,這讓我能夠?qū)W⒂诮鉀Q手頭要解決的問題,。其他人可能不喜歡在白板上進行算法面試,對于這些人,,我要說的是,,如果能堅持練習(xí),這可能會改變他們的想法,。


(2)架構(gòu)設(shè)計面試


這是一種非常有趣的面試類型,,也是被我嚴重低估的一種面試。面試官會要求你在白板上設(shè)計一個系統(tǒng),,比如停車場的售票系統(tǒng),、聊天通訊系統(tǒng)、推特信息流系統(tǒng)以及其他常見的系統(tǒng),。


通過這類面試,,面試官考察的是,在你拿到一個寬泛的概念之后,,你如何設(shè)計一個能夠滿足所有需求和限制性條件的系統(tǒng),。


在這個過程中,需要應(yīng)聘者提出正確的問題,,因為這些問題將會定義需求和限制性條件,。這類面試過程更多的是一種對話,你需要在這個過程中畫一些圖表,,甚至是階級結(jié)構(gòu),。所有這些都是一種高層次的交流,所以你不需要編寫任何實際的代碼,。


當(dāng)然,,你應(yīng)該對交流內(nèi)容進行引導(dǎo),從而能讓面試官了解你在系統(tǒng)工作方式方面的知識,。如果你是一名后端工程師,,你無需探討客戶端應(yīng)用程序機制的細節(jié),除非你之前在那個領(lǐng)域積累過一定的專業(yè)技能和知識,。


我是一名iOS工程師,,所以我在這類面試中會主要談到架構(gòu)模式、功能的模塊化,、設(shè)計模式,,而不是談?wù)撊绾螖U展API端點之類的內(nèi)容,。


(3)行為面試


面試官會問你一些關(guān)于你自己的問題以及你如何處理一些特定的情況。準備這類面試并沒有準備其它幾類面試那么難,,但是它需要你自己做很多自我反省,。


通常會問到的問題包括:


  • 你是如何對待失敗的?

  • 你認為你自己最大的弱點是什么,?

  • 你如何解決沖突,?

  • 如果有機會可以重來,你現(xiàn)在的做法會與以前的有何不同呢,?


我覺得很難把這類面試搞砸,,但我發(fā)現(xiàn)很多人確實在這類面試中出了問題。他們試圖把自己的強項偽裝成弱點,,他們回答問題時只說那些他們認為面試官會想要聽到的答案,,甚至把失敗項目的責(zé)任轉(zhuǎn)嫁到別人身上。類似下面這樣:


  • “我的弱點就是我太專注了,?!?br>

  • “這個項目失敗主要怪Jerry,他把這個項目中的大部分工作都搞砸了,?!?/span>


要知道,這些面試官都是經(jīng)過嚴格訓(xùn)練過的專業(yè)人士,,他們能輕易辨別那些不稱職的人,,并且對應(yīng)聘者所說的廢話謊言非常敏感。他們能快速將那些不合格的候選人Pass掉,。


在面試過程中,,要真誠,不要耍小聰明,,要表現(xiàn)出對你的工作的熱情,,承認你的缺點,并表現(xiàn)出有改進缺點的主動性和強烈意愿,,只有這樣,,你才能得到面試官的青睞。


(4)文化匹配性


這通常是與行為面試結(jié)合在一起考察的,,這主要考察你是否符合公司的價值觀,。例如,F(xiàn)acebook鼓勵黑客似的文化,,鼓勵員工大膽嘗試新想法,,并通過試驗對想法進行測試,而不是害怕打破陳規(guī),,也就是所謂的“Move fast and break things”,。


Airbnb希望創(chuàng)造一個讓人們在任何地方都能找到歸屬感的世界,,所以他們通常會尋找那些具有良好好客技能的人才。


很多大型科技公司都非常重視企業(yè)文化,,并根據(jù)應(yīng)聘者是否符合公司價值觀來決定是否錄用他們,。如果你在這樣的一家公司里面試,,你需要想辦法了解這家公司的價值觀,,并找到你自己那些與公司文化相契合的過往經(jīng)歷,并向面試官展示出這一點,,這一點非常重要,。


(5)結(jié)對編程


一種非常有趣的面試類型是,讓你和另外一位工程師在一個設(shè)置好的編程環(huán)境中結(jié)對編程,,這和實際工作場景非常類似,。你會被分配一個基本的任務(wù),任務(wù)中列出了你必須完成的一系列需求列表,。


在你完成每一個任務(wù)后,,面試官會要求你實施更多的功能,直到到了規(guī)定的時間為止,。在這個過程中,,你可以自由使用你想使用的任何資源,如Stack Overflow或在線文檔,。


我發(fā)現(xiàn),,在這樣的面試中,很多候選人能否通過考察主要依賴于他們真實世界的開發(fā)經(jīng)驗,。與白板面試不同,,在這類面試中需要你寫出語法正確的代碼,因此你應(yīng)該徹底了解你的編程語言和環(huán)境,,因為你肯定不希望在編程面試過程中花太多時間去在網(wǎng)上或文檔里搜索答案,。


在我之前的工作中,在我在做一項任務(wù)時,,我會寫干凈的代碼,,然后等我覺得任務(wù)完成之后再進行優(yōu)化。這種工作方式對這種類型的面試是不利的,。


(6)發(fā)現(xiàn)并修復(fù)Bug


作為工程師,,我們所做的很多工作都是圍繞著找到和修復(fù)那些我們從不同渠道搜集到的bug。在這類面試中,,你會得到一個需要你去找到和修復(fù)的bug列表,,在這個過程中,你還需要識別其他可能存在問題的代碼,。


我自己只經(jīng)歷過一次這樣的面試,,我覺得這類面試真的很難讓人做好準備,,特別對那些經(jīng)驗所有欠缺的初級工程師更是如此。每個編碼環(huán)境都有各自的小怪癖和細微差別,,我所做的很多bug修復(fù)工作都來自于以前的IDE(集成開發(fā)環(huán)境)的經(jīng)驗以及我在過去多年時間里積累的相關(guān)框架,。


(7)考察專業(yè)領(lǐng)域知識


在我們今天看到的大多數(shù)通用語言中,編程基本上是相同的,。如果你知道一種編程語言的面向?qū)ο缶幊?,那么這些技能多半能夠轉(zhuǎn)移到另一種編程語言里。但是,,這類面試的考察技是不能在語言或框架之間相互轉(zhuǎn)換的,。面試官將會在特定的環(huán)境下考察你在有關(guān)API、內(nèi)存管理,、功能和局限等專業(yè)領(lǐng)域知識的掌握情況,。


對于這類主題的面試,練習(xí)是很具挑戰(zhàn)性的,。和上文中說過的發(fā)現(xiàn)并修復(fù)bug面試類似,,我覺得這類面試問題的答案大都來自于過往的經(jīng)驗。根據(jù)你所申請的職位的級別的不同,,面試官評估你的答案的標準會有所不同,。


例如,如果你申請的是一個初級職位,,不知道為什么一個API的結(jié)構(gòu)是特定的,,那么面試官會在這方面做出讓步,不會對你要求太高,。然而,,如果你申請的是一個高級職位,面試官對你的要求會更高,,這時如果你不知道這個問題的答案的話,,這就會給面試官留下非常不好的印象。


(8)對操作系統(tǒng)的了解


根據(jù)你所應(yīng)聘的職位或團隊的不同,,你可能會有一個專門的操作系統(tǒng)方面的面試,。在這個面試中,你會被問到一些問題,,面試官通過這些問題對你對計算機操作系統(tǒng)機制的理解進行評估,。說實話,這個面試有點讓我措手不及,。操作系統(tǒng)是我早年在大學(xué)里學(xué)過的東西,,但是后來慢慢都淡忘了。


(四)你該如何準備,?


正如我在上文中說的那樣,,面試本身其實就是一種技能,。即使你在日常工作中已經(jīng)是一名優(yōu)秀的程序員,或者在你在學(xué)校的成績非常優(yōu)異,,但是在面試會議室里,,你的這些技能并不能按1:1的比例方式轉(zhuǎn)化為面試技能。堅持,、重復(fù)地做面試準備和練習(xí)將在很大程度上決定你的面試結(jié)果,。


(1)至少需要掌握這些知識


如果有人問我,我覺得應(yīng)該關(guān)注哪些方面,,我建議以下幾點:


  • 首先學(xué)習(xí)在紙上和白板上手寫代碼,,然后把它放到一個IDE(集成開發(fā)環(huán)境)中,,以便語法高亮顯示,,這應(yīng)該成為你的第二天性。

  • 對數(shù)據(jù)結(jié)構(gòu)要有深入的了解,,包括他們的長處和弱點,。

  • 完全理解大O符號的時間和空間復(fù)雜性,這將與你的算法和排序問題完美地配對,。

  • 掌握所有主要的排序算法,,因為時間和空間的復(fù)雜性有可能破壞你想要解決的算法的最佳解決方案。


(2)何時開始


根據(jù)你自己的時間表,,越早開始越好,。我面試過的很多公司都有一個12個月的冷卻期,面試未通過的應(yīng)聘者需要等到12個月后才能重新申請公司的職位,。


反過來說,,如果你知道你無法在一年時間內(nèi)準備好這個面試,,你不妨現(xiàn)在開始這個面試流程,,大概感受一下面試流程具體是怎樣的,,到時真正面試的時候就不會那么害怕了。



    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多