技術面試中要避免的七個錯誤
已發表: 2022-03-10我在很多技術面試中都失敗了。 年復一年地過去了,我的技術面試技巧會慢慢進步。 直到我收到了來自 Spotify 的夢寐以求的工作機會,並通過了谷歌的技術面試,我才意識到在過去的幾年裡我學到了多少。 終於,我的學習有了回報! 這也是許多開發人員因 COVID 開始失業的時候。
“如果我在通過計算機科學學位的數據結構和算法面試時遇到困難,”我想,“我無法想像這些概念對於自學成才的開發人員來說有多麼難以理解。” 所以在過去的一年裡,我的使命是讓每個人都可以使用數據結構和算法。
我發現很難找到一種資源來學習有關技術面試過程的所有內容。 從招聘人員的電話到系統設計面試再到工作機會的談判,沒有包羅萬象的技術面試資源,所以我決定創建一個。
關於遠程採訪的說明
由於全球大流行,許多公司已經完全偏遠。 這很棒,因為它允許世界各地的候選人申請,但這對於幾乎沒有在線面試經驗的候選人來說可能是令人生畏的。
以下是您的虛擬面試的一些提示。
- 提前到達。
沒有什麼比參加在線會議並意識到您需要下載整個驅動程序包才能運行程序更令人恐慌的了。 我建議提前使用會議應用程序創建一個帳戶並與朋友進行測試會議,以確保您可以訪問該應用程序並使用在線控件感到舒適。 - 使用耳機。
我總是建議您使用耳機進行遠程技術面試。 它們將有助於減少背景噪音並確保您清楚地聽到講師的聲音。 - 為您的電腦充電。
遠程會議工具會很快耗盡您的計算機電池,尤其是在您進行實時編碼的情況下。 為了解決這個問題,如果可能的話,讓你的電腦在整個面試過程中都插上電源。 - 測試你的相機。
雖然遠程採訪讓我們處於安全和熟悉的環境中,但我們經常會忘記從視頻幀的背景中刪除令人討厭的項目。 我總是建議舉行一次測試會議來檢查您的視頻幀並從背景中刪除髒衣服。 如果您的背景不理想,您也可以使用虛擬背景進行遠程面試。
技術面試流程
當您開始與公司進行技術面試時,您的招聘人員應告知您對該過程的期望。 技術面試如此令人焦慮的原因之一是缺乏流程標準化。 一家公司的技術面試與另一家公司的技術面試看起來截然不同。 但是你可以準備的技術面試過程之間有一些共同點。
這是您在即將到來的面試中可能會看到的技術面試流程的通用版本。
招聘人員電話面試
您的第一次面試將是招聘人員的電話面試。 在這次電話會議中,您將討論工作、公司以及您對面試過程的期望。 不要掉以輕心:技術面試過程中的所有面試對於獲得工作機會都至關重要。 如果您似乎對這個角色不感興趣,招聘人員可能不會讓您進入流程的下一階段。
如果您要申請許多不同的職位空缺,我建議您保留一份包含職位、公司、招聘信息和任何相關信息的電子表格。 您應該在招聘人員電話面試之前回顧您的筆記,以確保您消息靈通並留下良好的印象。
技術篩選
如果招聘人員的電話面試順利,您可能會進入技術篩選面試。 此面試可能是異步的,您不與人工面試官互動,而是在有時間限制的平台上完成編碼挑戰,或者您可能有現場面試官。
公司通常會進行技術篩選,以確保候選人具備在某個職位上茁壯成長所需的基本技術知識。 全面面試每一位候選人可能會很昂貴,因此技術篩選是減少候選人庫的一種方法。
您將在這次面試中進行編碼,因此對您的基礎編程語言充滿信心非常重要。
帶回家項目
有些公司需要一個帶回家的編碼項目來代替編碼挑戰,或者除了編碼挑戰之外(同樣,所有流程都不同,因此請諮詢您的招聘人員以了解具體情況)。
編碼項目是一個兩極分化的話題:一些候選人喜歡它們,而另一些候選人則認為它們不公平。 一方面,編碼項目允許您使用您喜歡的工具在更自然的環境中展示您的技能。 另一方面,這些項目可以成為公司獲得免費(通常是無償)勞動力的一種方式。
許多有家庭、多份工作或其他耗時承諾的候選人可能沒有必要的時間來完成帶回家的編碼項目,這可能會給沒有相同職責的候選人帶來不公平的優勢。
如果您的任務是帶回家的項目並且沒有時間投入到它上,您可以詢問招聘人員是否有替代方案。 可能還值得詢問您是否會為您在這次面試中花費的時間獲得補償(有些公司會付錢給您,儘管他們都應該)。
現場採訪
“現場”面試階段可能是最終收到工作機會或拒絕之前的最後階段。 許多公司過去常常將候選人帶到他們的辦公室進行一整天的面試,但由於大流行,這些面試是虛擬進行的。
許多候選人發現現場面試壓力最大,因為它需要您從當前職位休假一天才能完成。 您可能會進行三到四次面試(通常為半天),其中包括流程/價值觀/協作面試(您如何與團隊協作,如何解決衝突)和編碼面試。
現場面試壓力很大,因此請記住在每次面試前休息並減壓。
面試過程注意事項
技術面試過程很緊張,可能會讓你筋疲力盡。 確保你在每次面試後花時間減壓並反思它是如何進行的。 有沒有比其他人更難接受的採訪? 如果是這樣,請在下一次面試過程中關注這些領域; 一些招聘人員甚至會為你提供面試官的反饋,這樣你就可以專注於學習。
您還應該反思您在面試過程中的感受。 面試官是否讓你感到安全和舒適? 這甚至是你會在其中茁壯成長的工作環境嗎? 請記住,技術面試是雙向的。
既然我們已經詳細介紹了技術面試過程,讓我們深入了解候選人通常會犯的七個錯誤,以及避免這些錯誤的技巧。
錯誤一:溝通不暢
技術面試應該衡量你的溝通和解決問題的能力,而不一定是你是否為編碼挑戰獲得了最佳的、可行的解決方案。 解決問題的關鍵在於溝通,但您知道每種文化對“優秀溝通者”的定義不同嗎?
有兩種不同類型的通信:
- 低語境
非常明確,多餘,直截了當。 信息表述清楚,應按面值解釋。 - 高語境
更模棱兩可的是,聽眾應該在字裡行間閱讀(或閱讀空氣)並解釋隱藏的信息。
在技術面試中,無論您習慣於如何溝通,都必須練習低語境溝通。 如果你需要一點時間思考,告訴你的面試官。 如果您需要幫助,請尋求幫助!
候選人通常不會進入下一個面試階段,因為他們未能有效地溝通。 如果您將面試視為對話而不是考試,那麼您更有可能進行有效的溝通。
錯誤二:不知道答案時不承認
如果你不知道某事的答案,那就承認吧! 當候選人有自我意識和謙虛地承認他們不知道某事的答案時,面試官會很感激。 承認自己一無所知比“BS”通過它要好得多。
如果您不確定如何回答問題,您可以說:“老實說,我不確定。 如果我必須做出有根據的猜測,我會說……”人們不想與“無所不知”的人一起工作; 他們想與承認自己不知道答案的真實人類合作。
錯誤#3:面試前一晚死記硬背
老實說:我們都在前一天晚上擠滿了面試。 花時間面試很累,但現實是面試是一種技能(可悲),必須練習。
雖然你可能會覺得在面試前一晚的死記硬背中學到了一些東西,但這種學習是不穩定和膚淺的。 我們的大腦只會在面試前一晚塞進時將信息編碼到短期記憶中。 這意味著你剛剛“學到”的所有信息都會在面試後迅速消散。 因此,最好在面試前的幾週內做一點學習,而不是前一天晚上補習班。
此外,你更有可能反芻信息而不是真正理解它。 如果你只是背誦你記住的信息而不是解決一個解決方案,它會很快變得明顯。
有效學習的一種策略是使用上下文切換作為工具。 雖然在學習新技能的過程中切換環境似乎無效,但它實際上是最有效的學習工具。 當你在學習過程中切換上下文時,我們的大腦更難回憶信息,最終加強編碼信息,從長遠來看更容易回憶。
如果您想了解更多關於有效學習方法的信息,這裡有一些對我有幫助的資源:
- “原子習慣”,詹姆斯·克利爾
- “學習如何學習”,Coursera 課程
- “讓它堅持下去,”彼得 C. 布朗、亨利 L. 羅迪格三世、馬克 A. 麥克丹尼爾
錯誤 #4:為算法和數據結構記住代碼
候選人經常覺得他們必須記住算法和數據結構的代碼,但現實情況是你可能不必從頭開始編寫這些東西。 反芻代碼不是一項有用的技能,你的面試官將能夠告訴你只是記住了一個解決方案。 相反,您應該旨在了解您正在完成的工作的過程。
此外,您不需要學習曾經發明的每一種排序和搜索算法。 相反,您可以確定不同數據結構的最佳解決方案並學習其背後的概念。 例如,如果要求您對整數數組進行排序,您可能知道像合併排序或快速排序這樣的分治算法是一個很好的解決方案。 如果您了解算法或數據結構如何工作的概念,您就可以構建解決方案。
最後,大多數編碼面試將使用基礎編程語言進行(即使公司正在尋找 React/Vue.js 開發人員):您可能不會被要求使用框架或庫進行編碼,因此請確保您是對您的基礎編程知識充滿信心。
錯誤#5:忽略“文化契合”採訪
整個技術面試過程中的所有面試都很重要,但是,似乎重點放在了數據結構和算法上。 雖然數據結構和算法是一個重要的研究領域,但你應該對過程中的其他面試給予同樣的關注:不要將數據結構和算法優先於其他“更容易”的面試,如“協作和過程”。
“文化契合”面試旨在了解您如何在團隊中協作和處理衝突。 您可能會收到以下問題:
“告訴我一個你正在從事的項目失敗的時間。 為什麼它失敗了,你是如何前進的?”
要么
“告訴我你與團隊成員發生衝突的時間。 你是怎麼解決的?”
寫下你對這些問題的回答並練習大聲回答。 你不想听起來像排練過的,但你想要簡潔而不是漫無邊際。 保持你對幾句話的回應。 此外,眼神交流和肢體語言也很重要。
盡量不要坐立不安,專注於與面試官進行眼神交流!
錯誤#6:從優化的解決方案開始
除非您對編碼挑戰的最優化解決方案有 110% 的信心,否則您不必從最優化的解決方案開始。 候選人通常認為他們必須從一個最佳解決方案開始,這讓他們絆倒了。 他們被卡住了,無法前進。 相反,從非最佳解決方案開始,然後說:
“我知道這不是最高效的解決方案,但我想獲得一個可行的解決方案,並在面試後期對其進行重構以提高性能。”
你的面試官會欣賞你的誠實和對錶現的尊重。 您還可以更快地取得進步,並且在面試中,小小的勝利會對您的自信心和整體表現產生巨大影響。
錯誤 #7:忽略編程基礎
前端開發人員角色的候選人忽略了他們的 HTML 和 CSS 技能以優先考慮 JavaScript,但更多的面試正在測試基礎編程技能的知識,所以不要忽視它們。
我們經常忘記基礎並跳到更專家級的框架和庫,但這會阻礙我們的面試表現。 面試是用基礎語言(即 JavaScript,而不是 React/Vue.js)進行的,所以不要忽視基礎。
結論
每個人都對技術面試過程感到焦慮,但是通過注意這七個錯誤,您可以提高獲得工作機會的機會。
一旦你收到工作機會,你就可以決定是否要談判。 您可以協商很多事情:帶薪休假:工作時間、股權、簽約獎金、職位和薪水只是其中的一小部分。
在談判工作機會時,進行研究很重要。 擔任這個角色(以及在這個地理位置)的人每年賺多少錢? 您可以使用 Glassdoor 進行一些市場調查。
您還應該認識到招聘人員有限制,可能無法為您提供更高的薪水。 相反,你可以要求籤約獎金或股權,但要準備好讓他們說他們不能增加你的報價。
你應該關注“為什麼”你應該獲得額外的薪水或福利; 你帶來了什麼別人不會的東西?
最後,不要給招聘人員最後通牒,即“如果你不給我這個薪水,我就走人”。 相反,請關注您想加入團隊但需要改進/更改要接受的提議這一事實。
這是您可以用來要求增加基本工資的示例電子郵件:
“非常感謝你的提議。 我真的很激動,並期待加入這個團隊。 在我接受這個提議之前,我想討論一下基本工資。 我是技術社區的活躍成員,並使用 X 學習平台在線教授大量課程。 我知道我對 Y 的廣泛了解將使團隊受益匪淺。 因此,我正在尋找 A 到 B 範圍內的基本工資。如果我們能完成這項工作,請告訴我,我會立即簽署報價!
如果你沒有得到工作機會,別擔心! 幾乎每個人都曾因某個職位而被拒絕。 你不是一個人! 花一些時間來反思你的面試,並確定你可以在下一輪面試中改進哪些方面。
如果你想了解更多關於數據結構、算法、編碼項目、文化契合面試、系統設計面試等的信息,請查看我的新書《De-Coding The Technical Interview Process》。 在過去的一年裡,這本書一直是我的熱情所在,它幫助許多開發人員(包括我自己)獲得了工作機會!
對自己要有耐心。 你可以這樣做!
關於 SmashingMag 的進一步閱讀:
- 建立自己的個人學習課程
- 在遠程工作時代改善團隊的溝通
- 使用產品設計文檔更好的文檔和團隊溝通
- 使遠程工作工作:有用的工具和資源