技術面試中,當面試官「套路」你時,怎麼「反套路」回去?

機器之心發表於2019-03-28

我剛剛在人才緊缺的阿姆斯特丹結束了為其六週的中級軟體開發崗位面試。這意味著我參加了很多面試。為了弄清楚哪些公司比較適合我,我想問很多問題。你必須找到你和麵試官之間合適的平衡點。

如果你是一個初級求職者,你可能並不關心這些問題的答案——畢竟你只是想要一份工作而已。即便是在這種情況下,你也應該思考一下對你來說什麼是危險訊號,並向面試官提一些可以獲得相關資訊的問題。這樣可以在接受工作之前瞭解到和你的預期不符之處。

一般的面試過程

根據我的經驗,面試形式和過程大致如下:

  • 電話篩選(隱形的現場面試)。這個過程一般由 HR 完成。如果是技術人員負責,這個過程一般都很短(不是你提問題的好時機)。

  • 技術面試。你將和實際開發人員進行這一輪面試,在這期間他們會深入瞭解你的知識背景。

  • 技術評估/homework 程式設計/結對程式設計。對我來說,如果一家公司的面試有結對程式設計環節,那絕對是加分的。homework 程式設計我也能理解,但絕大多數情況下這都是在浪費每個人的時間,也無法正確評估技術水平。

  • 最終面試,和團隊其他成員見面。如果這是一家小公司的話,這一輪面試你面對的可能是創始人(們)。

  • 發放 offer。

當然,每家公司都會有所不同,這只是你在找工作的過程中可能經歷的大致過程。

向電話面試官提的問題

第一輪面試通常由非技術人員來主導。向他們提出一堆問題並不合適,因為他們可能不知道你在說什麼——即便是小公司也是如此。

電話面試的大部分內容應該是你介紹自己。雖然他們已經有你的簡歷了,但他們還是希望你能自我介紹一下——確保你能夠簡明扼要地講述自己的工作經歷。面試時你需要再次重複這些內容。

招聘流程是什麼?

他們應該會和你討論這個,但是如果沒有的話,你就要自己找出這家公司具體的招聘步驟。如果你只是在這裡試水,但他們卻想讓你構建完整的 app,那最好跳過這家公司,去下一家。

問一些技術團隊的事。

團隊中有多少成員?團隊由多少初級和高階技術人員組成?團隊中是否有其他級別的成員(比如 CTO 或產品負責人)?對 HR 來說這些問題應該是很容易解釋清楚的。如果他們無法回答(尤其是大公司),那也沒關係。

確保結束電話面試之前,你已經知道下一步該做什麼了。

向技術面試官提的問題

我的大部分問題都是關於這一部分的。他們評估你的同時你也在評估他們。讓你的面試官主導談話過程,但在這個過程中提一到兩個問題也無妨。在面試結束的時候,他們應該會問你是否還有其它問題,你可以在恰當的時候提下面的問題。

別問你不關心答案的問題。浪費每個人的時間來討論無法幫你決定是否接受這份工作的問題是沒有意義的。

這些問題是按我關心的程度排序的。如果面試過程愉快,我可能不會問最後的問題;如果面試過程沒那麼愉快,那我可能會問所有的問題,並希望和團隊其他成員建立更好的關係。

這個職位的理想人選是什麼樣的?

我真的很喜歡這個問題,因為這個問題以一種全新的方式詮釋了招聘方對你的期望。如果你的面試官可以憑空創造一個填補這個職位的理想人選,那會是什麼樣的人?有時候他們會覺得你就很理想,但有時候他們也會說一些和你的背景、技能或偏好都不相符的人選。你可以通過這種方式很好地瞭解你是否適合這家公司。

例如,一家公司說他們想要「不需要很多幫助」的人。對我來說這就是一個危險訊號。任何剛進入新程式碼庫的人都需要有人來幫他了解業務邏輯,哪怕這個人很擅長寫該領域的程式碼也是一樣。我真的很反感牴觸學習環境的開發人員。

另一方面,我還經常聽到他們想要「獨立」且「自勵」工作的人。對我來說這些都是很好的跡象,我認為自己就是這樣的人,我不想在自己的工作中有過多吹毛求疵和強制的結構。這兩個答案可能意味著完全相同的東西,但是它們的框架可能會對你的工作環境有很大的影響。

這份工作中最大的挑戰是什麼?

這個問題的答案很大程度上取決於你要做什麼。這在所有情況下都是一種很好的方式,通過這種方式你可以瞭解面試中未涉及的隱藏資訊。注意密切關注他們所認為的這份工作中最具挑戰性的部分,判斷你是否可以應對這些挑戰。

在公司中作出規劃的是誰?

這一問題主要針對的是長期規劃,可以談一些關於目標增長的問題。讓我覺得最危險的是他們不知道該如何回答這一問題。如果這是一家小公司,那「創始人」就是很好的答案;如果是一家大公司,那「董事會」或「管理層」都是不錯的答案。最好的情況是每個人都認為自己在創造更好的未來。但如果你問出這個問題後面試官無言以對那就很糟糕了——你得去一家知道未來發展方向的公司工作。

