面試是一個永恒的話題,也是這一輩子必不可少的一部分,無論是對於公司還是個人而言。如何能更好的找人和找工作也是一個值得探究的問題。針對不同角色面試官和應聘者,結合自身的經驗,總結了一些能讓面試更有效率的建議:
對於公司和面試官明確需求:到底需要什麼樣的人
招聘中的面試應該是按照需求來選擇人,就好比體育選拔賽,制定一定的標準,然後對應聘者進行測試(通常為筆試和面試)然後擇優錄取。
所以招聘的第一步要做的是:明確需求,明白的知道,你需要什麼樣的人,要具有哪些技術背景,有什麼樣的經曆和經驗,必備的基礎知識和技能等。所以在面試的時候不能只盯著應聘者的簡曆,問他做過什麼,哪個項目是什麼樣子的,用了什麼東西,遇到什麼問題等。應聘者的項目經曆,只說明他在過去做了什麼,不能證明他在那些領域有經驗或者就符合你的預期。所以事先要根據預期,列出一些的問題。比如你需要Java方面的人才,那麼就準備一批Java開發中常見的問題和Java語言相關的問題做為面試的主要內容。就好比選拔跳高的人一樣,制定一個高度,比如3米,然後去篩選應聘者,而不是糾纏於他過去是怎麼跳高的,用的什麼工具,能跳多高,怎麼起步等等。
根據公司的戰略,業務的需求和項目的需求來設計篩選問題,只有明確了需要才能清楚想要什麼樣子的人,才能找對人。
隔領域如隔山,當項目經曆與預期嚴重不符時,比如需求預期是WEB後端應用,而應聘者都是從事手機應用開發的話,那麼這種情況下,面試時要著重考查基礎知識和分析問題解決問題的能力。但是一般希望不大,除非此人對WEB開發熟悉,因為寧願選擇有相關經曆的,即使基礎差了一點。
做好前期準備工作
- 評估應聘者是否符合職位
主要要做的事情是閱讀應聘者的簡曆,看是否符合預期:如果與預期相差較大,要麼不面試,要麼推薦到其他更適合的項目或者部門;或者雖然相差較大,但覺得有潛力可以培養,則也可進行面試。其實這個應該是招聘應該做好的功課,否則會浪費大家的時間,所以招聘人員或者獵頭最好能有瞭解一點技術背景,以確定哪些領域需要哪些技術,以提高效率。
- 通過網路瞭解應聘者的背景
比如查看應聘者的部落格,查看其所寫的代碼,或者他的作品,他的微博,他的社交圈子。如果應聘者有參與開源社區,那一定要去看看其代碼,從其代碼可以看出編程風格,語言能力,解決問題的思路等等,可以對一個人的技術背景瞭解個大概,有人說看到應聘者的代碼就可以略去面試,雖然誇張,但卻不無道理;通過其部落格可以看出他的文檔能力,表達能力,愛好等等;通過所關注的微博可以看出他的興趣在哪裡;更能通過社交圈子看出他大概是一個人什麼樣的人。除了基礎知識,分析解決問題的能力和業務領域知識外,還有其他方面的能力也在日常工作中扮演很重要的角色,比如:代碼的規範程度,編程風格,工作態度,責任感,文檔能力,辦公能力是否熱愛編程等等,這些在面試時無法直接瞭解,就需要做一些事先的調查工作。
- 準備面試問題,不要現抓
對於可以進行面試的人,也要按照預期選定一些必須要問的問題和一些可選的問題,以考查應聘者到底能否符合預期需求。
這些準備工作用30分鐘就可以做到,但卻是一個重要的參考,能大概看出這個人的水平。至少能看出一個人是否真的喜歡編程。
同樣,對於應聘者來講也要做充足的準備工作,瞭解公司背景,技術實力,產品和大致戰略;複習基礎知識,整理業務知識,總結和回顧。
總之,要想有一個比較理想的面試結果和更高效的找到人才和得到工作,面試官和應聘者都要做好準備(do your homework)。
面試官要考查的技術內容
- 基礎知識,無論你工作多少年,無論從事哪一個領域,基本知識是必須的,不能少的。
- 程式設計語言能力,對語言的理解
- 演算法和資料結構
- 物件導向方法
- 設計模式
- 開發方法,敏捷,TDD
- 網路知識,HTTP,Socket
- WEB知識,HTML,JS,CSS,AJAX等
- 作業系統,進程,資源,檔案系統
- Linux/UNIX,SHELL,系統調用,常見命令
- 資料庫,SQL語句
- 多線程,同步,並發,死結等
這些通常通過筆試就可以瞭解,如果不能筆試也要多多少少問一問。
這些基礎知識,也能反應出應聘者的態度問題。通常對於有一定工作年限的人,由於長期接觸業務領域的東西,對基礎知識可能會淡忘,如果一個態度積極的人,會在面試前重拾課本進行惡補,這是積極的表現,這些人在工作中也會更加的主動。正常的情況是經驗越多的人知識對基礎掌握更好,理解更深入,同時面也會更廣。
- 分析問題解決問題的能力
這個部分最好是通過預先設定的一些問題來問,或者是面試官剛剛遇到的問題,或者是與需求相關的將要遇到的問題,也可以從應聘者的項目經曆為出發點。主要考查分析問題的思路和解決問題的方式。
- 業務領域知識,這個就要看需求預期了,也要事先準備好與業務相關的問題。
如果預期的業務需求是後端開發,就要重點問題後端相關的問題,資料庫,效能,安全等;如果是Android平台開發就要問題Android方面的問題;如果是網路就要細細的問題網路通訊協定,HTTP或者TCP/IP或者Socket的問題;如果是管理者就要問題人員管理,專案管理和風險控制的問題等。
總之對於技術背景的考查,最好是事先根據公司戰略,業務需求和項目需求設計好足夠的問題,以確保問題的品質且能真正體現出應聘者的水平。現抓的問題,或者網上常見的問題不一定能真正反應出應聘者的水平。另外需要注意的是千萬別把題搞錯了(曾經公司的Java筆記題寫出了public class SomeClass() {...},人可丟大發了),還有就是面試官要有相對正確的理解(可能的情況是面試官還不如應聘者理解的深,見識的廣,如果遇到這種情況千萬別亂說,否則丟人啊!),這也是為什麼面試官也要事先準備,準備問題尋找資料,以免鬧出笑話。
錄用人的標準
- 看中業務領域經驗
經曆與需求預期符合度較大,比如都是做WEB前端的,需求是前端工程師,應聘者本身也是一們前端工程師,這時業務領域知識和項目經驗應該佔主導決策作用。
事實上,這也是招聘時主要的考慮因素,起到決定的性作用,特別是針對社會招聘和一些大型公司,大型公司非常注重專業素養和專業領域裡的經驗。
- 看中潛力和能力
表現為經驗與需求差距較大,但是基礎知識很強,或者解決問題的能力很強或者學習能力很強,這時也可以考慮,畢竟軟體都是類似的,PC上的高手,轉到手機上會很快,並且也會是一個高手。這個通常是對應屆生和工作年限較少的人的選擇標準。對於工作時間較長的人來講,被選擇機率不大。但是外包公司可能會選擇有潛力的人,因為外包本身的項目流動性較大,所以外包公司最喜歡的就是解決問題能力,學習能力和適應能力特彆強的人,能快速上手和快速的切換項目。
- 折中:業務經驗和潛力
表現為經驗與需求相關不大,但又比較有潛力,有能力的人。這是最難決定的情況,也是現實生活中最常發生的情況,這時起主導作用的是面試官的主觀感受和公司的文化及人才戰略。通常公司喜歡培養0經驗的應屆生或較少經驗的人,培訓成本低,且可作長期發展戰略。但對於有一定經驗的人來講,公司不願意承擔培訓,主要原因是它不穩定。 總體來講,對於應屆生和較少項目經曆的人更看中其潛在價值,應該主要問基礎知識,分析問題和解決問題的能力及學習能力;而對於工作2年以上的人更注重其經驗,表現在其業務領域的知識,且要求業務領域與需求預期相符較好。
面試過程
面試官和應聘者都要以誠相待,相互尊重。畢竟,說到底大家都是出來混飯吃的,都是給別人打工,沒有情感瓜葛,也無深仇大恨,所以不要帶有感情色彩,更不能無故輕視別人,你可以決定這個人錄用與否,但絕對不能對技術以外的事情進行評論或攻擊。曾經有一個同事,面試完之後笑話人家應聘者口氣重,長的難看等等,也有的同事嘲笑現在的應屆生水平太差!這種面試官也是素質極其低下的,個人衛生與長相跟面試有什麼關係,跟工作有什麼關係?你的口氣就香嗎?你的長相就好嗎?你當年畢業時又是什麼德性呢?這種人能做為同事嗎?反之,如果在面試時察覺到了面試官帶有感情色彩或者與面試無關的東西,或者當面質疑,或者結束面試,即使是再好的公司也不能去!人格是高貴的,尊嚴是無價!
面試的時候要給應聘者足夠的尊重,要以同事的角色來進行面對面的交流,不要以考核者的身份或者做為領導的身份,要像與同事討論問題那樣去面試。如果應聘者不能很好的回答時,要給與糾正和正確的闡述,並令其明白他哪裡沒答好,這對應聘者是有好處的,也會令應聘者對面試官和公司有更好的印象。這樣還能考查出應聘者的其他能力,比如團隊協作的能力,溝通能力,對待同事的態度等等,因為這在日常工作中是經常遇到手情況,比如團隊在做項目的時候遇到了一些難題,你就需要給其他人解釋和講解,直到其他人明白;或者當發生爭論時也要給出足夠的理論讓同事信服。同時你也能從另外的角度來對面試者做主觀的判斷:這個人到底能否與我一同工作。但是現實的情況是面試官並非人才需求方,換句話說應聘者成功入職後並不是與面試官一起工作,這時面試的品質和效果也會下降。
保持幽默,適當的幽默一些,保持一個輕鬆的氣氛,畢竟是一個面試,不是什麼關乎國家利益,什麼生死存亡,什麼愛恨情仇的大事,何必搞的那麼緊張呢?
面試是雙向選擇的過程
應聘者也要根據自身的特點和職業生涯的方向來確定這個公司和職位到底適不適合我。所以面試官在面試時候一定要在政策允許的情況嚮應聘者提供儘可能詳盡的關於公司關於項目的資訊,以便讓應聘者更加真切的瞭解公司的文化和背景,以做出最終的決定。同時也要留給應聘者提問的機會,並對問題做出真實的回覆。
經曆,經驗,潛力與能力
經曆只能代表過去都幹了什麼,不等同於經驗。
經驗表現在基礎知識的掌握程度,比如對語言的理解,對物件導向的理解,對開發方法的熟悉程度等,業務領域的熟悉程度,不光知道某個功能怎麼實現,還更知道有幾種方式,哪種情況用什麼方法等。經驗的最重要的的價值在於,當再次遇到類似的問題時能夠依據以往的經驗能夠在最短時間內給出最佳的解決方案,當然這裡的最佳是相對來講,也即針對問題的特點和環境在限制條件下的最優方案。經驗是靠總結的,也就是說當做了某些項目之後要進行深度總結:做對的地方在哪裡,特別的,哪些地方做錯了,為什麼錯的,還有哪些地方做的不夠好,還有哪些替代方案,如果某些條件和環境發生變化要如何應對等等。要進行深度總結,融會貫通,不斷思考,升華提煉之後才是經驗。就好比Frederick
Brooks一樣,做了一個OS/360項目後,總結出了一本書,他在OS/360項目中乾的事什麼設計啊,什麼管理啊,什麼文檔啊都不是經驗,那是經曆,而《人月神話》才是他的經驗。如果他僅像寫日記那樣記述他在項目中的工作的話,最多隻能當一本普通的小說來看,但是他的總結,思考和升華提煉之後的經驗《人月神話》才得以流芳百世捧為經典。
那麼總結,思考升華提煉之後的產物---經驗---應該是以什麼樣式來存在呢?應該是文檔,部落格,論文和書籍,無論是公開或不公開。縱觀現在的軟體界,但凡那些公認的牛人都有自己的部落格和書籍,並且都獲得好評和被業界人士視為學習必參考之物。另外人類所有的文明,先進的學說與思想或者科技成果也都會以書籍或論文的形式留傳下來。當然,不能太絕對,也有相當一部分人就是不喜歡寫東西,但他們也都是一流的高手,這些人都是智商高的出奇的人且記憶力超群的人,要不然,年複一年的解決過那麼多問題,怎麼可能記得清,天天都在思考,想法怎麼記得住?猜測這些人也會把自己的經驗寫下來,只不過未公開罷了!
潛力表現在分析問題解決問題的能力,思維,思路,未來所遇到的問題不可能與所經曆過的問題完全一樣,或者大部分相同,如果那樣生活也失去了新意,工作也變成了重複性的了,但很多人都喜歡新的挑戰和解決新的問題,同樣項目也要不斷的發展不能停步不前。當遇到新的問題新的挑戰的時候,思路與思維就很重要,思路一旦錯了,後面就什麼都白費,正如那句話講的思路決定出路。
再說能力,簡言之能力就是能把複雜的事情變得簡單,能把不可能的事情變成可能,能把從來沒做過的事情做好,跟經曆一點關係也沒有。身邊的例子很多,有一個同事之前是做C#的,但是過來做Android,剛進來就去定製IncallScreen,結果做的很漂亮,連有Android經驗都歎服;後來他帶項目,帶著幾十個某些連Android是啥都不知道的人去給電訊廠商定製一些應用,最終也是所有的人都滿意;再後來他做部門主管,也把部門帶的很好!還有一個同事是學生物的,畢業後進來,被分配一個Linux
Kernel方面的任務,居然搞定了,折服了老大們!後來他帶項目,面對的都是極品的客戶,最終也都滿意!再後來當部門主管,也幹得很好,再後來臨危受命去接管招聘與培訓的爛攤子,現在呢無論是招聘還是培訓都比以前好的很多!還有一個同事本身是Linux Kernel方面的高手,但第一次帶項目領著四個連BSP是啥都不知道的應屆生,成功的把Linux Kernel移植到了一個新的板子上,最後客戶請他們去做足療。相信類似的例子還會很多很多!如果問他們項目怎麼帶,部門怎麼管,怎麼更好的招聘,怎麼更好的培訓等等,他們可能不會說的很好!但是你給他任務,他卻能完成,這就是能力
對應聘者而言做好職業規劃
這其實是個比較難的問題,所有人都明白職業規劃的重要性,所有人也都建議要做職業規劃,但是真正能做的有幾個呢?真正做可執行檔職業規劃又有幾個呢?最終能執行付諸實戰的又有多少呢?但,至少,要有一個大致的方向。人的一生是一個不斷的自我認知的過程,其實"我是誰","我究竟想要什麼"是很難回答的問題,有的人一輩子也不明白為啥活著,到臨終前也沒弄明白我是誰。這聽起來像是哲學裡的命題,但是在夜深人靜的時候你輕輕的問自己:我是誰,我到底想要什麼,我為什麼而活時?也會很茫然!所以職業生涯規劃也並不是那麼好做的。可以讀一讀《高效能人士的七個習慣》裡面的以始為終,確定人生使命宣言,進而指導各個方麵包括工作的計劃。
其實對於大多數人來講,想要的無疑是一份更好的工作。什麼又是更好的工作呢?更好的薪資待遇,更好的企業文化(辦公室文化),與更優秀的人為伍,正所謂不怕虎一樣的對手,只怕豬一樣的隊友。這個理由其實足夠了。
明確需求:弄清楚職位資訊
這個十分重要,就好比軟體中的需求,他們需要的是個什麼樣的人,將來要負責的是什麼樣的工作,這個必須搞清楚。通常這個在公司的招聘資訊中都會明確的寫出,但也有些公司寫的很模糊。也有的時候是獵頭或者朋友推薦,所以沒清楚的告訴你是一個什麼樣的職位,有什麼工作職責,需要什麼樣的技術背景。總之,最不理想的情況就是你連職位資訊,工作職責,技術需要都清楚的情況下去面試,這成功機率很小,等同於是在浪費雙方的時間,親身經曆深有體會。所以,無論機會源自哪裡,作為應聘者的你一定要搞清楚職位資訊,工作職責和技術需要,通過推薦人或者朋友或者什麼其他途徑,總之一定要搞清楚!
做好準備工作(Do Your Homework)
明確了需求以後就好辦了,從工作職責和技術需求就可以確定需要的是哪方面的知識,甚至可以通過互連網,經驗和朋友那些挖掘出可能的問題。通過互連網,和書籍熟悉相關的背景知識,把自己的項目經驗總結一下,把知識進行梳理和總結,找一找面經和可能的問題,最好再進行類比面試,演練演練。就連喬布斯在發布了眾多產品以後,舉行發布會都要做很多準備和預演,更何況我們?凡事預則立,不預則廢!多做點準備反正沒壞處!對於所有可能被問的問題,準備好答案,並且準備好相應的執行個體,執行個體是最令人信服的。
其實如果你有一個相對清晰明確的規劃的話,應該會有一個心儀的公司和職位,所以可能幾個月前就開始準備了!
向面試官提問
這是瞭解公司,瞭解項目,瞭解一切你所需要的機會。一定要問,但不能問太傻的問題(比如是否會被錄取或者是否會加班之類的),不問說明你要麼還不知道你在幹嘛,要麼就對公司或職位不感興趣。
- 技術面試時可以問的問題:
- 為什麼會有空缺/為什麼要招聘新人?
這裡的回答能大概看出公司的文化:前任為啥離職(發現了更好機會,受不了壓力,政治鬥爭失敗等等)能反應出企業的文化和同事之間的關係以及辦公室的風氣,但這隻能作為一個參考。如果是業務擴張,那可能反映出公司發展的還比較好!
- 如果入職,將負責什麼樣的工作
雖然這在招聘資訊中會有,但是很多時候都與實際有出入,也許因為公司也不確定究竟需要啥樣的人,也許變化太快,總之入職後具體的職責將與招聘時有所不同。所以可以詳細的問問,以確定到底這份工作適不適全自己。
- 如果某個人的工作與興趣並不相符,可以調整嗎?
這能體現出企業的文化的人才戰略,好的公司會儘可能讓每個人做自己最感興趣的,以發揮最大的價值,所以,會根據實際情況進行調整。
- 公司有什麼樣的培訓計劃,是否有專門的培訓部門或才聘請外界機構來培訓
同樣也能體現出公司對人才是否重視,優秀的公司會對內部員工進行培訓,技術上的,辦公能力上的,職場能力,心理方面的等,不用多說,如果有對員工個人的成長是有益處的。
- 向面試官徵求關於成長方面的建議
如果我是面試官肯定不會拒絕,特別是對於應屆生或者經驗比較少的人!作為一個學長有義務給與建議和協助。但面試官要注意不要隨便亂說,要認真負責,給點真正有用的建議,如果想不出來說別說,也無妨;另一方面,應聘者也要注意,取其精華,去其糟粕,找有用的,其他的扔掉。
- 與面試官交朋友
同樣我是不會拒絕,人海茫茫,二個能相遇並坐在一起聊幾十分鐘,也算不容易,更何況都是做挨踢的,興趣相投,何樂而不為呢?
- HR面試時可以問的問題:
- 戶口檔案社保等雜項
生活在天朝中,作為一個老百姓,這些東西也是很重要的一部分,不可忽視。
- 薪水福利待遇,假期,請假流程
這個你懂得,不解釋
- 職位晉陞空間
除非你想一輩子混飯吃,否則還是考慮晉陞空間吧!
- 獎懲考評制度
優秀的公司應該獎罰分明,光懲不獎或光獎不罰或者不罰不獎都不是好管理方法。人是有惰性的,要靠獎來激勵,罰來鞭策,如果啥都沒有,可能公司也是在混飯吃,進去了也沒前途!
- 員工活動
企業雖以利益為終極目標,但是人不是機器,不能天天都幹活,勞逸結合是長久之計,某些皮包公司真的啥都沒有!自然沒人願意去。
關於面試真的有說不完的話,就先寫這麼多吧,等以後有了新的想法再來更新。也可以看看牛人們的看法:
- 關於面試你不知道的幾點
- 面試時如何向公司提問?
- 如何面試程式員?