JavaRush /Java Blog /Random-TW /技術面試中的特技飛行:我如何進入Google、微軟等公司

技術面試中的特技飛行:我如何進入Google、微軟等公司

在 Random-TW 群組發布
翻譯和改編了《Ace Your Technical Interview: What Got Me Into Google, Microsoft and More》這篇文章,位於 Medium 上的創業社群。 技術面試中的特技飛行:我如何進入Google、微軟等公司 - 1在我第一次實習面試之前,我不知道還會問技術問題。我以為等待我的只會是一堆「介紹一下你自己」的問題。然而,我也沒有為他們做好充分的準備。我在就業指導中心花了兩個小時試圖從每個人那裡得到一些寶貴的建議,另外兩個小時在家裡排練各種問題的答案。但我來面試的時候,面試官並沒有問我的優點和缺點。相反,他們遞給我一支記號筆,並告訴我去黑板那裡。我根本沒想到他們會先檢查我的技術水平!這讓我大吃一驚。我不知道該如何正確回答這些問題,幾個小時後我收到了一封禮貌拒絕的電子郵件。幸運的是,在這件事發生之後,我獲得了許多成功的面試機會。我參加過五十次技術面試,並為我的許多朋友做好了準備。我的方法似乎很有效,因為它幫助我和其他人在谷歌、微軟、蘋果、亞馬遜等公司的面試中取得成功。我很想親自幫助大家,但時間根本不夠。我能做的就是分享如何在技術面試中取得好成績的逐步指南。透過反覆試驗,我了解到在這種情況下什麼可以做,什麼不能做。因此,這裡列出了我在幾年的實踐中總結出的有用技巧。

1. 不要直接進入模擬面試。

人們通常建議盡可能多地進行模擬面試——他們是對的。但如果你沒有做好準備,模擬面試可能會效率低、令人生畏,甚至士氣低落。我可以用經驗告訴你:如果我面試一個完全沒有準備的人作為練習,最後他們會因為在問題中「漂浮」而沒有很好地回答而感到沮喪。花時間更好地準備並了解技術面試是什麼樣的。這是 Google 模擬面試的一個很好的例子:

2.溝通能力>技術訓練水平

許多人會在 LeetCode 和 Hackerrank 等網站上花費數小時來準備技術面試。這些都是很好的練習平台。但最好先休息一下,然後再浪費大量時間隨意解決您認為在面試中會遇到的問題。這是一種無效的方法:在面試中,您至少會遇到一個從未見過的問題。我的一些朋友擁有比我更強的程式設計師,我經常驚訝為什麼我在技術背景測試中取得了好成績,而他們(有時)卻沒有。我們之間最大的差別可能就是我花了很多時間練習溝通技巧。說真的:如果你不能清楚地解釋你的解決方案邏輯,那麼知道如何解決前 100 項技術任務也無濟於事。學會表達想法非常重要。起初,這一切可能看起來很困難、尷尬和不自然,但練習會有所幫助。保持最新的技術背景很重要,但培養溝通技巧可能更重要。如果您在即將到來的面試之前時間緊迫,那麼最好專注於溝通,而不是試圖在兩天內重做您在電腦科學領域花費兩年學習的材料。在下一次技術面試之前,請嘗試學習以下內容:

2.1 學會提出澄清性問題

面試的主要優點之一是能夠澄清所問的問題。通常進行採訪的人不會提供所有背景信息,因此您必須從他們那裡提取更多詳細信息。如果你不完全理解問題是什麼,你就無法解決問題!為了練習,您可以從技術面試中提出一些問題,並為他們提出一系列澄清問題。例如,如果要求您對清單進行排序,您可能會問:
  • 如何對清單進行排序 - 按升序或降序排列?
  • 該清單包含什麼類型的資料?
  • 您能否舉例說明此類任務的資料輸入和輸出應該是什麼樣子?
  • ETC。
