如何面試 PHP 工程師?
個人認為這篇文章很有參考價值,如果你是一名 php leader,你可以從中看到如何面試別人;如果你僅僅時一名工程師,你也可以從中看到哪些點自己還模糊,查漏補缺。
正文:
問一些日常的正常的PHP問題,主要是考察應聘者的認知:
一個包含中英文的字符串如何獲得它的自然長度(看看ta是否有encoding的知識和意識)
問一問什么是ORM,有時候會問這個詞的英文全稱是什么,問問ta對于ORM有什么個人的看法?(看看ta學習細不細,有沒有技術判斷,PHP開發(fā)人員應該知道什么時候使用ORM)
問一問假如ta要自己去實現一個framework,ta會怎么設計。(看看ta對代碼架構的理解,對MVC的理解)
問一問framework設計里的url dispatcher他會怎么考慮。(HTTP知識)
問一問ta對框架本身的看法
了解一下ta對Design Pattern的認知,比如Singleton,Observer,Factory等常用的設計模式,問一問ta對設計模式本身的看法。
問兩三個數據庫設計的問題
問幾個前端的問題,哪怕ta的職位是PHP開發(fā)人員,好的PHP人員不可能不了解前端,而且很可能很了解前端
問一問ta對noSQL的了解情況(對與noSQL的認識是和傳統(tǒng)Relational DB的認知是分不開的)
問一問ta碰到問題時候會如何去尋找答案
問一問ta習慣使用哪一個搜索引擎(如果是http://GOOGLE.COM就有加分)
問一問ta最近看的書
問一問ta的職業(yè)規(guī)劃,喜歡做什么,對工作環(huán)境有什么要求
別出生僻的題,別為難人家,更不要變相的侮辱人家,正常交流為主,你要的是一個正常的人,優(yōu)秀不優(yōu)秀就看你的眼光和運氣了。
很多公司的技術人員招聘會刻意追求刺激的問題,比如很著名的微軟的“下水道的蓋子為什么是圓的”,不是說這些考察毫無道理,但更多的是一種“marketing”的手段。
PHP 工程師面試的`四個環(huán)節(jié)
一,自我介紹
任何一個面試的開始,我都會先對公司、所面試的職位以及我自己進行自我介紹,這一點我覺得很重要,而且這個也是很多面試都忽略的一點,別人來面試,可能對你的公司完全不了解,如果你不是知名的互聯網公司的話,這一點很正常,對于職位的信息,面試者可能知道的就更少,如果面試了一場,別人都不知道自己處于公司架構中的一個什么位置,我很懷疑這種公司是否招人,面試官也是否真誠。最后應聘者對面試官的信息的了解估計就更少了,可以說是一無所知,而面試官已經從簡歷上知道了應聘者的大部分信息了,所以這個自我介紹就顯得很有必要,而且必須是在面試開始的時候傳遞給應聘者。
二,應聘者的自我介紹
因為簡歷中已經有應聘者的基本信息,所以這個介紹并不是為了得到更多的應聘者的基本信息,只是從第一個環(huán)節(jié)轉換到第二個環(huán)節(jié)——開始對應聘者的提問。自我信息介紹完了以后,我會開始讓應聘者介紹他的工作經歷、離職原因和各個公司大概的項目經歷,這個環(huán)節(jié)就基本上可以考察出這個人的能力處于一個什么位置了。一般優(yōu)秀的人在介紹他的項目經歷都會顯得比較自信,這個很關鍵,這就是所謂的成就。優(yōu)秀的面試官這個時候就應該給對方以肯定,然后再在后面的環(huán)節(jié)中重點考察,不過有些遺憾的是大多數面試官的第一反應是懷疑,而且特別喜歡找出別人的破綻,然后發(fā)表自以為是的高見。如果對方所描敘的每個工作的經歷都差不多,也沒有什么值得大書特書的項目經歷;如果這個人工作了比較長的時間了,那可以說明這個人并不是一個很有進取心,能力也一般的人,當然這并不是說就可以把別人pass掉了,最后是否招聘,需要考慮的還有這個職位需要什么樣的人,以及這個職位能夠提供多少薪水,別指望花少的錢招好的人,即使這樣招過來了,別人也干不久的;如果應聘者工作的時間并不長,那么就可以考察一下對方是否有潛力了,我個人覺得招聘到一個有潛力的人是最成功的面試,因為這種人的薪水不會很高,而且有潛力意味著肯學習、積極,這會給整個團隊帶來很多正能量,并且如果他可以跟公司一起成長,那么假以時日,對公司而言就會是一筆相當可觀的財富,對于對方而言也是一樣,這是一種雙贏。
三、能力考察
這個環(huán)節(jié)是最關健的。通過第二個環(huán)節(jié)了解了應聘者大概處于一個什么位置,那么這一步就是要考察對方是否真正的具有我們所認為和所需要的技術能力、潛力,除此以為還要考察溝通能力和團隊協作能力。所有這些能力都可以歸結為一點,那就是解決問題的能力,因為程序員的日常工作就是不斷的解決一個又一個的問題,那怎么考察呢?我一般會以下面幾種方式來考察:
1 、選取應聘者自認為所做的項目中最有價值、最有挑戰(zhàn)性或者最有難度的部分,我首先會了解他是怎么解決這些問題的,然后在他的回答中進行互動,提出各種各樣的問題和假設,考察對方如何應對。
2 、跟對方探討他所最熟悉的技術,框架啊或者數據庫之類的東西,或者是一些他在簡歷提到的或者是在第二個環(huán)節(jié)中提到的,注意這里主要的目的是探討,因為有些技術我自己也未必熟悉,不過如果應聘者可以把某個他熟悉而你不熟悉的技術的特點講清楚,這就相當不錯了。
3 、我提出一個問題來探討如何實現,然后在實現的過程中不斷提出新的問題。
一般在一次面試過程中這幾種方式都會用到,而且三個過程都會伴隨著在紙上或者白板上畫一些解題思路以及架構圖,當然最重要的是,這里必然會有一個部分要求應聘者寫代碼。
對于上面的幾種方式的結果,如果對方能夠很好的理解我所提出的問題,以及對于各種問題都會有自己的見解和解決方案,并且對于某些問題還可以提出比較獨到的見解,特別是可以對我所提出的問題進行批判,指出其中的不合理之處,那么很顯然這會是一個很優(yōu)秀的程序員,當然這并不是說招聘就應該招這種人,這需要面試官來判斷,結合職位的要求和薪資水平來決定吧。
四、提問
一般面試的最后都會有這么一個環(huán)節(jié),這個環(huán)節(jié)意義不大,不過我個人還是更喜歡應聘者會提出一些關于職位、團隊和將來可能的工作相關的問題,不是很喜歡關于薪資、是否加班、以及福利的問題,這些都是跟人事相關的,至于加班,呵呵,做技術都會有一點,那些加班很多的公司估計也不會說得很明確吧。
最后說下我個人在面試中不是很關注的東西:
1 、學歷,我之前面試過一個還不錯的人,但后來這個人學歷造假,入職沒有通過,人事告訴我的時候,我告訴她我都沒有注意到他的學歷。不過這不是說學歷不重要,只是我覺得學歷不應該成為關注點,特別是對于應聘者,自己搞不定,就別怪學歷。
2 、工作經歷。這不是說工作經歷好和工作經歷壞都一樣,很顯然工作經歷好的會加分,但這并不意味著工作經歷壞就會減分,我們處于一個什么樣的環(huán)境大家心里都清楚,一個人學歷不好一畢業(yè)就很難進入那種知名的公司,去不知名的公司,碰到垃圾公司的概率很高,工資低、加班多、福利差,所以跳槽多一點,完全可以理解。
3 、死記硬背的東西。例如前面幾個人的回答所說的那些問題,這些問題只有在我實在找不出什么問題問,而且所問的問題都得不到滿意的回答,而且說不了1-2句就斷了的情況下才會問,不過這種情況出現了也基本上意味著面試就結束了。
好了,就寫這么多了,面試是一個動態(tài)的過程,而且要在1-2個小時的時間內就考察出一個人的能力這基本上是不可能的,所以很多時候是否能夠招聘到合適的人面試官的面試能力才是最重要的,特別是在公司時間和成本有限的情況下,面試官的一次面試就要做出是否招聘的決定的時候,面試官的面試能力就顯得更重要。不過我個人還是覺得面試應該制定一個制度性的流程,通過幾輪不同的人的面試來決定。關于這個我推薦大家一本書,名字叫做《打造Facebook》,這是一個facebook的華裔技術人員寫的,里面說到的facebook對工程師的面試方式還是很有借鑒意義的。
【如何面試 PHP 工程師?】相關文章:
關于php面試寶典及PHP面試技巧11-22
如何學習PHP-PHP入門指導10-27
如何使用PHP session01-02
如何學好PHP知識11-11
如何學習PHP語言11-10
2017年PHP入門指導-如何學習PHP10-31
ios工程師該如何面試08-03
PHP面試題集01-03
PHP中如何使用Cookie01-03
PHP如何防止SQL注入01-03