給軟件工程師、數據科學家和數據工程師的面試指南:該作與不應作

亞馬遜這樣的公司有 14 項領導原則 。他們不想僅僅僱傭一個數據科學家或軟件工程師。對於許多隻進行一次或兩次面試的面試者來講,這可能沒有那麼明顯,由於你太專一於回答面試的技術部分。可是,在你進行技術面試時,咱們但願提供一些提示,幫助你更好地爲將來作好準備。程序員

技術面試應該準備哪些?

準備好數字指標

我回憶起我在 FAANG ( Facebook、Apple、Amazon、Netflix 和 Google ) 的第一次面試。面試

在技術面試以後,有一輪技術項目經理的面試。他們開始問我過去的經歷和項目。起初,狀況還不錯。而後他們開始問我在該項目中擔任的角色對項目起哪些做用。算法

在我回答以後,他問了我一個在那以前從未想過的問題。編程

「你爲這個項目節省了多少時間?」數據結構

我之前從未想過這個問題。在個人職業生涯中,我幾乎一直在作別人告訴個人事情。然而對項目的做用和節省時間這樣的大局概念,我歷來沒有想過。終究,我只是一個年輕的開發人員,我只考慮過編程和如何知足項目的需求。數據結構和算法

其他的對話遵循相似的模式,他們在尋找個人自主權和獨立思考能力,但老實說,在我目前的工做中,我並無花太多時間去作相似的事。oop

個人建議是準備好數字指標,像亞馬遜這樣的公司是很是標準的。他們須要的是開發人員和工程師,而不只僅是編程。這意味着你須要作好準備。當你要去面試時,準備好你所作的不只僅是一兩件小事。確保準備清楚你在項目中起了哪些重要的做用。學習

想一想你過去的項目,即便你的公司沒有直接計算你爲項目節省了多少時間,可是你仍然應該花點時間本身估計一下。spa

準備好一些指標代表你從項目的全局考慮,並擁有獨立思考的能力,這會讓你脫穎而出。設計

必定要把你的問題說清楚。

大多數人的前幾回筆試都不好。你可能會很迷茫,由於你想在你面試開始以前獲得完美的答案。或者你僅僅是寫答案,而沒有與面試官溝通你的想法是什麼。

因此提早幾分鐘把你的回答放到面試官面前,概述你使用什麼方法、數據結構和算法來得到解決方案,這不只有助於你解決問題,並且還能讓面試官瞭解你的思惟過程。

即便你沒有用最好的答案回答問題,但這依然有利於你。溝通是很是重要的,在過程交談中也能夠證實你有能力提供解決方案。

此外,若是面試官很優秀,他們會常常指導你找到答案。並非說他們會給你詳細解釋,但他們可能會問一些問題,以確保你能夠考慮到一些邊緣狀況,並避免主要的陷阱。

老實說,我以爲最好的面試之一就是那種感受根本不像面試的面試,反而就像兩個工程師在一塊兒解決一個問題。固然,有一些面試官站在另外一邊,根本幫不上你。

準備好想要提問的問題

這多是個老生常談的建議,但對於一個沒有任何工做上的問題的面試者來講,這有點讓人不快。然而,對於你的第一份工做,你可能只是想要這份工做,但並不在意這份工做。所以,提出真正的問題是困難的。

但這並不意味着你不該該準備一些問題來表現出對這個工做的興趣。

我不建議你問太普遍的問題,由於這些問題你能夠經過谷歌搜索。相反,集中精力向面試官提問他們的工做。例如:

  • 你最近面臨的最大技術挑戰是什麼?
  • 你以爲你在這裏有很好的成長機會嗎?
  • 你如何描述這裏的工程文化?

這些問題代表你對工做水平很感興趣。它們還能夠幫助你與面試官創建更多的聯繫。

我會問這些問題,是由於我知道這不只僅是工資問題,我須要瞭解公司面臨的具備挑戰性又有做用的問題。

固然,研究最酷的技術是頗有趣的。但新技術老是很酷的。比起所使用的技術棧,我更關心項目的做用。

和朋友面對面練習

讀這篇文章的人有的可能還在上大學。對於在校學生,有的學校可能會提供實習面試服務。然而對於那些不在學校的人,應該找個朋友一塊兒練習。

