interview-questions

為什麼面試程式設計職位的問題這麼難? 我必須說,我討厭程式設計的面試問題。為什麼它們這麼難? 如果你曾經使用過 HackerRank 之類的工具或讀過一本編程面試問題的書,你可能會同意我的看法。是的,整個行業都圍繞著編程面試和準備而存在。 我討厭那些面試問題。在網絡上,並不是每個人都同意我的觀點。似乎很多人想要繼續這種“傳統”。 幾年前,我決定不再從事合同工作/自由職業,並參與了許多不同公司的招聘過程。 在我意識到我基本上是不可雇用之前,這是另一個故事。我所指的不可雇用,是指我除了為自己建立自己的產品和資產,而不是為別人建造產品,無法為任何其他人工作。 我申請的公司中有大約一半的公司都有進行實踐性的“在家完成”項目的初步篩選。 沒人要求我實現FizzBuzz,或者其他經常被描述為“必須知識”的算法。 我們可能被誤導以為每一個招聘過程都像在 Google 那樣。我讀到有人花了一年準備 Google 的面試,結果申請時被拒絕了。可悲。 有無數的小型和中型公司從不使用嚴格而乏味的技術面試,以白板為基礎,涉及算法和數據結構等主題。没有 Google 和(噢!)Stack Overflow。 當然,了解這些主題是很不錯的,我認為你應該真正了解它們。 我也明白其中的思維:這些問題基本上都一樣,只是有 10-20 個變化。實現冒泡排序。好的,我能做到。他們只是想聽你在這個主題上的推理方式。你如何處理這個問題。但實際上,這只是解釋你記住了一個問題的內容。如果求職者是剛畢業的話,他們可能會記得得很清楚。如果求職者有 5 年的實際工作經驗,他們可能不會記得了。 FizzBuzz 更合理。它不是在學校教的,這個問題可以在 3 分鐘內解釋清楚,而且你可以對它進行推理。 但是如果我負責組織我公司的招聘,可能作為一個 CTO,我永遠不會讓一個人站在白板前,讓他們實現FizzBuzz。為什麼?首先,這完全沒有用 - 你將永遠不需要在現實世界中實現它。 其次,這給應聘者帶來了很大的壓力。很多人在這種情況下表現不佳,我也是其中之一。我可能只能展示出我價值的 10%,因為我無法在這樣對我來說陌生的環境下很好地發揮作用。 DHH(David Heinemeier Hansson,超受歡迎的 Ruby on Rails 框架的創建者)曾經說過: “我在白板上寫冒泡排序會失敗” 這太糟糕了,也許只能用來測試應聘者的神經。這完全不同於測試一個人對公司的價值,如如果我正在招聘一名程序員,進行編程等測試。 你在傳統的白板面試中能解決的任何問題都與程序員的實際工作沒有任何相關性。 我必須思考一下我上一次花時間決定要使用哪些算法,更不用說實現一個全新的算法了。那麼為什麼人們總是被問到這些問題呢? 這是一個指出大公司也在朝著更好的方向發展的推文: 我們更新了發送給前端工程師候選人的內容,以更好地反映 Facebook 對這個職位的面試過程。我希望這能幫助人們準備他們的面試! pic.twitter.com/EvTyKbugYT — Dan Abramov (@dan_abramov) February 12, 2019 實際知識。向我們要求這個。 我記得在一次面試中我得到了一個很酷的問題:描述一下當你進行 Google 搜索時會發生什麼。這是一個開放式的問題,並且它是一個關於網絡協議和發生的細微差別的對話的開始。這是一個聰明的問題。 沒有白板,因為這是一個遠程的 Zoom 通話。 另一次面試是基於我在 React 上實現的編碼挑戰,離線完成的。我有 7 天的時間(實際編碼只需要 3 小時就夠了)。招聘過程的剩餘部分都基於我在這個代碼上所做的工作。...

軟技能讓軟體開發人員繁榮

面試過程也是用來評估您的軟技能的。 什麼是軟技能? 我會將與技術無關的任何事情歸類為軟技能,而是與與他人相處有關。 軟技能對任何人都是必不可少的,尤其是對於在團隊中工作的人,這是您在99%的工作中都要做的事情。 每個人都有自己認為最佳的軟技能版本。 我會提到以下這些: 身體語言 共情 對新技術持開放態度 你不是你的代碼 擁抱改變 持續學習 提問 身體語言 試著練習在面試時保持舒適。 當然,你面試得越多,這一點就越容易。 身體語言是一門藝術,當我們緊張時,甚至不需要說一個字,就可以清楚地展示出來。 共情 共情是能夠站在別人的立場上,理解他們的感受,理解他們為什麼以某種方式行為的能力。 我把這個放在第一位,因為缺乏共情可能是許多問題的根源。 理解對方的觀點,積極聆聽並友善對待。 對新技術持開放態度 在面試過程中,您可能會被問及是否願意學習X框架或Y語言。 作為一名開發人員,開發渴望學習您所能學到的一切是至關重要的。 您將始終學習新事物。 你不是你的代碼 您的代碼總是會受到批評。無論它有多好或多壞,你不是你的代碼。您的代碼並不是您能力的證明。它只是在特定時間點下特定限制條件下您的工作產物。 如果招聘人員認為您的代碼不夠好,可能有原因,您不應該感到個人冒犯或煩惱,也不要使面試出現偏離。 您在當前情況下已經盡力了,但下次可以做得更好。 擁抱改變 派生於您花了很多時間學習的特定技術、框架或語言的喜愛是很容易的,並且認為它是有史以來最好的工具。 但在團隊環境中,許多時候您喜歡的技術、框架或語言可能會被換成另一個更好的工具。 對於變化始終保持主動態度,不要過於依附於任何事物。 在面試中展示出您是開放的思維方式很重要。 提問 保持好奇心。不要假設任何事情,而是主動提問。 提問意味著在下結論之前收集所有需求。 在面試中,問問題關於公司。這是一次雙向面試。他們了解您,您了解他們。