中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開(kāi)通VIP
高效的面試方式:結(jié)對(duì)編程

  有一定職業(yè)編程經(jīng)驗(yàn)的人一定都知道,業(yè)界標(biāo)準(zhǔn)的面試模式大致如此:進(jìn)入面試房間后,給你一個(gè)白色寫字板(國(guó)內(nèi)用紙卷做題應(yīng)該也很常見(jiàn)),讓你在上面寫出每個(gè)問(wèn)題所對(duì)應(yīng)的代碼。

  這樣的面試大家都會(huì)覺(jué)得不爽。在平時(shí)的工作環(huán)境中,你可以訪問(wèn)API,或者通過(guò)搜索引擎來(lái)尋求你的答案。但面對(duì)一張白板/白紙,這些都不可能。白板上的問(wèn)題一般不會(huì)涉及到太多整體設(shè)計(jì)方法,往往局限于簡(jiǎn)單的算法問(wèn)題,所以僅憑這一套面試題很難測(cè)試求職者的所有技能。說(shuō)實(shí)話,一般程序員寫字都很糟,讓他們?cè)谝粋€(gè)大的白板上直接寫代碼感覺(jué)好不了。

  我們喜歡編碼。我們喜歡坐在電腦旁,喜歡和同事一起探討自己的想法,并通過(guò)編譯器來(lái)驗(yàn)證。白板面試僅能幫助面試官了解求職者的很少信息,但求職者不會(huì)從面試中學(xué)到任何東西。簡(jiǎn)言之,這種標(biāo)準(zhǔn)的面試方式還有許多需要改進(jìn)的地方。

  我所在的公司(譯注:指Rally軟件公司,5月底作者剛剛離開(kāi),加入了時(shí)代華納有線)正在嘗試另一種更高效的技術(shù)面試方式:結(jié)對(duì)編程。

  新方式主要是在傳統(tǒng)面試基礎(chǔ)上增加了一些環(huán)節(jié)。求職者通過(guò)電話篩選后,會(huì)與團(tuán)隊(duì)中的兩個(gè)開(kāi)發(fā)者進(jìn)行一個(gè)小時(shí)的直接面試(采用白板模式),隨后會(huì)安排應(yīng)聘者和其中一個(gè)開(kāi)發(fā)者坐在一起,讓他們?nèi)ス餐瓿梢粋€(gè)任務(wù)。

  我已經(jīng)嘗試用這樣的方式面試了一些應(yīng)聘者,新增加的這些面試環(huán)節(jié)取得了很好的效果,所以我希望在此稍詳細(xì)的介紹一下這個(gè)面試過(guò)程,并分享一下它帶來(lái)的好處。

  具體怎么做?

  我們有一個(gè)名為“pairing”的git遠(yuǎn)程倉(cāng)庫(kù),它包含一個(gè)基于IntelliJ的項(xiàng)目框架。其中包含Java、Ruby和JavaScript模塊,面試者可以從我們常用的語(yǔ)言中選擇自己最熟悉的。

  每個(gè)模塊都有一個(gè)基本的項(xiàng)目結(jié)構(gòu)。比如,Java模塊包含一個(gè)maven pom.xml文件,和“main”和“test”目錄。這個(gè)pom文件也包含常見(jiàn)的庫(kù)以方便應(yīng)聘者編程。還有很多commons-lang工具包,以及 Google Guava、JUnit、TestNG、Mockito和很多常用的庫(kù)。

  每個(gè)模塊還有一個(gè)“README.txt”文件,它列出了一些練習(xí)。在Java模塊里有5個(gè)練習(xí)。求職者可以從中挑選一個(gè)自己最感興趣的項(xiàng)目。這些練習(xí)項(xiàng)目在結(jié)對(duì)編程的情況下大概需要花費(fèi)兩個(gè)小時(shí),難度級(jí)別一樣。同時(shí),它們廣泛覆蓋了開(kāi)發(fā)者所要解決的各種不同的問(wèn)題。有一些涉及到大量的字符串和文本操作,另一些本質(zhì)上則是純粹的數(shù)學(xué)問(wèn)題。

  比如,其中的一個(gè)問(wèn)題是寫一個(gè)程序來(lái)分析一組撲克牌,并選出它最好的組合牌型(順子、滿堂紅即三帶兩、對(duì)子等)。起初,我們計(jì)劃采用兩組撲克牌,并從中選出一組獲勝者,但考慮到這樣會(huì)使難點(diǎn)加大,為了與其余4個(gè)項(xiàng)目難度相當(dāng),我們最后又做了一些簡(jiǎn)化。

  我向應(yīng)聘者解釋說(shuō),他們并不是必須要完成練習(xí)(這點(diǎn)很重要)?!拔覀兊哪繕?biāo)不是完成這個(gè)任務(wù),而是讓彼此感受一下對(duì)方喜歡如何工作?!钡芏嗝嬖囌呷栽噲D能盡快完成該任務(wù),每當(dāng)我察覺(jué)到他們這么做時(shí),我就開(kāi)始問(wèn)一些關(guān)于代碼的值得思考的問(wèn)題,以便他們能慢下來(lái)。一旦應(yīng)聘者意識(shí)到他(她)已沒(méi)有機(jī)會(huì)完成這個(gè)任務(wù)時(shí),他們就會(huì)慢下來(lái),停止沖刺。

  當(dāng)面試者寫了一些代碼后,我會(huì)尋問(wèn)他們計(jì)劃如何測(cè)試代碼的準(zhǔn)確性。一些人喜歡經(jīng)常運(yùn)行所寫代碼,一些人會(huì)寫一個(gè)“public static void main”方法來(lái)驗(yàn)證所寫代碼是否實(shí)現(xiàn)了正確的功能,還有一些人會(huì)通過(guò)單元測(cè)試來(lái)驗(yàn)證。無(wú)論他們?nèi)绾位卮?,我都?huì)建議他們繼續(xù)做下去,并確保到目前為止,所寫的代碼是正確的。這是一個(gè)很好的建議。因?yàn)樵诰毩?xí)過(guò)程中最糟糕的事情就是,直到面試臨近結(jié)束時(shí),他們才運(yùn)行自己所寫的代碼,結(jié)果發(fā)現(xiàn)了一堆的Bug,在剩下的時(shí)間里很難調(diào)試完。如果某個(gè)應(yīng)聘者喜歡寫測(cè)試代碼,那我將和他(她)一起做乒乓結(jié)對(duì)編程(譯注:結(jié)對(duì)編程的一種,在結(jié)對(duì)編程引入測(cè)試驅(qū)動(dòng)開(kāi)發(fā),兩個(gè)人輪流編寫測(cè)試,由對(duì)方編寫能通過(guò)測(cè)試的代碼,能有效提高代碼質(zhì)量)。

  很多時(shí)候,面試者都會(huì)問(wèn)一些諸如“如果輸入無(wú)效,我們應(yīng)該怎么做?”之類的問(wèn)題。我通常會(huì)反過(guò)來(lái)問(wèn)他們,他們打算怎么做。在練習(xí)中,并沒(méi)有所謂的完全錯(cuò)誤的答案。有時(shí),他們會(huì)提出想用Google搜索一些東西或查閱一些文檔,可能有人會(huì)覺(jué)得有作弊之嫌。但我會(huì)說(shuō),對(duì)他們使用何用工具、資源沒(méi)有任何限制。并反復(fù)強(qiáng)調(diào)說(shuō),他們應(yīng)該像在平常工作中解決問(wèn)題那樣來(lái)完成這個(gè)任務(wù)。

  在練習(xí)的最后20分鐘左右時(shí),我喜歡讓面試者停止編碼,并和他們一起討論他們編寫的代碼。應(yīng)聘者為什么采用了某種設(shè)計(jì),而沒(méi)選用另一種;他(她)是否還有其他想做的事等相關(guān)問(wèn)題。我也會(huì)問(wèn)他們,“如果我們計(jì)劃和其他工程師一起對(duì)這些代碼進(jìn)行代碼審查,在審查之前,你計(jì)劃對(duì)這些代碼做些什么?”通常在短短的兩個(gè)小時(shí)內(nèi),面試者很難按他們所設(shè)想的去重構(gòu)代碼,所以我也希望了解,如果還有時(shí)間,他們將會(huì)從何入手。

  當(dāng)然,他們離開(kāi)后,這就是我要做的事。其他的一些開(kāi)發(fā)者和我一起審查這些代碼,問(wèn)我一些相關(guān)的問(wèn)題,并就諸如代碼風(fēng)格等問(wèn)題展開(kāi)討論。

  有哪些好處?

  上述面試過(guò)程所帶來(lái)的反饋效果是相當(dāng)不錯(cuò)的。首要的是,應(yīng)聘者也很喜歡這種面試方式。相比在一個(gè)安靜的屋里拿著白板筆苦思冥想,他們感覺(jué)在實(shí)際的電腦旁寫代碼更舒服。他們覺(jué)得這種面試方式比傳統(tǒng)面試方式更輕松(剛開(kāi)始面試者的反應(yīng)讓我都有些驚訝)。每個(gè)經(jīng)歷過(guò)這種面試過(guò)程的應(yīng)聘者都表示很喜歡,我們今后的面試都將按這種方法來(lái)進(jìn)行。而且,這種面試不再是單方面的了:應(yīng)聘者感覺(jué)面試就好像在工作一樣,雙方可以很好地對(duì)彼此進(jìn)行評(píng)估。

  另外,相比普通面試,面試官通過(guò)上述面試過(guò)程,能更好地了解應(yīng)聘者的“軟技能”。他的交際能力如何?他和同事一起思考、解決問(wèn)題的過(guò)程是怎樣的?他喜歡協(xié)作,還是喜歡獨(dú)立工作?他是否喜歡開(kāi)玩笑?通過(guò)這些編碼實(shí)踐中,我對(duì)這些問(wèn)題都能找到了很好的答案。

  最重要的是,你實(shí)際上正在他們每天實(shí)際工作的環(huán)境中面試他們。因?yàn)殚_(kāi)發(fā)者一般不會(huì)在白板上編碼,所以白板面試只能測(cè)試應(yīng)聘者在做白板面試時(shí)的好壞程度。他們可以用編譯器或解釋器,他們可以用測(cè)試工具,他們可以Google搜索,在結(jié)對(duì)編程練習(xí)中他們可以用所有這些輔助工具,但在白板面試過(guò)程中,這些都是不允許的。在熟悉的工作環(huán)境中測(cè)試開(kāi)發(fā)者可以算是評(píng)審他們的一種極其高效的方法。

  因?yàn)檫@種面試長(zhǎng)達(dá)2個(gè)小時(shí),并且只關(guān)注一個(gè)任務(wù),所以更有機(jī)會(huì)了解面試者是如何進(jìn)行編碼設(shè)計(jì)的,比起“請(qǐng)寫出一只雞的對(duì)象模型”這種類型的設(shè)計(jì)問(wèn)題來(lái)得更加實(shí)在些。不必要求應(yīng)聘者畫出UML,你就可以了解他的設(shè)計(jì)能力如何,因?yàn)樗麄冊(cè)诂F(xiàn)實(shí)工作中可能并不總畫UML圖。

  在主要的開(kāi)發(fā)領(lǐng)域,采用上述面試過(guò)程是很重要的,不是呆在一旁的房間里,而是開(kāi)始結(jié)對(duì)編程實(shí)踐。面試者有機(jī)會(huì)看到他們將工作的環(huán)境,并有助于他們對(duì)文化環(huán)境做出評(píng)價(jià)。如果你工作在一個(gè)嘈雜、非正式的辦公環(huán)境中,開(kāi)發(fā)者可隨時(shí)播放音樂(lè)和彼此開(kāi)玩笑,當(dāng)應(yīng)聘者真正參與到此環(huán)境中時(shí),面試官可以看到他們是如何融入到環(huán)境中的。

  還有一點(diǎn)很重要,它感覺(jué)并不像是在面試。它并不是由面試官來(lái)拷問(wèn),然后面試者寫下所有代碼來(lái)回答。這并不是現(xiàn)實(shí)生活中結(jié)對(duì)編程的工作方式,所以在結(jié)對(duì)編程練習(xí)中,它也不應(yīng)該是這樣的。面試官也應(yīng)該寫一些代碼,以顯平等,面試者也會(huì)感覺(jué)更舒服些(應(yīng)聘者當(dāng)然要更多地負(fù)責(zé)解決問(wèn)題的任務(wù))。

  基于應(yīng)聘者和面試官都喜歡這種面試過(guò)程,目前我很難有理由去進(jìn)行白板面試。就我個(gè)人而言,在和應(yīng)聘者進(jìn)行結(jié)對(duì)編程練習(xí)之前,我甚至都不看應(yīng)聘者的簡(jiǎn)歷。在結(jié)對(duì)編程之前,我覺(jué)得沒(méi)有必要了解應(yīng)聘者的任何事情,我喜歡在和他們完成任務(wù)的2個(gè)小時(shí)里去了解面試者的一切。

  如果你在招聘優(yōu)秀程序員的過(guò)程中有困難的話,可以嘗試一下這個(gè)面試過(guò)程。把結(jié)對(duì)編程作為面試過(guò)程的一部分,看看效果如何。

    【討論】

  此文引起了熱議。有人提醒,在結(jié)對(duì)編程面試中不要讓面試者在生產(chǎn)代碼中開(kāi)發(fā),會(huì)涉及法律問(wèn)題。

  還有人認(rèn)為這種面試會(huì)耗費(fèi)更多資源,很多公司未必能效仿。這種說(shuō)法當(dāng)然引起了很多人的炮轟,很顯然,這是典型的磨刀不誤砍柴工,招到一個(gè)優(yōu)秀的新同事會(huì)事半功倍。而作者回答說(shuō),其實(shí)資源與原來(lái)的方式相同,因?yàn)樗麄児局笆侨喢嬖?,第一輪電話篩選,第二輪是兩個(gè)考官進(jìn)行的白板面試(1小時(shí)),第三輪本來(lái)是另一組1小時(shí)的兩考官白板面試,現(xiàn)在換成了一考官2小時(shí)結(jié)對(duì)編程。

  還有人質(zhì)疑,為什么非要結(jié)對(duì)編程呢?給面試者一臺(tái)電腦,一個(gè)任務(wù),讓他編代碼去,然后再問(wèn)問(wèn)問(wèn)題,不也行嗎?作者回答,通過(guò)結(jié)對(duì)編程,很逼近實(shí)際的合作場(chǎng)景,可以全面了解面試者,這是另一種方式無(wú)法做到的。

  更多討論可以訪問(wèn):Reddit

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
十七道IOS人員面試提問(wèn)及注意事項(xiàng)
程序員面試寶典
一個(gè)技術(shù)大牛對(duì)程序員招聘的吐槽和建議
日新月異的信息技術(shù)面試基礎(chǔ)知識(shí)技術(shù)工具項(xiàng)目經(jīng)驗(yàn)現(xiàn)場(chǎng)編碼測(cè)試語(yǔ)言切換
如何面試剛畢業(yè)的開(kāi)發(fā)者?這位面試官總結(jié)了一些心得
應(yīng)如何來(lái)面對(duì)自己的面試?用人單位面試過(guò)程常見(jiàn)的問(wèn)題以及這些問(wèn)題背后的指向
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服