當前位置:招聘信息大全網 - 人才招聘 - 恒生電子校招編程面試技巧

恒生電子校招編程面試技巧

恒生電子校招編程面試技巧

 最初開始參加編程面試的時候,我所有最心儀的公司都忽視了我。現在回頭看那個時候,我發現自己當時去參加面試都完全沒做任何準備。雖然已經有許多博客文章和書籍在講編程面試,但現在的我作為面試官,坐在桌子的另壹邊,還是能看到許多來參加編程面試的人沒做任何準備,或者準備得很糟糕。這也就是為什麽我開始寫這篇指南的原因,剛畢業時的我、第壹次參加面試的我壹定非常想有這麽壹份指南來指引自己。而從現在開始,我自己也會照著這份指南去做。

 多年以來,我在好幾家公司工作過,所以我的面試技巧得到了很好的磨煉,而且我參與面試的過程也教會了我該說什麽、該做哪些準備,以及如何面試。在這篇指南裏,妳會了解到面試的概況、面試取得成功的六大步驟,以及我在考察數據結構和算法時所考慮的方面。這篇指南無法確保妳找到工作,但它能幫助妳盡最大可能給面試官留下壹個好印象。

 聲明:本文中的觀點完全出自個人視角,與我目前或者以前的雇主沒有關系。

 面試過程

 本節概述了矽谷公司的面試過程,僅僅是個情況介紹,大家可以跳過去往後看。

 除了直接申請面試以外,壹般說來,還有兩種途徑來獲得面試的機會:由現在的雇主推薦,或者通過LinkedIn。雖然前者會快壹些、更尊敬壹些,但後者很可能是大部分應聘者所走的路徑。事實上,每天都有無數的招聘人員趴在LinkedIn上,他們唯壹的工作就是尋找和接觸有可能換工作的員工,所以壹定要保證自己的信息是最新的,而且要多交人脈、多請別人來認可自己的技能,並且要把妳所具備的技能、做過的個人項目或者對開源軟件所做的貢獻加到個人頁面裏去。

 最初的接觸壹般是通過電子郵件進行的,然後招聘人員會給妳打電話,大概了解壹下妳的技術背景。如果妳的技能和他們正在尋找的技能壹致,他們就會安排壹次電話面試,在電話面試時,妳可能就會被要求在壹份***享的在線文檔裏編程。那麽妳就會知道,這份文檔很可能沒有任何代碼補全和句法高亮的功能。電話面試會持續半小時到45分鐘,如果妳表現不錯,就會被邀請去參加現場面試。現在如果沒有電話面試、或者在電話面試之外,妳可能還得去參加壹個小的編程項目。

 現場面試由幾次面試組成,總體會持續45分鐘到壹個小時。這些面試會和電話面試非常像,只是問題會更難——不過能親眼見到面試官多少算是有所補償。現場面試數周之後,所有反饋應該都被看過、招聘決定就會做出,招誰不招誰也就定了。如果妳沒拿到offer,也要明白面試是壹個隨機的過程,包含運氣的成分,不妨把它看作是壹次學習的經歷。可能妳還會想起布萊恩·阿克頓(BrianActon)面試Facebook和Twitter不成、後來成為WhatsApp聯合創始人的故事。

 理論上講,用哪種編程語言並不重要,但妳面試需要用某種特定語言來完成的工作時除外,比如iPhone開發者或者前端開發者。我強烈建議妳用正在面試的公司所使用的壹種編程語言來編程(以及練習面試問題)。

 面試獲得成功的六個步驟

 編程面試的目的,是為了確定妳的編程水平有多高。壹般來說,妳將被要求用編程來完成壹個功能或者方法,但有時候,妳會需要編輯壹個類的定義,或者設計壹系列相關的代碼模塊。在任何壹種情況下,妳都要有條不紊地解決問題,並遵循以下六個步驟:

 1.首先,要確保妳理解了面試官的問題。許多問題都是故意措辭模糊或者模棱兩可,這個時候妳可以請面試官把問題說清楚,從而確保妳真正回答面試官的問題。妳的提問同時還有壹個好處,就是它能給妳自己壹些時間,讓妳的'腦子轉起來。

 2.用壹到兩個例子來確定問題的限制條件和要求(在現場面試時在白板上完成這個過程,在電話面試時在筆記本上完成)。嘗試用中等規模的例子,以便覆蓋到壹些特殊情況。如果妳能想到可能相關的表格,就把它畫出來。事實上,把妳想到的任何東西都寫下來是會有幫助的,因為它能為妳提供壹個視覺錨點,從而讓妳在走不通時或者思考過程中隨時返回某壹個點。

 3.把話說清楚,這可能是最重要的壹步。要試著讓面試盡可能有更多的互動,面試官不知道妳在想什麽,而讓他們參與到妳的思考過程裏,會讓她給妳壹些有用的提示,防止妳偏向錯誤的方向。妳的目標就是要先和面試官確證妳的答案,然後再去寫代碼,而且妳考慮答案越清晰、越高效,妳得到的即時反饋也就越好。

 4.通過應用以下技巧來找到答案:回想壹下妳遇到的類似問題,再想想它們是如何被解決的,嘗試各種不同的算法(分治算法、貪心算法、遞歸、排序,等等),把問題分解成更小的、可處理的小問題(這樣妳就能得到相應部分的分數),最後再通覽壹遍妳列出的數據結構,因為有時候,只要想到了正確的數據結構,就能給出正確的答案。

 5.當妳向面試官問清楚了問題、並向她解釋了妳的答案之後,就可以開始寫代碼了。要記住,在***享文檔裏寫代碼的時候,妳可以復制粘貼、寫評論,而且能回過頭來完成骨架算法和功能。但在白板上寫代碼就不壹樣了,它需要妳的頭腦很清醒,而且需要妳具備管理白板空間的技能。如果足夠幸運的話,現在當妳開始在白板左上角動筆的時候,應該非常明白妳要寫些什麽東西,而且妳要確保在妳寫答案的時候,沒有擋住面試官的視線。花點兒時間把代碼寫得緊湊而美觀壹點兒,因為妳的代碼也會是面試反饋的壹部分。在妳寫代碼的時候,要大聲解釋妳在寫什麽,這會讓妳的面試官更容易地跟上妳的思路。

 6.最後,用不同的例子和特殊案例驗證壹下妳的代碼,並且要壹行壹行地過。這會展示妳的思考過程,讓妳檢查出小錯誤,並告訴面試官妳的辦法是可行的。如果妳想得到額外加分的話,甚至可以把單元測試的代碼寫下來!最後再和面試官聊壹下妳的答案在空間和時間利用方面的復雜性,然後結束整場面試。

;