若是你有計算機科學領域的朋友,或者已經在技術公司工做的朋友,你能夠向他們尋求幫助。若是你能在筆試中解決問題,而不是在電腦上,你就會顯得脫穎而出。

面試者一般認爲他們擅長編程,因此他們一樣也擅長面試。然而,編程與面試可不大相同。

因此必定要練習!

技術面試不該該作什麼?

別讓一輪面試影響其它輪面試

面試一般有好幾輪,每一輪的面試可能不盡相同,你有可能在面試中順利進行,也有可能在一輪又一輪的面試中變得更糟糕。

你可能會在一個問題上陷入一個困境,由於技術領域很廣,因此很難了解一切。在面試中遇到你沒有準備好的問題,這很正常。

關鍵是不要讓一輪糟糕的面試影響你剩下的面試。即便你心裏深處知道你在那一輪面試中失敗了,你仍然要保持積極的態度。緣由有如下兩點:

  • 若是你在其餘面試中作得足夠好,公司會傾向於在幾個月內再次面試你,甚至多是換一個職位,儘管當下你並不知道這會對你產生什麼幫助。
  • 把此次面試當作一次練習。技術面試只是面試過程的一部分。因此你練習得越多,就越能爲下一次面試作好準備。

即便你在這一輪面試中失敗了,你也要保持積極的態度。

不要覺得你知道會被問什麼類型的問題

你永遠不知道面試時會被問什麼類型的問題,因此不妨問問你的招聘人員。大部分 FAANG ( Facebook、Apple、Amazon、Netflix 和 Google ) 公司會提供一些學習材料。這些公司很是注重數據結構和算法。其餘人把它與面向對象和系統設計問題混合在一塊兒。你最但願作的事情就是成爲一個處理決策樹的數據科學家,而且涉及到反轉鏈表或遍歷樹的問題。

這既尷尬又使人沮喪。事實上,每一個人的時間都被浪費了,若是公司沒有爲你準備好這些問題……那麼我將大部分責任推到他們身上。

當你去面試時,你須要展現更多的優點。

不要太拘泥於某一個解決方案

有些人有一個壞習慣,就是過分致力於解決問題。當你在討論一個問題時,面試官可能會試圖提供一些提示,以確保你繼續朝着正確的方向前進。
然而,當咱們處在一個思考問題的區域時,咱們經常只走這一條路。即便它顯然是錯誤的。

若是你在 15 分鐘內對同一問題沒有更好地進展,考慮深呼吸,並努力確保你的解決方向是正確的。可是若是你在更長的一段時間內沒有找到正確的解決方案,而且你還有其它三到四個問題須要回答,那麼你應該考慮換一種思路。

不要談論技術棧的劣勢

你喜歡 Hadoop 、 Go 語言,或者其餘技術,並且你可能討厭其餘技術棧。

這並不意味着你須要讓你對一種特定語言的全部仇恨都被知道。它經常被認爲是精英主義者。就像你比其餘人更瞭解,由於你的語言顯然是最好的,其餘人都在石器時代編程。

團隊和公司使用各類語言,假若你正在談論某一技術棧的劣勢,可是恰巧這正是他們所用的技術棧,這很是不友好。記住,若是你有你喜歡的語言,那麼你能夠自由地提出這個問題。但總的來講,持一些否認意見可能會很糟糕。

別讓一次面試影響其它面試

這聽起來有點像」別讓一輪面試影響其它輪面試「。咱們中的許多人將經歷屢次面試,但屢次面試都失敗了。

當咱們收到一封電子郵件或一個電話對咱們說:

「對不起,你不夠優秀」

這感受糟透了。

可是,你不能讓一兩次糟糕的面試戰勝你。有的人在同一年裏屢次接受同一家公司的面試,直到他們獲得這份工做。讓一次面試定義其他的面試這是很是不正確的。咱們想對全部面試的人說的就是不要放棄。

有太多東西須要學習,咱們可能沒法一時完成。可是不要緊。只要保持樂觀,總有一扇門會爲你打開。

結論

技術面試很難,由於面試官尋找的是對項目和工做有着獨立的思考的人,而不只僅是在尋找程序員。但不管如何,請不要放棄!


原文連接 本文爲雲棲社區原創內容,未經容許不得轉載。

相關文章
相關標籤/搜索