【面試】英語面試技巧

最近跟同事討論面試的事情比較多,因此就綜合你們所說的列舉幾條面試建議吧。這些建議是針對中國候選人應聘美國職位而寫的,但適用範圍可能更廣。倘若你實際的實力是 X,面試官感知到你的實力是 Y,這些建議既不能讓你實力暴增(X++),也不能讓你展示超乎實際的實力(Y > X),只能幫助你避免因爲溝通問題而形成的實力不被發現(Y < X)。html

當作討論而非考試

儘管面試有個「試」字,但在真正好的技術面試其實不是一問一答的考試,更可能是如同同事之間的技術討論同樣,從比較糟糕的解決方案開始作優化,直到作到你們均可以接受的程度爲之。這個觀點在《理想的技術面試過程》中也提到過,在這裏就說一下具體應該怎麼作。面試

首先你要自信,不能以爲面試是公司對你的單向選擇,實際上是同時包括你對公司的雙向選擇。有些心理學上的技巧可讓你顯得自信一點的,例如說在公司大堂等待的時候嘗試深呼吸和伸展一下四肢。因爲人的心理狀態和身體語言是互相增強的,因此若是你使用自信的身體語言,你就會無心識地被「誤導」覺得本身確實自信,不過這正是你想要的效果。(若是你想更多的瞭解什麼身體語言表示自信,能夠去找自己體語言方面的書來看。)函數

而後你不要高估題目的難度。有些人可能被 Google 中國的某些面試官虐待過,以爲越是好的公司題目天然越難,但這實際上是中國應試體系的思惟方式而已,題目難度不是篩選出少數人的惟一手段。就好像同事問你問題同樣,問及的事情有多是你徹底沒作過的,你就憑藉常識來提供一些基本的判斷;也有多是你深刻研究過的領域,你能夠說出不少細節和難以碰見的問題。面對後面一種狀況,假設你說的都是對的,面試官會很開心;面對前面一種狀況,面試官會讓你說出更多細節,或者問你哪裏還能繼續優化,這時候你就知道你的答案和已知最優答案還有差距了。(有些 Google 面試官會在你給出該問題業界已知最優解後仍然問你能不能繼續優化。)因此千萬不要一開始就假設題目很難,以爲給出一個沒有優化過的答案很丟臉。性能

英語說慢一點

不少時候人一緊張起來,說話就會越說越快,在有點口音的狀況下只會讓對方愈來愈難聽懂。在對本身技術自信的基礎上,同時也須要對本身的英語表達能力自信。其實語法或者詞彙有點問題,說話有口音,這些影響都不大,只要對方可以聽到關鍵詞彙,意思仍是能明白的。有時候可能雙方都要多說幾回「excuse me」和「what is it」才能問明白對方的意思,但只要最後問題能討論清楚,那你至少仍是讓面試官瞭解到了你的真實實力。優化

代碼要易讀易改

這個問題來源自某人的一句評論:編碼

有 ACM 背景的人每每在面試過程當中都很不介意寫全局變量,但我更指望這個問題的解決方案就是一個函數,因此實現細節都在內部解決。code

其實「全局變量」不是重點,代碼的易讀性和可維護性纔是重點,而這每每是 ACM 或我的項目所缺少的訓練,這種問題尤爲容易出如今編碼能力很強但不多跟人合做的人身上。htm

對於 ACM 而言,只要程序能運行代碼怎麼寫都沒所謂,反正代碼的生命週期也就是幾個小時,不管是否經過幾個小時後你就不會再去閱讀或者修改這段代碼了。這種訓練使得寫 hacky 代碼缺乏懲罰。但在實際工做當中,任何 hacky 的代碼都會引入新的 technical debt,最終確定是你以及你的同事承擔。你寫下的第一個版本,可能要在代碼庫中停留幾年纔有人徹底推倒重寫,這幾年內不停地有人在上面作修改,你須要保證在這個過程中你們都還能明白這段代碼是幹什麼的。blog

若是你把面試官看作同事,那麼你寫的代碼天然是要通過他 code review 的。不要爲了追求高性能而寫出很難讀的代碼來,面試官讀不懂就判斷不了代碼的正確性,性能再好也沒有用。你寧肯先寫下來最清晰可讀的版本,若是面試官說須要優化性能時再作優化。生命週期

相關文章
相關標籤/搜索