我遍覽羣書,發現關於程序員的面試技巧,好的建議其實並很少。程序員
咱們也發現,不少頗有才華的程序員在面試的時候老是掉鏈子,這大概是由於他們把大多數時間都用來搞技術開發,而忽略了學習面試技巧的重要性。面試
這未嘗不是一種悲劇。有效的面試技巧能讓你成功獲得工做,即便你對那個領域也並非很是熟悉。算法
1. 給本身寫一份很是專業的簡歷編程
個人建議是,若是你想增長本身的入選機會,那最好仍是花點錢製做一份專業的簡歷。相較於你未來可能獲得的巨大收穫,這真的只是一個小小的投資。app
2. 研究面試官學習
當我聯繫程序員來面試的時候,我老是會事先發電子郵件給他,並附上個人名字和博客地址。可是讓我驚訝的是,當我給他面試的時候,他居然對我仍是一無所知。視頻
再舉個正面的例子,我在面試時也碰到過這類開發人員,甚至能對我之前寫的一篇博客或者作的教學視頻上面的內容侃侃而談。面試技巧
你說我會推薦哪一個?開發
面試官也是人,也會有人性的弱點和特色。Dale Carnegie 曾說過,要讓別人對你感興趣,最簡單的方法就是你先表達出對對方的興趣。博客
無論這種方法是否有欠公正,可是若是你想面試成功,那麼我建議你事先最好先好好研究一下你應聘的這家公司和麪試官(若是知道的話)。
當今社會的信息是如此的發達,咱們徹底能夠在 Facebook、Twitter、微博、博客上找到任何人的資料。即便你只是大體瀏覽一番,也會讓你受益良多。
3. 得到內部推薦
知道找工做最簡單的方法是什麼嗎?那就是得到內部推薦。
這不但能夠增長面試機會,還能提高 40% 的錄用概率。
前陣子,我找到了一家心儀的公司。而後直接投簡歷?NONO,猜猜我是怎麼作的吧?
首先我找到一名和我有共同想法和意見的開發人員,而後開始關注他的博客。
接着我在他的博客中留言、發表建議,而且表現出對他的工做和公司很是感興趣的想法。最後我成功拿到了這個寶貴的內部推薦資格。
不少程序員會說,「但是,某某某公司裏面的人我一個也不認識啊」。若是你想就此放棄,那當我什麼也沒說,若是你願意試試,我敢打賭,你總能想出一種方法達到你的目的。
不過這有個祕訣,那就是首先你得在網上建立本身的「名片」——讓別人有了解你的機會,因此 do it now 吧。
4. 學會解決算法問題
這是每個開發人員都應該具有的重要技能,並且真要掌握起來也並不是那麼難。
在不少面試中,都會有這樣的問題,要求你在白板或者電腦上解決編程問題,可是許多程序員,即便是那些很是優秀的程序員,都會一會兒大腦一片空白,徹底理不出思路來。
若是你能花時間學會如何解決這種類型的面試問題,那麼下次再碰到這種場景,就不會這麼緊張了。
咱們會緊張其實和怯場無關,主要是由於咱們不熟悉這些問題,也沒有自信能解決這種問題。
在這方面創建起自信以後,你就不再會緊張了。
5. 活力洋溢地回答問題
只用一個字或者一句話,照本宣科平平無奇地回答問題,或許在技術上是正確的,可是你忘了應該藉此機會好好展現本身的激情——這纔是一個開發人員能帶給團隊的最大正能量。
舉個例子說,若是我問你什麼是多態性,我不是要你按照課本中的定義重複給我聽,我但願你能就這個主題闡述一下,而後咱們能夠更深刻地聊一聊。
6. 當心「陷阱」問題
你爲何換工做?
說說你最大的優勢和缺點。
最近一次你是如何解決和同事之間發生的技術分歧的?
在回答問題以前,你最好明白麪試官問這些問題的目的,掌握如何回答這類問題的技巧。
就先說說第一個問題吧「你爲何換工做?」
在大多數狀況下,面試官想知道的是你是不是一個愛說三道4、慣於誹謗抨擊僱主的人。因此千萬不要上當。
7. 永遠不要撒謊
最糟糕的事就是在面試的時候撒謊。
知之爲知之,不知爲不知,若是你確實不知道,千萬不要自做聰明來編造問題的答案。
相反,你應該誠實地說,你不知道或者你並非 100% 確定,可是你願意嘗試一下,而後再講講本身的想法。講完以後也能夠問面試官正確答案是什麼,以顯示你對此很是感興趣。
實話告訴你,大多數面試官問的問題都是他們知道的問題,否則若是你濫竽充數給你經過的話就會顯得他們像個傻瓜。因此千萬不要抱着僥倖心理,一旦發現你在撒謊,面試官立刻就會質疑你的人品。
8. 不要太誠實
不少程序員會過多地透露本身的信息,不要覺得誠實和徹底透明就是最好的政策,卻不知過猶不及。
第 7 條所說的不可撒謊誠然不錯,可是咱們也不必將本身全部生活的細節和全部缺點都告訴給面試官。
有個性是好的,可是若是暴露了性格缺陷就壞事了。
試想一下,要是你說本身喜歡賭博或者沉迷於魔獸世界,我敢打賭,面試官確定會從新審視你。因此在說本身信息的時候必定要慎重,由於這不但會暴露你的缺陷,還會顯得你缺少應有的判斷力。
9. 掌握計算機科學的基礎知識
是的,不少程序員在面試的時候,甚至義正詞嚴地說,他們不知道鏈表和堆棧,由於他們沒有受到正規教育或者早就還給老師了。
我也認可咱們在工做的時候是用不到那些深層次的計算機科學概念的,可是做爲一個專業的軟件開發人員,你至少應該知道一些基本知識。
舉個例子說吧,你請電工來從新給你家的房子佈線,可是這電工一點也不知道任何電氣工程的基本知識,你還請他幹不?同理,咱們也是如此。
10. 關於經驗
這是最後一點,但並不是最不重要的,不少開發人員,特別是剛進入這一行的新手,每每缺少相關的經驗,也不知道如何增長所謂的工做經驗。
這有點像是雞和蛋哪一個先出現的問題。
那麼又該如何增長經驗呢?
關鍵是要用創造性的方式。有不少方法均可以得到工做經驗,可是卻沒必要真正去一家公司上班。
給你點提示:
這些方式均可以做爲工做經驗寫到簡歷中去,只要本身有想法,不愁沒經驗。
結束語
但願這些技巧能對各位有所裨益。若有不一樣想法,也請不吝賜教。