如何面試:面試程序員
很多程序員會過多地透露自己的信息,不要以為誠實和完全透明就是最好的政策,殊不知過猶不及。以下是小編整理的如何面試:面試程序員。希望對大家有所幫助。
一、提問之前的準備
首先,最重要的是,你自己一開始就應該想清楚:
1. 需要新員工完成什么樣的任務?
2. 怎樣的人能完成這樣的任務?
3. 哪些途徑和方法可以發(fā)現(xiàn)這樣的人?
只有明確這些根本性的問題,才能正確高效地完成面試。
二、提問的原則
假定你對上一節(jié)的三個問題,已經(jīng)有了清晰的想法,那么接下來就可以設計如何提問了。
有一些提問的原則,是你應該遵循的:
每一個面試問題都有明確的目的。你不僅自己了解,還能向其他面試官解釋清楚。
多提一些開放性(Open-ended)的問題,而不是那種用Yes/No就可以回答的問題。這樣做使你有機會與面試者展開討論,并且提出后續(xù)的問題,盡可能多地了解對方。
不要問宗教、家庭、健康、個人隱私等方面的問題。
不要問太復雜的問題。因為面試者沒有太多思考時間,所以無法周全地回答,你也就無從判斷他的能力了。
三、考察專業(yè)能力
為了確認面試者是勝任的,你可以問一些與職位相關的專業(yè)方面的問題。(不過通常來說,一次面試不足以看出一個人的專業(yè)能力。)
比如,你的招聘職位是系統(tǒng)管理員,你可以問"如何快速地在50臺機器上部署Linux?"(提示:正確答案不是刻錄50張安裝光盤。)
另外,你還應該向面試者了解他的過去,因為過去是未來的最好預測依據(jù)。不過,提問的重點不要僅僅是他過去的成果,更要關注在當時的環(huán)境中,他是如何決策和實施的。
四、考察綜合素質(zhì)
因為人是會發(fā)展的,所以某種程度上,面試者的綜合素質(zhì)要比他的專業(yè)能力更重要。
所以,具體的技術問題(如何調(diào)用API、什么是設計模式、編程語言的語法等等)可以少問一些,更應該關注面試者的事業(yè)心、對工作的熱情、進取心、自律能力、毅力等方面。
下面是一些典型問題:
Why did you get into development?
你為什么開發(fā)軟件?
How many technical books did you read in the past year?
去年你讀了幾本技術書籍?
What was your favorite technical book in the past year? What did you learn from it?
去年你最喜歡的技術書籍是哪本?你從中學到了什么?
What websites do you read regularly, related to development?
平時你經(jīng)常訪問哪些編程類網(wǎng)站?
Do you maintain any open-source projects?
你有自己的開源項目嗎?
Do you code in your spare-time?
業(yè)余時間你編程嗎?
Do you love programming, or do you do it for the money?
對于你來說,編程是一種愛好,還是一種謀生手段?
Have you accomplished anything important in your career yet? Do you want to?
你的職業(yè)生涯之中有什么重要的成就?它是你主導的嗎?
What would make you feel that you have done something important?
什么事情會讓你很有成就感?
五、考察理性思維
某些情況下,你可能需要了解面試者的分析判斷能力,看他能否全面地思考問題、客觀地評價自己。
那么,你可以依次提出這樣三個問題:
What's your favorite programming language? Why?
你最喜歡的編程語言是哪種?為什么?
If you could add one feature to your favorite language, what would it be? Why?
如果允許你為這種語言加一種功能,你會加什么功能?為什么?
If you could remove one feature from it, what would it be? Why?
如果允許你取消一種功能,會是什么功能?為什么?
這里的重點是,讓面試者從正反兩方面評價一件自己熟悉的東西,看看他的思維是否片面。答案無所謂對錯,只要面試者有一個明確的立場,能夠從正反兩方面說出令人信服的理由,就可以了。比如,某個軟件的口碑不好,但是面試者說他很喜歡,而且說得出一大堆理由,清楚地解釋了這種軟件的優(yōu)點和缺點在哪里,這樣就很好。
你還可以把這些問題,套用在其他東西上面,比如操作系統(tǒng)、文字編輯器等等。
程序員面試經(jīng)驗分享
1、準備充分。
我這次找工作準備的特別不充分,可以說在第一次面試的時候都沒正真意義的準備過什么,在第一周的時候基本都是打醬油,所以準備是必須的,我總結了大概有幾點需要的。常見的面試題目,自己所做的項目情況,自我介紹,職業(yè)規(guī)劃,離職原因。我覺得這些東西一定要用一點時間做下梳理,不然面試的情況會像我開始一樣很糟糕,浪費時間也浪費一些很好的機會,我覺得應該在你想跳槽的半個月之前就要準備了,這樣可以節(jié)約一個星期的時間。
2、基礎知識的積累。
我是NET的方向的,所以主要說。NET方向,面試無非四大塊:C,數(shù)數(shù)據(jù)庫,JS(Jquery),數(shù)據(jù)結構和算法。先說數(shù)據(jù)庫,分頁SQL和一些查詢SQL,再就是大數(shù)據(jù)量查詢的優(yōu)化這基本是每個面試官都會問的,JS方面因為我不是主做前端開發(fā),面試一般都是些DOM對象的操作和AJAX,C的主要是一些基礎知識這里就不一一舉例各種面試題目,自己多做做。最難得就是面試數(shù)據(jù)結構和算法了,這也是很多程序員薄弱的地方,一般問這方面的問題的`面試官都很牛逼,問這種問題的公司一般開的待遇會高很多,個人覺得問了這方面的問題的公司對程序員的綜合素質(zhì)要求很高。數(shù)據(jù)結構和算法這個只能靠平時工作之余多看書,多學習了。程序員這條路,學無止境。
3、項目的描述。
這個是每個面試官都會問的問題,面試官最愿意聽的是你的項目亮點,用到了哪些技術來解決問題。最好的做法是把你的項目的大體的框架畫出來給面試官看,這樣才能直觀的給面試官一種你確實是做過了這個項目。你要非常流暢的給面試官講解,有的面試官會讓你拿筆在白板上做講解,這個可以在家里面多做幾次模擬。我覺得我在這方面是強項,幾個讓我畫圖講解項目的公司都給我發(fā)出了入職通知。
4、職業(yè)規(guī)劃。
這個一般是在總監(jiān)級別的面試官會問到,我覺得程序員在工作到3到5年的時候都應該考慮這個問題,是走項目管理還是技術到底。這個就看自己的人生規(guī)劃了,我個人覺得工作不到5年的同學還是老老實實,踏踏實實的做好技術,靠這個吃飯,什么都別多想,技術才是你生存的根本。
5、待遇的談判。
任何事情都是有回旋的余地的,所有的公司都想用最低廉的價格找最優(yōu)秀的員工,不要主動說自己的期望待遇,誰先說誰就會被動,你可以嘗試的問貴公司這個職位大概能開出的待遇是多少?一般的人力都會給你一個范圍,然后你根據(jù)實際情況來做出決定,一般在這個基礎+2K的范圍,比如人力MM對你說這個職位在8K左右,你可以開10K的待遇,反正這一塊是非常有技巧的,我覺得的待遇只要和你跳槽的時候期望的差不多其實就行了。
6、投簡歷。
51,智聯(lián),中華英才主要是這3家。51都是一些小公司,智聯(lián)的命中率高一點,中華英才這次找工作沒在上面投遞不做評價。有幾家在51上的公司的邀請面試的時候,待遇有3K的,我當時有點震驚,啥時候技術這么廉價了,所以我在51上投遞了幾天就放棄了,后面在智聯(lián)上投遞。這一條可能會得罪到51這個公司,不過我還是要寫出來。剛畢業(yè)的可以嘗試下51,畢竟先入門先學習才是菜鳥程序員最應該做的事情,不要太在意待遇。
7、學歷和英文能力問題。
這個真的很重要,大公司基本是只要本科,英語雖然在找工作的不需要,但是在你職業(yè)道路上很重要,工作之余應該多學學英語,學歷低的應該考考學歷。學歷和能力無關,但是確實你找工作的一個機會,你技術如何強,但是沒有機會也是白搭。
面試技巧
1.基本儀容和禮儀
其實不是針對面試,基本儀容和禮儀在日常生活也是非常重要的,是一個人是否有教養(yǎng),是否有素質(zhì)的基本要求。
穿著:如無特別需要,不要著正裝,休閑裝即可。但是不要光腳丫子大拖鞋,背心吊帶,男士不要穿露腳趾涼鞋。干凈整潔即可,表示對本次面試的重視和對面試官的尊重。
儀容:女士如果想化妝的話,淡妝即可,素顏也可以。男士頭發(fā)理一下,胡子剃掉。還是那句話,干凈整潔,萬萬不可口腔有異味,或者身上有體味(特別是腳丫子臭味,絕對不行!)
禮儀:多說“請”,“您”,“謝謝”,記得進門后關門,前臺給你倒的水走的時候記得拿出去扔掉。坐下來面對面試官要有坐像,不要跟在家里一樣太隨便,說話口齒清楚,慢一點說,不要跟打機關槍一樣。切記,不可做作,細節(jié)處把握尺度就行。如果遇到和面試官有分歧的時候,立即閉嘴并閉嘴,不要爭論,不要試圖說服面試官,更不可恥笑或者蔑視面試官,哪怕你確實不知道比面試官高到哪里去了。記住,這是禮貌,跟你技術有多牛逼無關。
謙虛:任何時候,把自己放在一個相對低的姿態(tài),你是來面試,不是來教育面試官的,抱著一種接受檢閱和學習的態(tài)度面對面試,千萬千萬不要覺得自己主角光環(huán)加身,天下之大老子第一。相信我,這個世界牛人大把的,別人不說穿是因為給雙方留面子,你可別認為是你真牛逼。謙虛,起碼不會讓你有成為一個跳梁小丑的機會。
2.專業(yè)基礎知識
什么重要的話說三遍已經(jīng)爛大街了,我就不說了。對于程序猿來說,專業(yè)基礎知識絕對是重中之重,是面試成功的最基礎要素。我說的專業(yè)基礎知識,不是說你做了多少個項目,寫了多少行代碼,而是軟件開發(fā)的基礎知識。
我在面試的時候,有時候會遇到一些候選人,乍一看簡歷也有好幾年工作經(jīng)驗,項目也寫的滿滿的,但是卻連“值類型引用類型本質(zhì)區(qū)別”,“構造函數(shù)有哪些特點,何時被調(diào)用”,“類和接口區(qū)別是什么”這樣的問題也回答不了,注意,是回答不了,也就是不知道,不是知道意思但是組織不了語言。這類候選人通常在連續(xù)回答不上幾個問題后,開口為自己辯解:“我動手比較強,寫代碼都沒問題,但是書上的概念我真的不太清楚”。能說出這個話,就說明此人根本就明白作為一個技術工作者最基本的專業(yè)素質(zhì)是什么。(我在這里就不展開談基礎知識在開發(fā)中的作用以及對自身成長的作用,以后會專門撰文來討論)所以千萬不要覺得自己工作幾年,有些代碼經(jīng)驗就已經(jīng)可以挑戰(zhàn)更加高薪的工作。
在面試前,一定要先審視一下自身的基礎知識掌握程度,如果有必要,自己買書回來或者網(wǎng)上找一些資料,利用空余時間系統(tǒng)的學習一遍,比如你所使用的語言本身,比如你擅長的框架底層實現(xiàn),比如編譯原理,比如多線程的知識,比如Http相關的知識等等。千萬不要沒有一點點基礎知識儲備或者基礎知識儲備不豐富就跑去面試,失敗的幾率非常大,如果眼睜睜的看著自己心儀的工作機會擦肩而過,我想是誰都會難過的吧。
3.溝通能力
面試的過程本質(zhì)上就是一次溝通的過程,候選人在短短的時間內(nèi)要盡量的向對方展現(xiàn)自己的長處,隱藏自己的短處,盡量讓對方問題得到圓滿答復并且留下較好印象。有些程序猿性格內(nèi)向,在陌生人面前比較靦腆,話語不多。當然,這不能說是做錯了,只能說是一些性格上的短處而已(如果很嚴重,那就有自卑的可能,需要重視并且糾正)。在面試時,候選人一定要精神煥發(fā),昂首挺胸,眼神堅定,切記切記眼神不要飄忽不定,切記切記不要甕聲甕氣。有人會問我,“那我回答不上面試官的問題,或者一時沒有想起來,心里沒底了怎么辦?”,怎么辦??回答不上也不能被嚇尿了啊,是吧,咱們遇到不會的問題,就老老實實的說“這個我不清楚”,或者“這個我不會”,千萬千萬不要不懂裝懂,顧左右而言他,打算糊弄過去,我告訴大家,搗糨糊是過不去的,面試官的問題肯定是他非常清楚答案的,你忽悠面試官就是在忽悠你自己,有意思嗎?當然,也不要胡亂回答,否則只會成為面試官和他的同事茶余飯后的笑話。
在面試時,盡量雙眼直視面試官(但不要瞪著人家。),背挺直,手機開飛行模式,說話口齒清楚,利落干脆,回答得上就盡量說,回答不上直接說不知道,不要羅里吧嗦,特別是談到薪酬,對方問你期望時,最好在現(xiàn)有基礎上增加10%-20%,不要漫天要價,也不要不好意思,放心大膽的說出你的期望,如果對方覺得略高,會再跟你商量。務必一開口就給人真誠,干練,干脆,專業(yè)的印象。
4.過往項目經(jīng)驗
很多面試者不大重視自己的過往項目經(jīng)驗,這是我不能理解的地方。我每個做過的項目,雖然我在其中可能只是做一個模塊甚至一個功能,但是我都會想辦法搞清楚整個項目的業(yè)務流程,研發(fā)背景,內(nèi)部模塊功能,和外部如何實現(xiàn)集成,底層數(shù)據(jù)庫的設計,整體系統(tǒng)架構設計等等。我在面試候選人的時候,通常都會問最近一個項目相關的東西,有很多候選人都會表示是ta自己一個人設計開發(fā)了這個項目,但是連有哪些功能模塊,系統(tǒng)結構(注意,不是架構)都回答不出來。有些面試者,在面試一些中高級的程序員時,很喜歡從過往經(jīng)驗入手,你再一遍介紹的時候他可能隨時提問。因為這樣有2個好處,第一是預防一問一答的形式,候選人事先背了很多問題的答案,第二是從候選人過往項目經(jīng)驗入手,除了可以看出候選人是否虛假構建了項目經(jīng)驗,還可以判斷該候選人對開發(fā)細節(jié)的把握以及對一些技術點的反應能力和掌握情況,畢竟“突然襲擊”比“瞄準射擊”要更加考驗候選人。
所以,在面試前,應該好好把自己以前的項目經(jīng)驗都捋一捋,特別是上一個項目,從業(yè)務流程到產(chǎn)品設計到系統(tǒng)開發(fā),特別是項目內(nèi)一些你做過的細節(jié)地方,你準備在面試時拿出來說的,必須以此為點,相關的東西都查查資料看一看。再一個就是項目里面的閃光點,什么叫閃光點,就是高大上的東西,需要自己多了解了解,在面試的時候拿出來說也可以加分。比如我以前做過一個項目,是一個類似網(wǎng)頁爬蟲的東西,把爬下來的東西根據(jù)數(shù)據(jù)庫里面的地址上傳到設置的路徑,再刪除這個文件。當時我還是比較小白的階段,懵懵懂懂的聽人說多線程好像效率比較高,于是就用到了new Thread的多線程方式,確實解決了一些效率上的問題。后來換工作時,我又把這個項目拿出來看了一遍,并且著重看了看多線程相關的東西,知道了還有異步編程(當時好像C#還沒有Task),于是就自己學習了一番,然后動手做做實驗什么的,把多線程這一塊理論聯(lián)系實際又鞏固了一遍。果然,后來面試的時候談到這個上面的時候,面試官對這一塊很有興趣,越問越深,我也知無不言,為自己增分不少。
5.不要作弊
有些企業(yè)在面試程序員的時候,喜歡一開始扔一張試卷讓候選人先做,然后再去面試。暫且先不談做卷子考察方式的好壞,在做試卷的時候,萬萬不要用移動設備上網(wǎng)查詢答案。本身作弊的行為就讓人不齒,如果面試官在暗處進行觀察,發(fā)現(xiàn)你作弊,那就太尷尬了。會就是會,不會就是不會,即便你用手機查答案把試卷寫的滿滿的,在接下來面試的時候,面試官再就試卷上的問題展開一問你,你還是不會。所以不管有沒有人監(jiān)督,在面試的做試卷環(huán)節(jié),千萬不要作弊。
6.熱門技術點的掌握
其實這是個增分項目,如果上面幾點都已經(jīng)通過面試的考核,那么這一點就會成為你絕對的亮點。首先要先自己了解一下當前熱門的技術,然后通過分析自己申請的職位,去看看可能涉及到哪些熱門的技術,然后再去專門的找資料進行學習和動手實驗。
【如何面試:面試程序員】相關文章:
程序員如何面試11-03
如何面試程序員12-14
如何面試程序員?12-11
如何面試程序員?02-11
面試官如何面試程序員11-23
關于如何面試程序員?11-21
淺談如何面試程序員?11-21
淺談如何面試程序員11-19
HR如何面試程序員01-16