很多很有才華的程序員在面試的時候總是掉鏈子,這大概是因為他們把大多數(shù)時間都用來搞技術(shù)開發(fā),而忽略了學習面試技巧的重要性。這何嘗不是一種悲劇。有效的面試技巧能讓你成功得到工作,即使你對那個領(lǐng)域也并不是非常熟悉。下面分享程序員的10大成功面試技巧!
1.給自己寫一份非常專業(yè)的簡歷
我的建議是,如果你想增加自己的入選機會,那最好還是花點錢制作一份專業(yè)的簡歷。相較于你將來可能得到的巨大收獲,這真的只是一個小小的投資。
2.研究面試官
當我聯(lián)系程序員來面試的時候,我總是會事先發(fā)電子郵件給他,并附上我的名字和博客地址。但是讓我驚訝的是,當我給他面試的時候,他竟然對我還是一無所知。
再舉個正面的例子,我在面試時也碰到過這類開發(fā)人員,甚至能對我以前寫的一篇博客或者做的教學視頻上面的內(nèi)容侃侃而談。
你說我會推薦哪個?
面試官也是人,也會有人性的弱點和特點。Dale Carnegie曾說過,要讓別人對你感興趣,最簡單的方法就是你先表達出對對方的興趣。
不管這種方法是否有欠公正,但是如果你想面試成功,那么我建議你事先最好先好好研究一下你應聘的這家公司和面試官(如果知道的話)。
當今社會的信息是如此的發(fā)達,我們完全可以在Facebook、Twitter、微博、博客上找到任何人的資料。即使你只是大致瀏覽一番,也會讓你受益良多。
3.獲得內(nèi)部推薦
知道找工作最簡單的方法是什么嗎?那就是獲得內(nèi)部推薦。
這不但可以增加面試機會,還能提升40%的錄用幾率。
前陣子,我找到了一家心儀的公司。然后直接投簡歷?NONO,猜猜我是怎么做的吧?
首先我找到一名和我有共同想法和意見的開發(fā)人員,然后開始關(guān)注他的博客。
接著我在他的博客中留言、發(fā)表建議,并且表現(xiàn)出對他的工作和公司非常感興趣的想法。最后我成功拿到了這個寶貴的內(nèi)部推薦資格。
很多程序員會說,“可是,某某某公司里面的人我一個也不認識啊”。如果你想就此放棄,那當我什么也沒說,如果你愿意試試,我敢打賭,你總能想出一種方法達到你的目的。
不過這有個秘訣,那就是首先你得在網(wǎng)上創(chuàng)建自己的“名片”——讓別人有了解你的機會,所以do it now吧。
4. 學會解決算法問題
這是每一個開發(fā)人員都應該具備的重要技能,而且真要掌握起來也并非那么難。
在很多面試中,都會有這樣的問題,要求你在白板或者電腦上解決編程問題,但是許多程序員,即使是那些非常優(yōu)秀的程序員,都會一下子大腦一片空白,完全理不出思路來。
如果你能花時間學會如何解決這種類型的面試問題,那么下次再碰到這種場景,就不會這么緊張了。
我們會緊張其實和怯場無關(guān),主要是因為我們不熟悉這些問題,也沒有自信能解決這種問題。
在這方面建立起自信之后,你就再也不會緊張了。
5.活力洋溢地回答問題
只用一個字或者一句話,照本宣科平平無奇地回答問題,或許在技術(shù)上是正確的,但是你忘了應該借此機會好好展示自己的激情——這才是一個開發(fā)人員能帶給團隊的最大正能量。
舉個例子說,如果我問你什么是多態(tài)性,我不是要你按照課本中的定義重復給我聽,我希望你能就這個主題闡述一下,然后我們可以更深入地聊一聊。
6.小心“陷阱”問題
你為什么換工作?
說說你最大的優(yōu)點和缺點。
最近一次你是如何解決和同事之間發(fā)生的技術(shù)分歧的?
在回答問題之前,你最好明白面試官問這些問題的目的,掌握如何回答這類問題的技巧。
就先說說第一個問題吧“你為什么換工作?”
在大多數(shù)情況下,面試官想知道的是你是否是一個愛說三道四、慣于誹謗抨擊雇主的人。所以千萬不要上當。
7.永遠不要撒謊
最糟糕的事就是在面試的時候撒謊。
知之為知之,不知為不知,如果你確實不知道,千萬不要自作聰明來編造問題的答案。
相反,你應該誠實地說,你不知道或者你并不是100%肯定,但是你愿意嘗試一下,然后再講講自己的想法。講完之后也可以問面試官正確答案是什么,以顯示你對此非常感興趣。
實話告訴你,大多數(shù)面試官問的問題都是他們知道的問題,不然如果你濫竽充數(shù)給你通過的話就會顯得他們像個傻瓜。所以千萬不要抱著僥幸心理,一旦發(fā)現(xiàn)你在撒謊,面試官馬上就會質(zhì)疑你的人品。
8.不要太誠實
很多程序員會過多地透露自己的信息,不要以為誠實和完全透明就是最好的政策,殊不知過猶不及。
第7條所說的不可撒謊誠然不錯,但是我們也沒必要將自己所有生活的細節(jié)和所有缺點都告訴給面試官。
有個性是好的,但是如果暴露了性格缺陷就壞事了。
試想一下,要是你說自己喜歡賭博或者沉迷于魔獸世界,我敢打賭,面試官肯定會重新審視你。所以在說自己信息的時候一定要慎重,因為這不但會暴露你的缺陷,還會顯得你缺乏應有的判斷力。
9.掌握計算機科學的基礎(chǔ)知識
是的,很多程序員在面試的時候,甚至理直氣壯地說,他們不知道鏈表和堆棧,因為他們沒有受到正規(guī)教育或者早就還給老師了。
我也承認我們在工作的時候是用不到那些深層次的計算機科學概念的,但是作為一個專業(yè)的軟件開發(fā)人員,你至少應該知道一些基本知識。
舉個例子說吧,你請電工來重新給你家的房子布線,但是這電工一點也不知道任何電氣工程的基本知識,你還請他干不?同理,我們也是如此。
10.關(guān)于經(jīng)驗
這是最后一點,但并非最不重要的,很多開發(fā)人員,特別是剛進入這一行的新手,往往缺乏相關(guān)的經(jīng)驗,也不知道如何增加所謂的工作經(jīng)驗。
這有點像是雞和蛋哪個先出現(xiàn)的問題。
那么又該如何增加經(jīng)驗呢?
關(guān)鍵是要用創(chuàng)造性的方式。有很多方法都可以獲得工作經(jīng)驗,但是卻不必真正去一家公司上班。
給你點提示:
參加開源項目
啟動開源項目
做一個移動app,放到App Store里
寫一個小型的Web應用程序
參與代碼交流和用戶組
這些方式都可以作為工作經(jīng)驗寫到簡歷中去,只要自己有想法,不愁沒經(jīng)驗。
希望這些技巧能對各位有所裨益。如有不同想法,也請不吝賜教。