你如何衡量開發團隊、個人或公司成功與否?

這又是一個過程問題。我想知道我的工作以及團隊的工作會被如何評估。如果他們無法回答這個問題,那就換個思路,問他們是怎麼判斷自己做得不好的。在我看來,如果看不到做得好的地方,只能看到做錯的地方,那這絕對是一個危險訊號。如果你不知道成功是什麼樣子,那你怎麼能成功呢?

在這裡工作最吸引人(或令人沮喪)的地方是什麼

這個問題可以重複問很多人。可以把它按積極和消極分成兩個問題(我更喜歡問積極的方面)。你經常會發現一些模式——每個人都會煩惱同樣的事情。在面試中討論消極問題是很難的,但我發現人們無法迴避這個問題。

他們不會告訴你公司存在的系統性大問題(有的時候也會告訴你),但至少你會感覺到工作中過程/個人/官僚主義問題的存在。

描述程式碼審查的流程

這個問題的答案就相當簡短了——他們可以在 Github 或其他什麼地方進行同事審查來拉取請求(Pull Request,PR)。進一步瞭解他們要做哪些審查、合併提交程式碼的平均時間等。他們會非常挑剔嗎?還是不怎麼嚴格,漏掉大量錯誤?他們是真的很在乎還是隻是在顯擺自己的知識?測試怎麼樣?他們多久釋出一次呢?

一個想法是如何從「走向世界」進入產品需求待辦列表(product backlog),並最終變成程式碼和產品的(帶我看一下功能開發過程)?

我想知道新想法從何而來——通過觀察資料然後根據現有觀念建立?還是創始人有個想法然後每個人努力實現他的想法?

這個問題很像前面關於「規劃」的那個,這可以作為那個問題的後續。當你們有了規劃之後,會如何描述實際功能並編碼這些功能呢?我認為這和「在這裡工作是什麼樣的體驗?」很像,但換了一種問法,而且也不會得到陳詞濫調的回答。

解釋一個你最近遇到的技術挑戰

如果他們覺得上面的問題都很難回答,那這個會簡單點——我想要一個他們最近完成的工作的具體例子。團隊成員之間是合作完成任務,還是某一個人自己解決問題?是否引入了外部資源?是否完成了該功能的開發?同樣,這個問題有助於瞭解該公司的日常運營。

附加題:新員工的入職計劃是什麼?你該如何讓新入職成員融入團隊?

除非你是初次求職,不然我認為這些問題應該放在最後。頭一次找工作的人要了解重要的入職計劃和培訓計劃。但老油條也可以通過這些問題了解他們的答案。我想知道他們會如何幫助新的開發人員開始工作。他們是否思考過如何讓新入職的職員更容易地融入新公司?當然,如果公司沒有這些計劃也並無大礙,因為大部分公司都沒有。

類似問題還有,他們是否會僱傭初級開發人員以及他們如何與這些開發人員共事,但問這個問題的前提是我們已經工作過一段時間了——我們並不是職場菜鳥。我已經工作快三年了,但我並不想給任何人任何建議。高階工程師可以提這個問題,他們不容易被誤認為菜鳥。這樣他們可以知道這家公司是如何看待員工價值的。

向最終面試官提的問題

在最後一輪面試中,你可能已經要談薪水和入職時間了。如果他們給你發放了 offer,那你要詳細瞭解通知裡的內容——獎金、養老金、股權、假期以及入職時間等。

你可能想問這樣的問題,但在問之前要小心一點,注意房間氛圍:

有什麼需要我特別注意的部門嗎?

在大公司,他們認為「銷售」部門需要特別注意,他們會讓你知道銷售就像是這裡的神祇,不要惹惱他們。在小一點的公司,他們會告訴你這方面沒什麼需要注意的。通過這個問題你可以瞭解一些第一天工作要知道的事——實際發號施令的是誰?是否存在有些人覺得不值但也有些人很喜歡的專案?如果他們不介意告訴你一些祕辛,這會在你入職的頭幾周幫到你。這個問題也表示你很想融入公司,想和周圍的人進行適當的溝通。

終極提示

以上所有問題都會引發討論。你不需要逐一提問。從最重要或者資訊量最大的問題開始,根據對話進行擴充套件。仔細討論比逐一問答要好得多。

我在評估一家公司時,只會問自己兩個問題——如果我在這裡工作會開心嗎?他們會想要僱傭我嗎?無論面試過程中的對話是什麼樣的,都會讓我更接近這兩個問題的答案。這些提示只是幫你在面試時能更好地實現目標。

原文連結:https://medium.freecodecamp.org/how-to-interview-your-interviewers-when-youre-looking-for-a-job-d848bc3a910

相關文章