可能還有更多問題——這些只是幾個例子。確保澄清各種細微差別:詢問輸入和輸出的範例
  • 指定資料類型
  • 檢查取值範圍是否有限制
  • 詢問是否必須處理邊緣情況
  • 了解您是否可以使用您正在編程的語言的某些庫和功能

2.2 學會表達想法

一旦您提出了所有澄清問題並確切地知道解決問題所需的內容,就該學習如何正確傳達解決方案的本質了。如果你一開始只是寫程式碼而不解釋為什麼要這樣做,那麼面試官將很難判斷你是對還是錯。您不會因此獲得積分,更不用說您最終可能會寫出錯誤的解決方案。當你一路解釋你的決定背後的邏輯時,如果你有點偏離軌道,面試官可以為你指出正確的方向。在編寫任何程式碼之前,請嘗試以下操作:
  • 告訴你的對話者你可能的解決方案 - 你是否能夠「正面」解決問題,是否有可能或可以以某種方式改進?
  • 透過範例逐步瀏覽您的解決方案,以了解其工作原理的要點。
  • 將解決方案分為幾個步驟並編寫偽代碼或“骨架”,以便麵試官了解你的思考過程
  • 使用不同的邊緣情況測試您的解決方案,看看您是否涵蓋了所有內容。詢問面試官的意見。
為了練習,可以做一個面試問題並嘗試告訴朋友正確的答案(解決方案)。如果你找不到朋友,可以拿一個毛絨動物或任何其他物體來練習。

3. 提升你的技術知識和技能

一旦你學會如何在面試中正確溝通,你就可以把所有的精力都花在提升你的技術知識上。一定要溫習演算法和資料結構。確保您理解關鍵主題,例如資料結構、排序、演算法使用、位元運算子、Big O 符號等。您需要了解的事項清單因您申請的職位而異。

4.練習!

現在,升級了必要的技能和知識後,您可以將所有精力投入實踐。
JavaRush 課程包含許多「難題」任務和用於建立應用程式解決方案的整個專案。
不僅要嘗試寫出解決方案,還要思考步驟:在心裡提出澄清問題,思考結構,然後才寫出解決方案。這將有助於你在面試中更有自信,信心為王!

5. 面試時「卡殼」怎麼辦?

現在讓我們想像一下,你參加了一次真正的面試,突然意識到這個問題難倒了你。您不知道需要做什麼以及如何解決問題。你只想跑出房間,然後不再回來。我明白──我曾經經歷過至今仍在惡夢中夢見的情況。但別擔心——所有的希望還沒有消失。這種情況在面試中不只一次發生過,但通常都會以錄用通知結束。這很難,會讓你緊張,但一切都有可能。 休息一下並思考一下。深吸一口氣,理清思緒。也許你會有「線索」。 用一個簡單的例子來測試您的解決方案。嘗試建立類似問題的解決方案的簡化版本,但更簡單,注意逐步操作。例如,如果您需要對清單進行排序,您會做什麼?你找到最小的數字並將其放在開頭。您將如何在程式碼中實現這個解決方案? 告訴我們一個私人解決方案。如果沒有出現完整的解決方案,也沒關係。告訴面試官這一點,同時也讓他了解你的想法。這個挑戰與您遇到的任何挑戰相似嗎?看起來是不是需要用特定的資料結構來解決?分享指導您的邏輯。 說實話。如果您確定所問的問題來自您不熟悉的知識領域,請告訴面試官。假設您已準備好尋找解決方案,但尚不具備必要的技能。曾經有人問我一個網路安全的問題。當時我沒有這方面的實踐,這是我跟面試官說的。他們向我解釋了必要的基礎知識,以便我能夠應對這項任務。您將接受真人的採訪:)他們完全理解您,因為他們自己也遇到過類似的情況。這些都是我在幾年的訪談中總結出來的所有技巧。他們幫助我和我的朋友進入頂尖公司。祝你搜尋順利!
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION