題:
編程任務正在嚇跑候選人,我們應該放棄它嗎?
bobo2000
2016-02-02 20:44:21 UTC
view on stackexchange narkive permalink

這是我第一次從事人力資源工作,我們正在尋找開發人員。選擇過程分為三個回合:技術電話面試,編程任務(0.5-1小時的挑戰),最後是對我和上級管理層的面試。

我遇到的問題是當我給與一些應聘者(大多是已經擁有1或2個技術實習生的應聘者 )來完成編程任務,他們不僅沒有在給定的時間範圍內(一周)完成任務,而且我沒有

我正在考慮放棄編程任務,但我真的認為這可以幫助建立誰真正知道簡歷中列出的語言。

我該如何改善我們的招聘流程?

自發布此問題後進行更新

在大多數情況下,編程測試會推遲很多候選人,這非常令人沮喪,因為我需要通過很多候選人才能找到願意的候選人。話雖如此,我發現一些願意這樣做的人,並且總體上發現:

a)表明他們對公司和角色具有良好的態度準備好加倍努力來完成它。

b)他們具有編程能力。當然,他們可能會作弊,但如果他們嘗試過,那麼對我們來說,良好的態度就更為重要,因為他們將更易於管理。

我從那以後聘請了一名研究生開發人員,他嘗試並成功完成了練習。他還完成了該任務的所有其他“獎勵積分”。現在說出他的角色有多出色,因為他才剛剛起步。

在某些情況下,我確實避免對開發人員進行演練,如果他們已經擁有的話強大的產品組合為優秀品牌服務,並擁有良好的業績記錄。自從進入大型品牌以來,他將不得不做自己的入場測試。

自發布此問題以來,已進行第二次更新

這名研究生開發人員被證明是明星員工。我們一直留住他,給他加薪。

如果某人沒有足夠的錢來完成面試任務,那麼我就不會期望他們以員工的身份完成任務。如果您收到反饋說任務在所提供的時間範圍內太難了,那將有所不同,但是我認為他們根本沒有提供反饋。您正在/從哪個國家/地區招募候選人?無論哪種方式,在這種情況下,我都不認為取消對工作的考驗是前進的有效途徑,聽起來像是您在尋找錯誤的候選人。
從我作為入門級開發人員的經驗來看,需求如此之高,以至於我可以通過在線編程測試跳過任何面試過程,並輕鬆獲得一個不錯的報價(請注意:不是_編程問題的技術面試_,您應該是的,我指的是在我自己的時間進行的2-4小時測試,此後我可能會也可能不會聽說。)可以說對實際有經驗的人的需求可能更高。如果他們每週(如果不是每天)收到招聘人員的電子郵件,為什麼要跳過他們呢?
除非工作超出平均水平,否則我將避免採訪編程任務。考慮到我無需測試即可獲得大量面試機會,因此我認為不必花幾個小時去面試的公司。
評論不作進一步討論;此對話已[移至聊天](http://chat.stackexchange.com/rooms/35199/discussion-on-question-by-bobo2000-a-programming-task-is-scaring-off-candidates)。
讓我們[繼續聊天中的討論](http://chat.stackexchange.com/rooms/35242/discussion-between-technik-empire-and-bobo2000)。
相信我,您_想要嚇跑那些無法編程的候選人。您可能希望修改其內容和/或呈現方式(例如,邀請他們進行現場採訪,與程序員配對,以及讓他們在一個房間裡與工作站和配對程序一起坐一個小時)練習)。但是完全擺脫它是一個非常糟糕的主意。
就個人而言,我認為候選人面試中沒有候選人代碼是一個危險信號。如果潛在的未來同事在沒有任何技術技能的情況下進入工作場所,而我將幫助維護他們的代碼,那將是糟糕的時刻。此外,這是[Joel測試](http://www.joelonsoftware.com/articles/fog0000000043.html)上的要點之一。
我相信候選人的來源至關重要。招聘代理對簡便的方法很感興趣。在本地,他們得到報酬(隨意支付)以使人們擺脫社會保障金的支付,因此他們可以集中精力進行工作。如果您沒有獲得SS,那麼他們根本就不感興趣(引用“不要浪費您的時間,不要浪費我們的時間”。)因此,招聘人員從未將我的學位和40年的經驗介紹給潛在的雇主-大多數雇主堅持只使用招聘人員。
這篇來自[前技術研究人員]的前Google博客關於[“技術面試讓我哭泣”](http://blog.pamelafox.org/2013/09/technical-interviews-make-me-cry.html)的博客文章到目前為止,給您一周的任務是進行技術面試的最佳方法。
@FreeAsInBeer我正在做相反的事情。我相信,除非他能做一些有意義的工作,否則無法判斷該員工,所以我寧願加入一家聘請試用期的公司,而不是被一個不受歡迎的人困住,因為“他擅長一些抽象測試,所以他必須擅長完全無關的現實生活場景”。尤其是我在大三學生尋找的是,他的代碼易於團隊其他成員閱讀和維護,而不是他在工作的第一天就解決了P-vs-NP問題。
@Agent_L是的,試用期始終是個好主意,我們在這裡做到這一點。問題是,當您發現它們不好時,您將花費3-4個月的薪水和時間。這值得麼?
代碼挑戰會告訴您關於候選人的什麼信息?沒有。即使您是在定期面試中在辦公室做的事情,您還是要a)向他們提出一個瑣碎的問題,使您一無所獲;或者b)您向他們提出的問題是無法合理解釋的在幾分鐘內完成*除非考生以前沒有看過。*再一次告訴您什麼。 “確定一個鍊錶是否包含一個循環”是一個不恰當的問題,並且困擾著sci PHD持有者長達30年之久,但這種解決方案一經知道就很簡單。
您沒有偶然地關注[this](http://blog.codinghorror.com/how-to-hire-a-programmer/),是嗎?在一個理想的世界中,我相信這是從雇主的角度僱用程序員的最佳方法,但是大多數才華橫溢的程序員都將排在第五位。沒有人希望他們的時間浪費在無法保證的事情上(更不用說在美國,這樣的艱難進入過程最終會因解僱某人之前的兩週通知而受到破壞)。
@Cat'r'pillar,因為這樣您就會知道您將與有能力通過測試的人員一起工作,並且在那里工作會遇到一些挑戰。當然,如果您一開始對職位沒有太大興趣,就沒有理由參加任何面試。
不必一定是@Draco18s,您可以設計使用許多技術的“簡單”任務,舉一個示例,一種將數據發佈到服務器的反饋表。僅此一項就需要AJAX,Jquery,javascript,CSS,HTML和JSON。如果候選人能夠做到這一點,至少我確定這不是最複雜的事情,那麼他就知道他知道上述所有降低了風險的技術。
-1
問題的一部分是@Draco18s,當我收到應用程序時,他們通常沒有投資組合或github帳戶
@bobo2000他們有工作經歷嗎?他們的推薦人之一是以前擔任過類似職位的經理嗎?如果“否”,那麼對於您正在尋找的職位,他們再初級不過,代碼挑戰不會告訴您任何內容。除非在這種情況下僱用初級開發人員,否則他們並不需要所有這些技能。
@Draco18s我現在正在招聘擁有一兩個技術實習生的畢業生,說實話,如果申請人沒有與他相處,而問他過去的經理並非總是最好的方法,但如果他不是一個能幹的編碼者。
-1
@Draco18s並非所有經理都是有道德的-我曾經與一位鬥氣十足的人共事,這就是為什麼我會一言不發地接受他們所說的話。
@bobo2000如果經理將要報仇,則候選人將不會包括他作為參考。我的意思是
@aroth,但這種類型的任務不會根據能力來“嚇跑”,它會選擇不太重視自己時間的人,實際上可能會降低應聘者的素質
@Draco18s如果這是您唯一的工作,有時您沒有太多選擇。
@bobo2000雖然可能是這樣,但是代碼挑戰仍然無法告訴您任何內容。沒有一個答案對所有參與答案的人客觀上都是正確的。
@JamesRyan或它選擇真正想為您工作的候選人。
@bobo2000不,它不會區分那些真正想為您工作的人和那些真的想為任何人工作的人。而且,直到他們真正為您工作之前,他們都不知道他們是否願意為您工作,所以也不是您也不會這樣選擇熱情,快樂的員工。
您可以在1個小時內學習90%的內容,而這需要幾個小時。剩下的只有在他們有幾個星期的時間安頓下來並了解您的做事方式(或沒有)後,才會看到。這些長期以來提出的挑戰浪費了每個人的時間,並且坦率地說,使人們跳入籃筐。像facebook和google這樣的公司有成千上萬的申請人要減少,您卻沒有。
@RonBeyer如果我作為應聘者認為任務花了太多時間,我不會花時間提供反饋。那對我有什麼好處?只要繼續下一個機會。我的決定對公司有利還是不利?不知道,不在乎。公司是否花費大量時間向他們決定不再繼續的候選人提供反饋?
我看到編碼測試做得很好-但作為採訪前過濾器傳遞,不是**。 **在** 80%的技術面試之後,在一個我工作過的地方,他們把我放在一個擁有VM開發環境,一個需求文檔和一個針對他們(相當專業)工作的測試套件的房間裡僱用我完成後,工程師們都有機會詢問我的選擇。這是(1)尊重我的時間(他們不要求我花時間直到他們沉沒自己的時間),以及(2)表現出自己的努力(為只填補一個職位的職位建立這種工具) 。
...以這種方式構造編碼測試時,公司的工程師將自己的時間投入其中-並且僅在之前的面試之後才出現-它讀作“我們不尊重您作為候選人的時間” ,以及“我們真的,真的*在乎建立一支高素質的工程團隊”之類的內容。我辭去了很多工作之後(沒有在您的時間進行電話通話前代碼測試),就接受了這份工作(那是一家擁有一支高素質團隊的商店)。
如果您希望應聘者為您編程,請為他們付出時間。僅僅因為他們正在尋找工作並不意味著他們還沒有工作,或者他們的時間沒有價值。當您考慮時,您已經在花光員工時間來採訪他們。因此,您要求應聘者再“面試” 2-4個小時,而您卻節省了自己的時間,這將使您花費更多的員工時間來面試2-4個小時。因此,為候選人的測試編碼時間付費不會花費更多的錢。
@CharlesDuffy現場測試僅在應聘者位於同一國家/地區時才有效,如果您正在面試正在英國尋找職位的國外應聘者,則這不是實際的解決方案。
@bobo2000很少會面試來自另一個國家的候選人,並且通常僅在需要非常專業的技能時才進行。他們搬遷困難的風險太大了,在大多數情況下,當地申請人也同樣出色。
@JamesRyan實際上不是,許多畢業生尤其是在國外進行技術實習,並且他們去了最好的學校。幾天採訪了一位劍橋大學畢業生。
@bobo2000很好地拖延了對畢業生的這種胡說八道,因為他們沒有測試的經驗,這更加糟糕。另外,如果他們是劍橋大學的畢業生,他們會在完成大學學習之前在英國面試工作,所以我認為您在談論垃圾。
我採訪過的許多@JamesRyan畢業生都曾做過1到2個技術實習,事實上,劍橋大學的畢業生目前在香港從事一個。作為實習的一部分,他正在構建一個RESTful API。
在被錄用之前,您是否必須完成2小時的HR任務以證明您擅長HR?
@DA。這不是我的工作角色,我是PM。我只是碰巧在做,因為沒有其他人可以做....除此之外,如果您是一位自信的編碼人員,並且對在公司工作感興趣,那麼有什麼大不了的?如果有的話,如果他們不這樣做,可能會淘汰他們,因為他們從不對為公司工作感到興趣(或者對他們的編碼能力沒有信心)
@bobo2000指出,大多數人並不需要專業人士參加數小時的“測試”來“證明自己的價值”。理想情況下,可以對候選人的面試,簡歷,檔案袋,教育和參考資料有一個很好的了解。通常,我們要求開發人員執行此操作實際上是一件奇怪的事情。
@DA,如果他們沒有投資組合,github帳戶,而只是一個簡歷,上面有很多未知公司,該怎麼辦?您怎麼知道在x,y公司那傢伙寫的代碼寫得好?
@bobo2000適用於*任何*專業
@DA。我只是看了一位自從加入公司以來聽到很多事情后被解僱的前僱員的簡歷。他擁有紙上的所有技能,包括TDD / BDD,Ruby on Rails,Rspec,但歸根結底是因為他很窮而被解雇了。此後已被重寫。那時沒有篩選程序。開發人員的報酬太高,無法被篩選。如果有人提出申請並且管理不善,那麼這沒什麼大不了的,因為他們沒有建造數字房屋
不過,@bobo2000再次將其應用於任何專業人員。您怎麼知道醫生擅長手術?您怎麼知道飛行員擅長飛機?我並不是說測試是不好還是很好。我只是指出,開發人員似乎是我們感到強烈需要始終對其進行測試的少數專業之一,這看起來很奇怪。我認為聘用在紙上看起來不錯,但實際上並非如此的開發人員,是招聘經理的失敗,因為他可能沒有完全檢查參考資料或沒有進行深入的採訪。最後一點是,一個人在測試中可以做得很好,但仍無法通過日常指標
@DA。因為糟糕的開發團隊會破壞技術創業,因此產品質量是其成功的關鍵因素。無需任何形式的測試,開發人員就可以取消採訪。推薦人可能會有偏見(他們的朋友可能會提供推薦人),儘管我同意測試還是不能解決問題,但結合技術電話面試,您可能會對候選人的能力有個很好的了解。這是關於減少而不是消除壞員工的風險。
讓我們[繼續聊天中的討論](http://chat.stackexchange.com/rooms/35560/discussion-between-da-and-bobo2000)。
介意顯示其中一個示例的副本嗎?我真的很好奇它有多難。無論如何,候選人應如何提交成績?我發現https://ideone.com是進行簡單測試的好方法。您使用“輸入”創建一個模板,他們粘貼其代碼並為您提供源和“輸出”。暫緩提交,看看候選人只是從CareerCup或StackOverflow複製粘貼。嘗試將1小時的大型問題分解為3-5個部分,這樣考生就不會覺得這是一場全有或全無的考試。
@Dogbert不能公開發布,但是我構建測試的方式是擁有核心任務,並為其他任務授予候選加分。因此,例如,對於Javascript測試,它遵循使用Jquery,javascript,css,html,ajax完成測試的路線,其中在AngularJS等JS框架中為完成測試提供了獎勵積分。測試本身將是一個非常簡單的功能。我最近讓一位申請人在AngularJS中完成任務,儘管這不是必需的,但他的態度給我留下了深刻的印象。立即僱用他。
@Dogbert我也認為我正在尋找的主要目的是至少讓某人嘗試一下,因為它使我對他們對角色的態度以及他們想要多少有一個很好的了解。
@bobo2000有趣的是,候選人甚至都不會嘗試測試。好吧,也許這是比您最初意識到的更好的過濾機制。 :)
最終,@Dogbert的測試結果對我們來說很有效-最終找到了嘗試並完成得很好的人(獲得加分),事實證明他是一個非常好的聘用。他只需要很少的培訓,就可以輕鬆應對,並且很快就可以動起來。
@bobo2000很好聽!希望這種方法對您的公司來說能繼續發展下去。
這也是我的經驗。我在面試時在白板上進行編程測試,通常大約需要一個小時。大約90%的候選人不及格。剩下的10%絕對不值得僱用其他10%。我們也與高級應聘者一起做,但是期望更高的標準。
市場處於經驗豐富的開發人員的一邊,他們可以跳過那些瑣碎的愚蠢測試。
@SuperUberDuper如果有經驗的開發人員已經通過為知名品牌服務的良好往績證明了自己的簡歷技能,那麼我不會對他們進行編程測試。但是對於實習生/畢業生而言,情況卻截然不同,因為實習生/畢業生通常缺乏任何商業經驗,因此關鍵是嘗試找出他們是否具有潛力以及塑造他們的基本條件。如果他們可以抽出一些時間完成測試,那麼這也說明了他們對工作的態度。
@bobo2000恰好,好點
@RonBeyer我認為您的比較不公平。作為一名員工,您致力於完成這項工作,與公司簽有合同,並且在您的時間內獲得了報酬。但是,作為一個簡單的受訪者,您或公司都不暗示或暗示建立專業關係。因此,作為面試的一部分,拒絕執行多個小時的編程任務與拒絕相似內容的員工有很大不同。
@RaduMurzea的關鍵是設計一個程序設計測試,該測試要短30分鐘到1小時。如果候選人不願意這樣做,那麼我們將拒絕他們,因為它說明了他們對這一角色的態度。
試聽項目與編寫面試問題不同。至少一個項目可能涉及更多有趣的任務,並給您*自由*選擇什麼以及如何實現某些東西。編碼測試通常非常集中並且坦率地說很無聊。
“對公司和角色的良好態度”-想像一下,如果受訪者每週接受10項這樣的任務,而每個公司都認為相同。從他的角度來看,面試官與現實脫節。
@Pithikos這幾天很多公司都有技術面試。Google的要求非常嚴格。我們不是Google否,但這並不意味著我們應該通過沒有技術甄別程序來降低我們的標準,這會增加僱用不良員工的風險。
@Pithikos也剛剛檢查過,Facebook有一些職位的面試編碼分配
在面試中提供非常短(5-10分鐘)的編碼練習是可以的,但是您不能指望人們會浪費一個小時的時間。受訪者不知道很少有人能完成它。最重要的是,您可以根據自己的想法進行思考,但是除非他們看到有關您公司的非凡之處,否則他們不會全力以赴取悅您,不僅是很小的機會,您可能會在數十個潛在客戶中給他們回電或數百名完成相同測試的人。他們只是轉到下一家公司。
另外,我只是注意到您在電話上給了他們測試!讓自己穿上鞋子一會兒。他們甚至都沒有見過你。他們對您的公司一無所知,而您已經在浪費他們的時間,因為他們認為它們毫無意義。在這種情況下,您將如何應對?您提到了Google和Facebook,很抱歉讓您失望,但您既不是Google也不是Facebook。非凡的公司可以負擔得起申請人的非凡努力,而普通的公司則不需要。除了處理它,您無能為力。
@Demonblack是的,絕對是這樣,這意味著我們將招聘更少的人,所以這就是為什麼當我們最終招募某個人時,我們降低了聘用不好的可能性,並且總的來說聘用的是經驗不足但學習動力十足的人。這樣做只需要更長的時間,對於那些對自己的能力有信心的人,絲毫不會打擾他們。
-1
一年前,當我發布此問題時,我們在使用此過程時遇到了問題,我的問題是該方法是否過於繁瑣,但此後對其進行了優化,現在可以正常使用了。
嗯,快速的問題是,程序員如何欺騙某項作業。我們80%的工作是從互聯網獲取代碼。
24 答案:
Shane
2016-02-03 01:27:37 UTC
view on stackexchange narkive permalink

需要一個編程測試。但是應該是5-10分鐘。 30分鐘頂端。沒有2小時的測試可以確切告訴您編程人員的水平。您將無法判斷他們是否持續編寫可維護的代碼,或者它們始終正確地註釋,或者它們是否提出了難以理解的“聰明”問題解決方案等。在2個小時內,您唯一要做的就是

除了您應該能夠在短於2個小時的時間內發現徹底的欺詐行為之外,就可以發現誰在說謊。撰寫FizzBu​​zz只需5分鐘,而有關語言特定功能的2-3個簡短問題將告訴您它們是否絕對一文不值。那就是您在工作面試中能做的最好的事情。

讓我告訴您,如果我接受了2個小時的考試以進行面試的特權,我會怎麼想:

“或者這些人認為這有價值,這意味著他們不知道自己在做什麼,或者,他們知道這是浪費時間,但是出於某種原因(可能是盲目遵循人力資源部的繁文tape節),他們願意

無論哪種方式,我都不想在那兒工作。” p>



還有另一件事可能會趕走候選人:面試過程的持續時間。有人在電話採訪中。然後進行一次回家測試,他們有一個星期要完成。然後您通過測試。然後,您與管理層進行面試。然後(我假設)您進行了幾次面試。然後,您回來找想僱用的那個人。這需要什麼? 2週?更長嗎?

那段時間我已經獲得了3個報價。我接受了一個,下週開始。您以為我要去做2小時的考試嗎?

評論不作進一步討論;此對話已[移至聊天](http://chat.stackexchange.com/rooms/35223/discussion-on-answer-by-shane-a-programming-task-is-scaring-off-candidates-shou) 。
*但是應該是5-10分鐘。最多30分鐘。*-不必這麼短,但是讓他們在離開之前現場進行訓練會提高完成率。如果您讓他們在家中進行2小時的挑戰也沒關係,他們不會回家決定是否值得。但是總的來說,我同意快速的嗡嗡聲式挑戰可能會產生與更深入的測試,而無需花費太多精力即可評估結果。如果要花3-4週才能完成招聘流程,那麼我已經開始其他工作了。
我不介意較長的面試過程-我認為這有所不同。這是候選人是否想在任何地方_或與您的公司_一起工作的問題。給我一兩個星期的時間來做作業,弄清楚我是否想/要搬到哪裡,要花多少錢,我更有可能接受這個提議。沖我,我可能不會。
不,您不需要任何編程測試。您需要的是試用期。
@Agent_L一名更換員工的工人(平均花費40,000美元)為16,000美元。一名年薪$ 80,000的員工需要花費$ 120,000進行更換。當您可以免費進行5分鐘的測試時,要花掉試用期的一半費用來淘汰一半的候選人,這真是“瘋狂”的數目。認真地說,為什麼您會僱用某個人並開始為他們支付幾週/幾個月的薪水,以發現他們對簡歷撒謊?為什麼您可以花5分鐘卻不花一分錢就可以找到同一件東西呢?
但是您需要知道他們對平台的熟悉程度。根據您所需的經驗水平,測試可能需要的概念和體系結構的數量可能會有很大差異。
@Shane什麼?您只需付給他們多少費用。如果他們撒謊了,那在頭幾天就很明顯了,然後您就讓他們離開了(更不用說如果他在面試中欺騙了您,然後僱用他擔任推銷員)。每年$ 40k只是每天$ 158。您引用的是基於測試解決能力而僱用錯誤人員的成本。並且花了幾個月的時間才意識到他不是團隊合作者。您的解決方案是價值1.6萬美元的解決方案,而不是我的解決方案。
@Agent_L:錄用失敗的成本遠遠高於誤用的工資。例如,其中包括需要重新僱用人員,以及與將一個人添加到您的員工相關的所有管理員。我不知道Shane的數字來自何處,但似乎並不合理。大概16,000英鎊是*撥給壞員工的薪水之上的。當您提出替代解決方案時,大概您是一名招聘經理,還是以某種與招聘有關的身份工作?
在我看來,找到一份工作的試用期將吸引許多普通/糟糕的程序員,而優秀的程序員將在1-2個月內不為您工作,以免他們被雇用後*後*。只是我的觀點
*“不必這麼短,但是讓他們在離開之前現場進行會提高完成率。...” *-就我個人而言,我希望他們在被邀請到現場之前就完成。當他們提交簡歷時,請他們去做。為什麼要浪費時間不符合最低或基本標準的候選人?
@Agent_L取決於您在哪里工作。在某些國家/地區,當您開始工作後,不能僅僅在2天后就找男生,這可能需要數週或數月的時間,同時您還必須付薪水。
@Agent_L我住在其中一個國家,在僱用某個人後真的很難解僱他們。您必須經歷一個耗時數月的正式流程。
值得補充的是,這些相同的原理適用於*所有*測試,而不僅僅是編程測試。 **所有“家庭作業”測試都區分忙碌和需求旺盛的人**,並且傾向於測試錯誤的事物(可以在工作中學習的領域知識,而不是不能理解的“才能”)。我在一個團隊中使用完全相同的東西,該團隊使用一個多小時的“以我們的品牌風格進行設計X”的家庭作業來招募平面設計師,[我用一種面試中的嘶嘶聲代替了創造性思維] //graphicdesign.stackexchange.com/questions/27385/fizzbuzz-for-graphic-designers/27405#27405)。
@GustavBertram是的,我住在波蘭,那裡的人很難解僱,以至於沒人能得到一份真正的工作合同。預定義長度的合同,知識產權轉讓,執行指定任務的合同,臨時工合同-選項無窮無盡。您所需要的只是相互的意願,可以克服限制。
@Shane,錯誤的較高統計量的代價非常有趣。您有資料來源嗎?我相信您,並同意糟糕的員工付出了高昂的代價,但這個數字令我震驚。謝謝!
我不明白所有的人都說@Agent_L是錯誤的,而且價格會更高。進行審判是為了使他們可以出於任何原因解僱您,而他們只需要付給您一個月的薪水即可。您可以說招聘過程要花錢等,但不聘請任何人也會使他們花錢。
@chessofnerd https: // www.standardforsuccess.com / wp-content / uploads / 2015/08 / Employee_Turnover_Infographic_8.27_2.pdf
@EpicKip因此,您僱人來做一份工作。假設他們的月薪為$ 1000。他們沒有做任何事情,沒有為公司生產高產並為公司帶來2000美元的利潤。然後需要一個月才能找到新朋友。有了一個好的聘用,該公司就可以在銷售和薪水後獲得4000美元的收入。取而代之的是,這筆錢是花在工資上的1000美元債務。公司損失了5000美元。還有其他因素,例如,工作時間越長,您如何提高工作效率,但這在很大程度上是要點。
@Shane您無法從測試中找到所有內容。我是一名程序員,任何聘用地點(至少在荷蘭)都會根據1個月的試用期來聘用您(他們確實接受了面試,並且可能只有很小的測試)。而且由於漫長/錯誤的招聘過程而沒有僱用任何人,將使公司花費更多的加班費。
“他們確實接受了採訪,甚至可能是一次很小的考驗”嗯,是的。這正是我們在這裡談論的部分。問題是關於面試的部分以及是否進行很小的測試。我的第一段繼續詳述“如何無法通過測試找到所有內容”。來自荷蘭,也許有一點語言障礙?但是,我建議您重新閱讀問題和答案,因為我認為我們在這裡的同意比在這裡的不同。
@Shane, [編碼測試也沒有確定程序員最重要的方面:他們是否有能力學習。](http://www.brandonsavage.net/why-coding-tests-are-a-不良採訪技術/)
@Draco18s第一段:“ *我最近在找工作時注意到的一件事是,許多公司堅持要求您將它們編寫為規範的代碼示例。不僅是任何代碼示例,而且是功能齊全的完整應用程序。這出於種種原因,這是荒謬的。*”他接著說:“ ** Joel Spolsky談到了要求開發人員在面試中編寫代碼的重要性。但是他也詳細介紹了他如何在自己的公司中解釋這一點:也就是說,他要求人們在面試中編寫函數。*“這與我所說的相同。1/2
在白板上的@Shane Quick,給我寫了一個函數,該函數將確定單鍊錶是否包含循環。走。同樣,您不能修改數據結構或創建新列表。
2/2他最後說:“ *在面試中問一些需要代碼的技術問題。*”他對編碼測試的抱怨是關於OP所要求的測試類型。這個答案推薦同樣的事情。另外,我不同意這表明他們無法學習。它表明他們至少學到了一些東西。他們的編碼風格不是“ Google尋求代碼示例和希望”。除了表現出學習編程101的能力外,在面試過程中您所做的工作並不能證明某人隨著時間的推移而學習。至少,我很想听聽您如何在幾分鐘內提出建議。
是的,這將是一個體面的問題-假設您的商店使用的是使用鍊錶的技術。雖然,我個人並不喜歡像您那樣的人為限制。
在第一次面對面採訪之前進行長時間的帶回家測試是一個笑話。
Lawrence Aiello
2016-02-02 20:51:11 UTC
view on stackexchange narkive permalink

讓我首先說,僱用員工通常是一門可憐的科學,無論嘗試什麼,都會得到各種各樣的結果。話雖如此,我覺得我應該對此發表看法。

我認為編程練習是一種失敗,主要是因為您會感到絕望的人花了太多時間來完成它。如果他們有一份全職工作,則必須問他們從當前雇主那里花了多少時間/精神能量來為什至沒有工資的人工作。您是否希望他們對您做這樣的事情?

此外,如果他們很好,他們很可能會與許多雇主進行面試。猜猜他們將優先考慮哪些?那些甚至在與工程經理通電話之前都不要求完成項目的人。

還有is竊的問題。當然,可以在面對面採訪中找到他們,但是到那時,您已經浪費了(大概)高薪人員去公司採訪該人的時間。

我目前的公司做了很好,這就是我會在您的位置上走下去的路線。給他們一個小任務,大概只需要90-120分鐘即可完成,並告訴他們在評論中說明為什麼他們選擇了解決問題的方法。這是可以在一夜之內完成的工作,並且可以使您深入了解他們的想法。

我現在可以告訴您,如果我得到一個需要花費8個小時以上的時間才能完成的項目,我告訴他們,謝謝您,但我對此並不感興趣。我有一份好工作和生活。如果經理認為這是一個問題,那就告訴我他們不會在意我的工作/生活平衡(特別是如果他們不在意之前)。除谷歌,蘋果或Facebook之外,沒有其他公司可以做到這一點。

評論不作進一步討論;此對話已[移至聊天](http://chat.stackexchange.com/rooms/35225/discussion-on-answer-by-lawrence-aiello-a-programming-task-is-scaring-off-candid) 。
考慮到我們採訪的開發人員的數量,@Aron支付他們進行測試是不經濟的。同時,我願意就如何改進流程提出建議。我唯一擔心的是,如果我沒有這樣做,我們最終會招到不好的職位,因為事實證明那傢伙不能參加計劃(確實發生了),從長遠來看,這將使我們付出更多的代價。
與這裡的其他人不同意+1,希望我能多加一些,因為“我認為編程練習很失敗”。您可以通過提出編程挑戰來回過頭來,但是仍然可以。我同意您的意見,他們很荒謬,根本不工作,因為我與許多顯然通過了這些測試但不稱職的人一起工作。實際上,我旁邊工作的許多人並沒有做他們的實際工作,而是坐在那裡學習面試類型的問題,以便他們可以將其應用到工作中的其他編程工作中。這個過程需要消亡。
Google和Facebook都*高度*優化了招聘程序,並且都不使用家庭測試作為上述程序的一部分。
這一定是在要求者澄清測試時間之前寫的,因為這是一個可怕的答案。
@stannius這是不正確的。 Facebook *在面試過程中確實有一個家庭項目。我拿了
“給他們一個可能只需要90-120分鐘的小任務”,按照您自己的描述,這似乎比需要30至60分鐘的編程任務(這是他們目前所要執行的任務)更糟糕。
Google還提供在家(在線和定時)編程評估。雖然並不需要很長時間。
好吧,這是一個新流程(在去年),它沒有用於西雅圖地區辦事處,或者他們沒有讓所有人都這樣做。
@stannius-根據我的經驗,至少對於Google,您對帶回家測試部分是正確的。但是,他們_會_使您在面試中編寫代碼。反复。通常在白板上,在幾個不同的面試官(他們都是開發團隊的成員)面前。此外,答案不是說“帶回家練習是半身像”,而是說“編程練習是半身像”。這是非常不同的。 Google和Facebook在採訪程序員時都絕對使用編程練習。答案的這一部分是“完全錯誤”。
@aroth我指的是在這種情況下的實操編程練習,而不是面試中在白板上進行的練習。我希望無論我採訪哪個公司。
還記得那些在高中根本不聰明的人嗎?是的,這些人將以某種形式與您合作。他們可以是程序員,醫生,律師,水管工,教授,您可以這麼說-愚蠢的人從事這項工作。問題是要填補的工作太多,而沒有足夠的敬業,勤奮,聰明的人來填補。因此,您會在每種工作的每個領域都得到騙子,作弊者和棕色鼻子。我聽說過程序員甚至根本無法打開計算機的恐怖故事。沒辦法戰鬥。
90-120分鐘?如果您告訴我您希望我花* 2個小時*做運動作為第一次面試的一部分,那麼您最好希望您標榜的薪水數字明顯高於競爭對手,因為否則我會離開,其他人也都離開了。t失業。只有絕望的人會接受這種時間的浪費,並且以不公平為代價,他們往往不是最好的程序員。
因此,您不會僱用全職工作並且從事其他個人或開源項目的人員嗎?您不會讓任何人為您的公司花費他們編程帶寬的100%。我希望他們能幫助孩子做作業。
sevensevens
2016-02-03 01:58:13 UTC
view on stackexchange narkive permalink

以我的經驗,帶薪項目不會淘汰劣質的編碼員,並且可能使優秀的編碼員找到工作,而他們無需跳槽與招聘經理交談。 p strong>

這樣思考。優秀的編碼人員可以輕鬆獲得電話和麵試機會。他們必須跳過的每一個額外的障礙將意味著他們將採取更輕鬆的路線和麵試(並被其他願意為此付出同樣高薪的人聘用)。 如果您讓人們跳過籃球,請確保他們從一開始就覺得值得一試。

一個糟糕的開發人員可能會花很長時間。您不會看到它們花了4倍的時間。您只會看到完成的測試。您也不會看到他們通過 if 語句前往Google或他們的伙伴尋求幫助。

我的上一家公司這樣做了,我們招募的絕大多數人面試失敗嘶嘶聲(大約65%)。我認為發生這種情況的原因是,我們無意中淘汰了不需要其他公司採訪的好忙人,同時又在不好的編碼員面前晃來晃去。

我要做什麼認為我們應該做些

我們應該做一個15-20分鐘的Skype面試,而不是給人們花15-20分鐘才能完成作業的實地作業,就像Fizz嗡嗡聲一樣。這將花費相同的時間,但是我可能會在兩個小時的面對面採訪之前淘汰那些糟糕的程序員。

FYI->這是一個非常詳細的有關Fizz嗡嗡聲和一般面試習慣的文章。

曾經有人要求我在hackerearth.com上完成編程任務,並要求我輸入個人信息進行註冊。立即關閉。而且,編程任務本身並不是能力的可靠指標。我同意這樣的實幹任務並不值得。
我曾經唯一一次完成了一項帶回家的編程任務,因為我沒有1天的周轉時間,招聘經理就把我困住了。在那之後,我決定是否再次獲得實幹任務,以表示我對這份工作不感興趣。
僅時間不足以正確完成任務。
Fizz嗡嗡聲面試編碼實踐的問題是您的數字被3和5整除。這是我想到的第一件事,在這種情況下,您希望如何排序。除非您只想要數據。
@Chad有什麼要訂購? http://coliru.stacked-crooked.com/a/bab3aa8f4ea44fcd
@TechnikEmpire的數字都可以被3和5整除。因此,一次迭代就輸出了Fizz和Buzz。兩者之一先出現的順序取決於您對除數的訂購方式,例如3個優先或5個優先。我在您的代碼示例中看到的內容,您做的完全一樣。
@Chad哦,好的,就是不知道您的意思。
@TechnikEmpire順便說一句,我只是在老學校做的。 http://coliru.stacked-crooked.com/a/31dc2f5cbbc0e76b
@TechnikEmpire非常喜歡閱讀您的代碼,很有趣地看到C ++的發展。
@Chad不錯。這對我來說是陌生的,因為我一生中從未使用過printf。大聲笑
請告訴我更多有關這些`if`語句的信息-是那些引起速激肽攻擊的語句嗎?
@CodeJockey是的,如果陳述是邪惡的,那麼康芒人要跟上隨機的人和公司組成的10,000,000任意“標準”,以決定誰比下一個人更精明。 Geeze您未通過面試的考試,您一定是一個不好的程序員(這顯然很諷刺)。
如果我可以選擇語言(沒有數學方法,語句或技術上甚至是循環的情況),則是我最喜歡的FizzBu​​zz方式:`filter fb {@($ _,“ Fizz”,“ Buzz”,“ FizzBu​​zz”)[0+ (@(2)[$ _- match'[^ 05] $'])+(@(1)[$ _- notmatch'(^([369] [0369]?| [258] [147] | [ 147] [258]))$'])]} 1..100 | fb`
@CodeJockey:我想請您寫一個我能理解的版本。
@gnasher729-這就是為什麼您要么不給我選擇語言,要么要求我(如果有時間的話)解釋我的示例如何工作的原因。在我上面的示例(PowerShell)中,您使用正則表達式來代替數學(即,不僅僅是簡單的加法和乘法)。您可以使用數組索引自動選擇來代替if語句;而不是循環,而是使用傳遞到過濾器中的一系列整數。
@gnasher729-如果您有興趣,這是我添加到Rosetta Code中的更具可讀性的版本:http://rosettacode.org/wiki/FizzBuzz#Filter.2C_Piping.2C_Regex_Matching.2C_Array_Auto-Selection
您已經用特別困難的白板編程問題解釋了我的整個問題。優秀的程序員不會費心研究它-他們已經開始接受報價了。雄心勃勃但平庸的程序員知道他們處於不利地位,因此會繼續學習。這種測試的最終結果-這是大多數採訪廢話的最終結果-是信號在噪聲中完全消失了。
-1
CPerkins
2016-02-03 04:03:10 UTC
view on stackexchange narkive permalink

從這個問題兩側的戰someone中有人看到的一種對比觀點。我懷疑此答案會吸引不贊成投票的人,但這是在該行業數十年來發展起來的高度知情的意見。因為我喜歡這樣做,所以我仍然每天都在“豐富的業餘時間”里以謀生和業餘愛好來編寫代碼,但是我還是聘用了數十名程序員的最終決策者,並幫助採訪和

勞倫斯(Lawrence)是正確的:招聘簡直不准確。但是隨著時間的流逝,我們會變得越來越好。除了面對面的聊天,瑣事問題之外,簡短的現場編程挑戰也越來越重要:不僅是技巧,而且是態度。

請注意,我說的“短” 。參加面試時,我們會為考生提供一台筆記本電腦,筆記本電腦安裝了正確安裝的Eclipse(我們選擇的IDE)。正確設置意味著他們可以訪問jdk來源,但沒有互聯網,並且要求他們在測試期間不要使用手機。從“ FizzBu​​zz”開始,他們花了一個小時來解決從零到五個問題的任何問題,從復雜性到簡單的多線程生產者/多消費者係統的數量級。

沒人能在一個小時內解決所有這五個問題,而且我不希望有人能做到(我可以在一小時內舒適地編寫五個問題的解決方案,但我當然已經看到了問題並解決了以前,所以我不是一個公平的測試)。

順便說一句,我們表面上經驗豐富的程序員失敗使FizzBu​​zz正確。我再說一遍:我們有少數候選人未能正確完成FizzBu​​zz。通常,不遵循說明,但閱讀規範是成為開發人員的重要組成部分。

我們讓他們在這里辦公時編寫代碼,而不是出於多種原因給他們做作業,部分原因是有作弊的風險,部分原因是給每位候選人一個平等的機會來解決問題。我們還將問題移入和移出挑戰集,然後與候選人討論解決方案。

我對這個問題感到非常強烈。我從未見過有候選人因為我們的編程測試而拒絕職位或退出面試過程。但這可能受到以下事實影響的:我們告訴為我們服務的招聘人員該過程包括現場編程。因此,我們可能只是看不到那些認為被要求編寫一個小時的代碼是“無償工作”的候選人。如果是這樣,那就很好。如果他們認為一個小時的編碼比一個小時的瑣事問題更像是“工作”,或者他們對測試問題的答案可以產生有用的東西,那麼我不需要他們的態度。

我們確實曾經有一位候選人抱怨測試,因為他認為自己太老了,無法證明自己(這不是猜測,他是這樣說的)。他在挑戰方面表現出色,並且擁有我們想要的所有經驗。但是他是一個糟糕的僱員:他顯然還以為自己太老了,無法指導或學習,最終我們不得不讓他離開。

我要做的一件事多年來我們一直認為,做任何測試的公司不太可能讓我成為一名員工。就像他們對諸如其用於源代碼控制等問題的回答一樣,公司的測試是否可以告訴我很多有關他們在軟件開發業務方面的能力的信息。

那麼,應該做什麼?您應該為組織做些什麼,但我的建議是繼續測試,但應在現場進行,作為面試。事先告訴他們這是過程的一部分,並在他們與高層管理人員會面之前進行(但是您應該首先與他們會面,以使他們放心)。確實:如果他們失敗了,請跳過對高層管理人員的採訪。不用擔心在網上候選人或海報的受歡迎程度。 糟糕的聘用成本比延遲直到您做出好的聘用的成本還要糟糕

我不希望投票失敗。您完全同意其他答案,主張縮短現場測試時間而反對延長家庭測試時間。我個人不同意的一件事是“禁止上網”條款。對於開發人員來說,互聯網是他們交易的基本工具之一-拿走互聯網可以向您展示他們沒有互聯網的情況,這與99%的開發工作無關。
@Peter允許Internet訪問並查看它們的位置可能更好。他們會去StackOverflow檢查嗎?他們來這裡抱怨嗎? (當然,此類監視應明確告知程序員,並徵得他們的同意才能繼續避免爭議。)
坦白說,您的答案與其他答案/總體觀點完全沒有矛盾。 IMO在“自行完成任務以在這個位置上開槍”(OP當前流程)與“讓我們評估您的能力和對公司的適合程度”(您的建議)之間存在(巨大)差異。 。
在我目前的雇主那裡,我們做類似的事情,這與我會寫的答案最接近。我要添加的一件事(也許您可以添加OP的選項或註釋?):我們允許訪問Internet,並與與之一起工作的團隊成員進行“成對編碼”練習作為測試。編碼夥伴可以幫助解釋目標,並在那裡回答問題,並在必要時幫助解決問題-即就像它們在實踐中如何協同工作。我們不僅可以評估技術技能,而且可以很好地了解候選人與他人的合作方式。
@NeilSlater我全力支持現場方法,但是如果應聘者在國外進行技術實習怎麼辦?我正在面試一位正好在香港這種情況下的候選人,他希望在結束英國後返回英國。
@bobo2000:如果應聘者是特殊情況,那麼您需要弄清楚該怎麼做。對於您的示例,我可能會在視頻會議上運行結對編程測試,並為此花一點時間。也許這是進行不同的Workplace SE問答的基礎?無論哪種方式,我都不認為擔心所有可能出現的特殊情況都應該阻止您採用經過深思熟慮的標準方法,並且假定面試的一部分是在工作地點現場進行是很正常的。
同意@Peter。如果我正在接受您的採訪,那麼“沒有互聯網”的事情會讓我覺得您更珍惜記住API而不是理解概念,這會使我在接受您公司的工作之前三思而後行。否則,我通常都同意答案,最後一句話尤其正確。
@reirab我不清楚。 “沒有互聯網”並不意味著“記住api”。任何體面的想法(我們使用eclipse)都會將您鏈接到jdk源。我在Windows上,因此“打開聲明”已綁定到F3鍵。我**很多**。我對沒有的候選人感到失望。 “我剛剛編輯了答案,以明確候選人可以使用jdk源”。
@CPerkins堆棧溢出?也許是因為我不是Java的人,但聽說沒有互聯網訪問權限對我來說將是一個重大的危險信號。我不在乎浪費時間重塑車輪。除非任務是如此基本(即fizzbuzz)以至於任何程序員都可以立即解決它。我想您希望看到我*解決問題*,IDE只是為此所需的眾多工具中的一種。
@JaredSmith是的,這是我,為什麼?我們自然也會進行語言設計,逐步完成之前的工作。但這就是我們的方式。我很高興知道這可能會使我們失去一些其他不錯的候選人。 “禁止上網”是故意的。這是關於候選人根據自己的知識和技能“解決”問題的能力,並在必要時得到jdk消息來源的支持,以提醒我們(我也是)有關api的詳細信息,而不是谷歌搜索別人的解決方案或詢問朋友幫忙。
明確表示+1,“多年來我一直在做的事情之一就是,任何未經測試的公司都不太可能讓我成為一名員工。”一家只關心我的代碼能力的公司比只相信我的技能並喜歡我的個性的公司更有可能獲得我的投票。這些也很重要,但不是唯一的。
@Peter我同意您的看法,但僅適用於較困難的練習。沒有人需要互聯網來解決FizzBuzz或其他瑣碎的練習,但是您不希望失去一個優秀的程序員,只是因為他們不記得他們一次又一次地使用過的晦澀語法,並且可以在互聯網上找到它們。五秒鐘。谷歌搜索與編碼本身一樣,是一種開發技能-我知道對此非常糟糕的人。他們花了幾個小時尋找可以在幾分鐘內找到正確關鍵詞的東西。
Peter
2016-02-03 02:45:46 UTC
view on stackexchange narkive permalink

為什麼不進行家庭測試?

即使我們忽略作弊的可能性,反向過濾器也會導致誠實的應聘者避免進行在家進行編碼測試的公司,at的價值家庭編碼測試受到限制。

如果是高級職位,則具有人際交往能力的高級開發人員將能夠在不到10分鐘的時間內告訴對方手機端任何都不錯,或者只是在整理東西。我們不會知道到底有多好,但我們會知道的甚至比每個可能的家用編碼測試所告訴我們的要多。

如果用於初級職位 ,我們對技術專業知識的期望並不高。我們正在尋找熱情,學習意願和才華-在家中的編碼測試中都找不到這些。大三學生可以忽略的事情太多了。如果我們僱用他們,則無論如何都需要培訓他們。

如何進行測試?

作為過濾器,只需給他們10分鐘的時間來解決 FizzBu​​zz在第一輪採訪中現場變種,或者,如果您被優秀的簡歷所淹沒,並且需要另一個過濾器,請在第一輪真正採訪之前在Skype上進行修改。

一旦他們通過了過濾器,您需要更多地了解候選人的編碼能力。我建議花30分鐘或最多2個小時的時間進行配對編程或代碼審查-實際的實際工作,而不是練習。與其他夥伴重複1-2次。結對編程和代碼審查的優點是開發人員已經具有足夠的知識來進行貢獻。

不必擔心測試對於每個聘用人員都是不同的-聘用過程的目標不是要找到在幾次可衡量和可重複的測試中得分最高的人。 目標是僱用一個能勝任這項工作的人。

如果您認為有人可以在10分鐘之內告訴電話另一端的人有什麼好處,那麼您就在自欺欺人。
熱情和學習意願?現有的知識或學習能力如何?
@djechlin很高興擁有,但對少年而言並不重要。當然,如果他們聲稱熱衷於編碼並願意學習,卻一無所知,那麼我會質疑他們的熱情。我很幸運,從未見過一個願意但又不會學習的人。
大聲笑,因此您的標準之所以有效,是因為當您看到自己喜歡或不喜歡的候選人時,您可以對其進行調整以適應您的任何需求。為什麼不僅僅選擇“具有火花”或“缺乏火花”,它就更簡單了。
順便說一句,教高級數學課,我*肯定*遇到了願意但沒有能力。
@djechlin您有一個要點。通過包括“人才”進行調整。
@Dunk我不同意。我要花10分鐘才能決定他們是否“有什麼好處”。但是要弄清它們是否“足夠好”還需要更長的時間。面試“回合”的目的是逐步淘汰候選人。 OP所做的就是創建一個等同於“追求價值”的任務。
老實說,我們採訪過的許多大三學生都完成了1或2個技術實習,這就是我們測試他們的原因。如果您是初級用戶,並且從未使用過MVC框架,或者從未創建過完成API集成的程序,那麼我不確定是否要把它們引入。從頭開始培訓某人的時間和成本並不能使這筆生意值得。
+“與高級開發人員通話10分鐘”部分+1000。如果您想知道某個開發人員是否了解他的知識,可以將其與您信任的另一位開發人員聯繫,他們會比任何測試更快地進行整理。如果您堅持要進行*簡短的面對面*測試是可以的(但*遠遠*是不必要的),但是剔除不良候選人的更可靠的方法是由同伴實際與他們互動。
我不得不滾動太遠才能找到這個!
阿倫,好吧,如果您確實可以在10分鐘內淘汰那些“一切都好”的人,那麼您在浪費開發者的時間。公司會向那些除了優秀的開發人員之外什麼都吃不飽的人付出巨大的代價。哎呀,如果您真的想繼續進行開發,那麼您可能仍會每周有一天對開發人員進行一次財富審查,您將有足夠的資金來為自己的開發公司提供資金並做自己感興趣的事情。特別是,由於您的公司只會僱用“優秀”開發人員。
關於:“不是基於實際代碼的練習,而是實際的實際工作”,這需要一些警告/解釋。如果您的“面試過程”涉及應聘者從事真實工作,可能會在不給他們薪水的情況下使您的公司受益,這將使您在許多國家/地區陷入法律麻煩。不管您認為金額太微不足道,還是您不會使用該代碼審查都沒關係-這是實際工作,許多法規要求候選人獲得報酬(或者甚至被認為是錄用的,儘管是暫時的) 。
我已經有10年的工作經驗,並且我收到了一份合同角色測試,這將使我花2-3天的時間才能正常工作,不用說我輕聲笑了並且拒絕了。
您可能不會在10分鐘內識別出(非常好)那些,但您應該能夠識別出(非常)不好的那些
Kevin Wells
2016-02-03 04:42:48 UTC
view on stackexchange narkive permalink

這是我現有的答案中未涵蓋的另一點(我認為總體上覆蓋了該主題)。我將仔細認真地研究一下人們實際上需要多長時間才能完成。我進行了四次面試,在此期間我要完成一次編程練習,每一次都以不同的方式進行(每種都有其優點和缺點)。四個中的兩個(下面的數字3和4)花費的時間比他們說的要長得多,並且由於涉及的難度很高,我都放棄了。我已經在下面對其進行了描述,並從我的角度對它們進行了從最好到最壞的排名。讓我解決與之相關的三個相對簡短的問題(查找並修復他們有意添加的錯誤,向信息表中添加新字段,等等)。他們給了我一個小時的時間去做,一個小時後,他們討論了我的解決方案以及如何解決這些問題。這使他們對作為程序員的我有了更多的了解,同時通過縮短時間和重點來尊重我的時間。

  • 在技術面試期間,他們讓我解決了在白板上開發過程中遇到的問題同時能夠跳出想法。這是最短的選擇,同時仍然讓他們有機會了解我如何解決問題以及我實際可以做多少必要的工作。
  • 在技術面試期間(對於初級Ruby on Rails Web開發職位),他們要求我從頭開始構建Web應用程序,該應用程序可以導航到網站,填寫顯示的多種表單,從結果頁面中抓取數據,並將其呈現給用戶。他們說,這應該是一個快速的練習,它可能是針對高級Web開發人員的,但是當時只有一年的專業經驗,我花了四個小時試圖讓所有這些工作起來,然後再放棄回家(所有採訪者都在我離開前幾個小時,因為這是一個下午的採訪,他們說我應該在完成後保存完成的課程)。這是對所列職位的一個荒謬的分配,使他們對我的編碼能力一無所知,在我看來,他們只是想從交易中獲得免費工作。不用說我那天離開時甚至都不想要這份工作。
  • 在接受技術面試之前,他們給了我一個任務,創建一個可以利用API的Web應用程序。他們的公司曾經“做一些有趣的事情”。聽起來確實如此廣泛。這要求我在嘗試創建應用程序之前執行以下操作:創建API的開發人員帳戶,下載API開發工具包,創建可公共訪問的Web應用程序(使用另一個開發人員帳戶),學習API並創建數據使用API​​進行訪問的存儲庫。當然,這只是花了幾個小時才開始使用,在開始使用Web應用程序本身後不久,我接受了一次不同的工作面試,不久之後又找到了工作,因此我中止了任務分配工作。作為面試過程的一部分,這是一件瘋狂的事情,因為谁愿意花所有的時間和精力來開發程序,只是在面試過程中進行的機會很小?
  • ol>

    為了更直接地回答您的問題,您應該進行編程練習嗎?是的,但是請確保它適合於測試您真正關心的內容,而不需要為受訪者進行大量繁瑣的工作。您是否想了解他們的算法思維?給他們一個算法問題。您想了解他們的編碼風格嗎?給他們一個編碼問題。您想了解他們的開發過程嗎?在他們解決問題時與他們討論他們的過程。

    面試官放棄並回家了! FFS,您還是不想在那里工作。他們離開後我已經走了2分鐘。
    他們沒有放棄,只是下班回家。一旦他們給我分配了任務,他們就讓我留給我自己的設備來解決問題,並且因為那是一個下午的面試,而且我在這個問題上工作了四個小時,所以他們最終回家了。到我離開時,有幾個員工還在那兒,我意識到當這些傢伙向辦公室點晚餐時,該丟下毛巾了
    NotMe
    2016-02-04 03:14:44 UTC
    view on stackexchange narkive permalink

    讓我開始:

    • 我接受了在家中完成15分鐘到10個小時不等的測試。
    • 我得到了在線測試通過。
    • 我一直在負責寫出答案FizzBu​​zz和白板等時尚上網測試。
    • 有人問我方形井蓋還是圓形井蓋。

    在短,我已經經歷了幾乎所有的不同的方式開發人員喜歡把手採訪。老實說-我嚴重懷疑面試我的絕大多數人甚至不了解每種測試的潛在結果,最終只是僱用人們來決定他們是否“喜歡”這些測試。

    之前您甚至要張貼一份工作清單,您應該坐下來仔細檢查您要雇用的人,而“開發人員”不是一個答案,至少,這不是一個正確的答案。一個很好的答案就是“抵押領域專家”。

    與可以找到您所從事的業務並可以利用該知識的人相比,查找可以編寫一些代碼或在Google中搜索如何應用特定模式的人是微不足道的。換句話說,如果我正在僱用一家抵押文件公司,那我會選擇可以在15分鐘內固定期限和ARM貸款之間差異的人,而不是可以在2分鐘內編寫氣泡排序算法的人。原因是“正常”的商人提出了各種各樣的要求,而領域專家可以更輕鬆地了解所需的內容,而一個一無所知的人會很高興地添加無用的東西或使應用程序真正變壞。

    回到問題,只問“通過/不通過”問題

    此人可以告訴您虛擬方法與抽象方法之間的區別是否很關鍵?可能是,通常不是。我會押注很大一部分開發人員,他們甚至都不知道什麼時候使用這些關鍵字,但是它們不是您的超級明星,他們是沒有視覺設計師就無法編寫代碼的行列。

    是確定何時打開查詢以進行sql注入至關重要?擔任高級職位-絕對;小一號通過代碼審查,這很容易訓練和處理。因此,您想要sr的原因。知道它的內在和外在-這樣他們就可以訓練初級人員。

    他們知道 Int32 數據類型的確切最大值是否很關鍵?通常不是這樣-瑣碎的知識水平就是google的用途;但也許您的要求是在受內存限制的設備上編碼-在這種情況下:絕對。

    我採訪並僱用開發人員。我不發送家庭測試-尋求朋友幫助太容易了。我不使用在線測試網站-鑑於計分方式必須自動化,因此對遊戲來說微不足道。我不要求考生寫出有關Fizzbuzz的答案-幾乎每個人都已經看到了該測試,應該心生知道答案。去年其他所有人都進入了這個領域,無論如何都是小。我也不會問瑣事問題-能夠背誦答案通常只是意味著您之前已經聽過這個問題。

    我對人的採訪方式:

    • 我請他們描述一個或兩個以上的項目。我現在關心的只是讓他們感到舒適並讓他們說話。這是走不走的路,因為如果我聽不懂他們在說什麼,那麼我就無法與他們合作。

    • 我問他們一些我需要他們使用的技術方面的具體問題。如果是SQL Server,我將詢問有關聯接的更新。如果是HTML,我將為他們提供一個帶有10個行的html文件以及幾個CSS類,並詢問他們輸出的內容。對於那些在那些領域有經驗的人來說,這些問題是微不足道的,他們很快就清除了假裝。

    • 如果我正在尋找高級開發人員,那麼我會問領域知識問題。不是邊緣情況,而是核心原則。如果我需要您領導會計後端項目,那麼您最好掌握基本的會計原理。

    • 如果我正在尋找一名Jr. dev,那麼我會詢問有關寵物項目的問題。我只想知道所使用的技術類型。這應該使您了解他們真正想要做什麼。換句話說,C#開發人員不太可能使用php進行寵物項目。老實說,我對JR開發人員的期望並不高,除非可以接受培訓。如果他們正在積極開展寵物項目,那麼我可以培訓他們。如果他們是那種需要人們告訴他們做什麼的人,那麼這些人可以在更大的公司工作。

    我不會在這些問題上提出這些問題。飛,潛在的答案被提前考慮,並適合通過/不通過模式。如果一個問題不適合,那麼就不相關了。我還會問每位候選人相同的候選人,除非我100%確信我不僱用他們,否則我將停止面試。

    如果出於某些原因您仍然堅持要寄回家測試-確保在合理的時間內成功完成測試所需的技能實際上就是您所關心的技能。

    我有一家公司給我進行了一次家庭測試,其中涉及編寫自定義加密服務提供商。我完成了測試,因為它有些有趣。他們僱用了我。除了加幾個數字外,我在任何時候都沒有做過任何與安全性,加密或什至數學相關的遠程操作。我想知道他們有多少人參加了該考試?

    感謝您的答复,很好的回答。我們有類似的方法減去實地測試。
    一個好的開發人員可以比一個好的領域專家更好地學習編程更好地掌握領域知識。您不必要地縮小了招聘人數,您的公司將因此而受苦。
    @DavidThornley:您和我可能對於優秀,優秀和平庸的開發人員有不同的定義。在我的世界中,出色的開發人員會提出正確的問題並迅速掌握領域知識。一個好的開發人員通常可以很好地執行所告訴的內容,但不會對此提出明智的問題。一個平庸的人根本沒有問題,經常比平時更重做他們的工作。不幸的是,要找到一個優秀的開發人員比找到已經知道該領域的優秀開發人員要困難得多。
    “ Int32數據類型的確切最大值” ... ermmm,它是INT_MAX,不是嗎?
    Wayne Werner
    2016-02-03 09:48:05 UTC
    view on stackexchange narkive permalink

    我曾經堅信編碼測試和白板編碼,但是我開始意識到它們幾乎沒有用,因為

    無論如何,您要測試什麼?

    白板測試或簡短的編程測試可以使您對個人有所了解,但實際上並沒有那麼多。除非您計劃讓別人花時間在白板上或FizzBu​​zz風格的代碼上編寫代碼。

    想要是什麼?

    您想要的是:

    • 熱情的
    • 願意學習
    • 能夠解決問題*
    • 合理的技術
    • 為了幫助您的團隊改進

    * 注意,大多數開發人員通過知道要在Google中搜索哪些術語來解決他們的問題。 sub>

    您要雇用的最後一個人是不適合您團隊的人,因為他們會拖下去。

    如何測試對於這些?

    • 向他們詢問他們喜歡的項目。如果他們似乎不願談論此事,請嘗試表達溫柔的懷疑,例如“你不能做X,可以嗎?”如果他們熱衷於此,他們會糾正您的。這也將幫助您了解他們是否是技術人員。
    • 向他們詢問他們最近學到的東西。或者他們從工作中所學到的東西很有趣。
    • 向他們詢問上次(或一次)他們缺少知識的時間。他們如何獲得所需的信息?他們去找隊友了嗎?他們是否在互聯網上搜索?
    • 詢問他們是否希望他們當前/最後的團隊有所改善。他們是否需要更好的提交消息?更多代碼評論?更多測試?更高的自動化水平?
    • 問他們什麼技術激發了他們,為什麼。

    如果您有一個精通此對話的人,這將是世界上最容易判斷這個人是否最糟糕的事情。一個例子:我們有一個孩子進來面試-他說在1到10的範圍內,他的Java技能就像7到8。我不認為他甚至不知道Java被編譯為jar文件,後來被JVM編譯為機器語言。我可能將自己的排名定為2或3,並且知道這一點。

    我們的CTO在前一天的採訪中實際上向他提出了同樣的問題,而我們的CTO打電話給他,並解釋說他不可能是7-8。

    我們的CTO還向他詢問了他最喜歡的項目,該項目與手持掃描儀有關。但是他無法解釋他們的工作方式或他們使用輪詢來防止繁忙等待的事實。他無法解釋任何技術問題。

    那個人沒有被雇用。

    弄清楚您要尋找的屬性的種類,然後弄清楚如何測試那些

    ,但是我真的需要看看她的編碼方式!

    好的,很好-但是除非她要要在筒倉中進行編碼,最好的辦法是僱用她作為一個小型且定義明確的項目的承包商。也許您正在添加從FTP下載某些文件,然後將它們轉儲到數據庫中的功能。很簡單,不需要太多/任何領域的知識。

    讓您的候選人與一兩個現有員工一起工作,並為他們的時間付費。您將確切了解它們如何工作,以及它們與團隊的合作程度。他們溝通良好嗎?他們容易感到沮喪嗎?他們堅持不懈嗎?

    可以僱用 來僱用更好的員工...但是編程競賽可能不是其中之一。

    您提出了一些好的要點,但是“最好的辦法是將她僱用為一個小型,定義明確的項目的承包商”的缺點是,大多數候選人更喜歡全職工作,而不是承包合同。如果他們有多個提議,他們將採取更“安全”的選擇。
    @RQDQ表示同意。我認為這是面試中最無效的方式...但是它是使用代碼面試中最有效的形式。
    舊的“購買前請嘗試”。儘管整個行業都在這樣發展,我的下一個職位很可能是一份3到6個月的聘用合同,但我對此感到恐懼。我們什麼時候停止做功課,什麼時候變得害怕解僱任何人?
    @JoshuaDrake失業,那時是;)
    Dan
    2016-02-03 00:17:48 UTC
    view on stackexchange narkive permalink

    從一個人的角度來看,我通常會避免花費超過1個小時來編碼的地方。有一次我去了這個需要花近三天時間進行Java編碼項目的地方。我做了所有的事情,這傢伙甚至對此印象深刻,但是他們告訴我,在第二次面試階段之後他們僱用了其他人。因此,在那之後,如果我來一家公司,我將忽略/通過任何需要幾個小時以上才能完成的項目。我的時間和他們的時間一樣寶貴,我寧願不花時間在那些無法使我走到哪裡的事情上。我會盡量減少時間,以至於最多只花一個小時,但同時又表現出對編碼的理解,並且可能會在上面加上“例如,請明天由COB完成”之類的截止日期。他們仍然可以在網上“複製並粘貼”某些內容,但是由於過於具體而不是您在網上閱讀的內容而變得很難。

    您可能需要一份完整的簡歷,參考資料以及能夠在簡短的測試中完成的工作。堅持尋找工作,祝您好運。
    幾年前,亞馬遜與我聯繫,要求我進行3小時的測試,其中包含3個不同的謎題,以找出AND代碼。我把所有3個都存根了,但只完成了一個讓我滿意。這很有趣,但是缺乏任何反饋都令人失望。一年後,我又與他們進行了一次編程訪談,但是這次團隊的一個成員想出了一個難題,我們將其編碼在一起。我沒有找到工作,但是在90分鐘的配對編程中,我學到的知識與在傳統學校學期的半個學期中學到的一樣多。
    唯一一次遇到“帶回家”編程問題的公司在提交解決方案後一直沒有回應。一周後,我與他們取得了聯繫,經理說他得到了,但是還沒有時間仔細研究。他們從未回電,我也沒有回電。
    _“這個人甚至對它印象深刻,但他們告訴我他們僱用了其他人”。他們有告訴你為什麼嗎?
    @DaveisNotThatGuy就像OP的測試一樣。進行測試只是為了獲得面對面的採訪。它不是用來僱用他們的,而只是為了確保他們在考慮他們之前就具備知識。他們給我留下了深刻的印象,我完成了作業並獲得了正確的結果。我想他們對我的採訪沒有印象。
    因此,即使他們後來發現您是一名優秀的編碼員,但他們在離開初始面試之前就知道您屬於免僱用專欄。您如何以不同的方式完成編碼測試以彌補這一點並進入下一輪?對您來說似乎不公平。
    silencedmessage
    2016-02-03 00:48:25 UTC
    view on stackexchange narkive permalink

    正如其他人所指出的那樣,某些開發人員可能需要進行1-2個小時的編程練習才能申請工作。更好的方法是舉行白板會議,候選人在面試過程中在白板上解決問題。這使您有機會進行面對面的採訪,同時確保他們掌握技術知識。一個典型的例子是 FizzBu​​zz。這樣一來,您不僅可以查看他們的想法,還可以知道他們至少可以編程,而無需使用Google搜索循環。

    真的有人失敗了FizzBu​​zz嗎?
    @PatriciaShanahan:是的,一直以來,您都會對質量範圍感到驚訝。開發人員需求旺盛的一個副作用是,許多人都想成為一家人,即使他們還沒有準備好或不夠好,他們可能也會說服自己,他們可以在工作中學習。體面的短期技術測試確實確實有助於防止意外僱用可以講話但不能在實踐中講話的人,這種情況非常普遍,您需要*某種*面試技巧來過濾他們。
    程序員SE中討論了FizzBu​​zz的有用性:http://programmers.stackexchange.com/questions/15623/fizzbuzz-really
    這對我們來說真的很好。在一次良好的面試中,整個團隊最終圍繞白板與候選人一起設計解決方案。 =)
    @NeilSlater-FizzBu​​zz最初問世時很棒。五年前進行討論時,它仍然是一個很好的鑑別器。現在還不太好。美國教育擅長的一件事是教孩子們如何在標準化考試中取得優異的成績。 FizzBu​​zz(以及類似的東西)現在已經降至標準化測試的狀態。
    @DavidHammen:有趣。但是,您可以將“ FizzBu​​zz測試”重新定義為“與FizzBu​​zz類似的任何簡單編碼挑戰”。提出類似的問題並不難。
    @PatriciaShanahan我目前的位置已經進行了2次面試。 FizzBu​​zz成功為0/2。
    @NeilSlater現在很多人也知道FizzBu​​zz。請注意,我說“一個典型的例子是...”,我無意暗示FizzBu​​zz是白板測試的最終目標,但是總體思路仍然相同。給應聘者一個要解決的瑣碎問題,並觀察他們如何解決。
    @NeilSlater我同意**如果**我們仍然沒有看到候選人**失敗** FizzBu​​zz。就是說,我們不是孤立地做FizzBu​​zz,如果他們只是寫一個沒有錯誤或討論的基本實現,我們要求他們以不同的方式實現它。後續操作傾向於顯示那些了解實際情況而不是記住給定實現的人。後續行動還將檢查一些人機交互技巧。
    @PatriciaShanahan:我很確定他們不會理解FizzBu​​zz,但要理解要求。例如,當需求要求僅打印文本(例如1、2,Fizz,4)時,同時打印數字和文本(例如1、2、3Fizz,4,...)。或者,如果它們更加嚴格(呵呵),僅附加Fizz和Buzz來創建FizzBu​​zz是不夠的,但是,例如,您應該對模15使用第三個字符串“ FizzBu​​zz”。
    FizzBu​​zz,如果在面試中被問到,我會以此為契機淘汰不良的面試官。它測試一件事“您知道模運算符是什麼”。我很少在生產代碼中使用的東西。多麼浪費時間。
    @AdrianThompsonPhillips這是我的最初印象,直到我看到擁有10年經驗的人不知道賦值運算符和相等運算符之間的區別,或者不知道如何編寫循環等。不幸的是,有些人的資格很低和令人印象深刻的候選人。
    -1
    user8365
    2016-02-02 22:10:37 UTC
    view on stackexchange narkive permalink

    不要擺脫編碼測試!!!

    如果您想成為一名程序員,則必須編寫能完成某些工作的代碼。回答瑣事問題並不那麼重要。談論過去的經驗是件好事,但這絕不能替代編寫代碼。

    盡一切努力吸引人們來參加測試並獲得這份工作。縮短時間或付款。週末帶他們來,這樣每個人都有時間觀察這個人的行動。

    這實際上取決於要有能夠解釋測試/觀察結果的人員。如果您不知道如何做,則可能需要雇用第三方來進行此篩選。僅獲得正確答案,僅是成功的一半。開發人員需要谷歌搜索技能,但還有很多其他功能。如果一個程序員可以更快地進行測試,那就是加分了。

    根據您的項目,您可能更喜歡流利的語言,以便開發人員可以立即開始高效地工作。另一方面,從長遠來看,當您選擇技能低下的程序員時,他們可能會陷入應用程序的關鍵功能,或者他們構建的結構很差,很難更改和維護,這可能會長期受苦。如果您有一個願意適應並學習所需語言的優秀程序員,您可能會更好。有許多開發人員絕對會避開某些堆棧,框架,語言,工具和操作系統。

    開發人員是至關重要的職位,填補這些職位非常昂貴。我了解您擔心會丟掉太多好人,但您只需要一個。不要ski。

    您的工作是確保您不會聘請不良的程序員,並且不正確評估每個應聘者。會犯錯誤。對沖您的賭注,不要做出最糟糕的選擇。
    這正是我們引入它的原因,那裡有太多的牛仔開發人員,他們的簡歷中有成千上萬種語言,但是當涉及到它時,就無法進行編碼。它也是公司中薪水最高的職位,所以我們不能承擔低薪的冒險……它的另一面挽救了我們的屁股幾次,我懷疑這幾個傢伙很虛弱我在第二輪中介紹了編碼測試後,接受技術面試的電話中的應聘者在最後一分鐘退出了工作應用程序。我只是想接受技術電話採訪而已。
    @bobo2000-您確實必須權衡測試時間與所在地區人才的可用性。不幸的是,如果這是程序員的市場,您可能不得不做出讓步。作為一種“ A / B”測試,您可以隨機選擇一些候選人,以給出較短版本的測試,並查看他們是否表現出更多的興趣。
    @bobo2000有些事情我不明白:在其他評論中,您說自己是應聘者中大多數是應屆畢業生,但是在這裡,您表示您正在尋找公司中薪水最高的職位。有些東西並沒有真正加起來。您能解釋一下這兩個事實如何融合嗎?
    編碼測試是一回事。花費8個小時以上才能完成的編碼測試完全是另一回事。
    @bobo2000“我給了一些候選人(主要是應屆畢業生)編程任務” +“這也是公司中“薪水最高的職位”” =這裡沒有加任何內容。
    我得到的感覺是,“新人”的畢業生不再因為資金薄弱的初創公司對浪漫和財富的承諾而下降。對他們有好處!我在上一次泡沫中做了兩次,這些垃圾堆都還沒有出現。
    -1
    正如他所說,對於@slebetman來說,對於資源有限的創業公司而言,防止僱用不良的編碼人員是他們開發產品的關鍵,這對於他們的成長至關重要。
    如果您依靠應屆畢業生來發展自己的業務,那麼您就會遇到問題。
    -1
    @DaveisNotThatGuy我曾擔任過許多前開發人員,我也同意你的觀點。許多人的問題是他們大三,不花錢參加培訓,而是希望他們像大四學生一樣編碼。現在我是管理層,只要他們有良好的工作基礎,我就有機會做不同的事情。
    問問自己,您真的將能夠培訓初級開發人員嗎?你有資格訓練初級嗎?你有時間嗎?您是否有其他經驗豐富的開發人員來執行此操作?您的培訓計劃是什麼?您對進步有什麼期望?您是否已經發布了構建代碼的標準,可以用來衡量新手?大多數創業公司都沒有這些。如果您不能回答以上任何一個問題,請不要雇用新人。你和他會後悔的。
    這就是為什麼我避免像瘟疫這樣的初創公司的原因,這沒有任何意義。 “僱一個可能不會做得很好,但是他們很便宜的人,所以你必須花更多的時間來清理他們。”
    不要在周末打電話給我面試。我把周末留給工作以外的其他事情(當然,除了緊縮時間)。如果值得給我進行監督的編程測試,那麼值得在正常時間進行監督。
    koan
    2016-02-03 23:30:56 UTC
    view on stackexchange narkive permalink

    我認為,您這裡遇到的問題不一定是編程測試。首先,您需要進行電話技術面試,然後是面對面採訪之前的家庭測試工作。聽起來您像在與候選人保持距離,直到最後一分鐘才見他們。您希望候選人在什麼時候決定他們為您工作?

    我認為您的招聘廣告與大多數人相似,因此著重於位置,薪水和(希望)的技能列表。候選人真的不知道他們將要從事的工作,不了解與環境或與之互動的人的任何事情。您尚未將工作賣給他們,在這裡您要讓他們兩次證明他們的技術能力,然後再向他們提出關於該工作的單個問題。

    我建議您嘗試更改技術的格式進行電話面談,時間為30-45分鐘,包括有關應聘者提出問題的大量機會,然後是15分鐘的技術性問題(作為屏幕討論),因此您仍然有機會選擇更好的申請人,而又不會太繁瑣。

    我還考慮將編程挑戰移到面試之前現場進行。對於候選人來說,這似乎更容易實現,可以激勵他們跟上過程,並從觀察挑戰中花費的真實時間中受益(我認為您可能會感到驚訝)。

    謝謝,如果候選人不在同一個國家又無法現場完成任務,該怎麼辦?我明天要面試一個在香港,我們在英國的候選人。在面對面採訪之後,我們期望候選人決定他們是否願意為我們工作。
    您必鬚根據情況調整採訪。不過,您必須將工作賣給候選人,而不僅僅是對他們進行測試。此外,整個過程是在你們兩個人之間建立信任的練習。您希望您的候選人確切地知道他們正在進入什麼領域。如果需要採取國際行動,那麼您可能需要花費更多的時間來了解彼此。
    如果某人無法親自訪問,請使用屏幕共享。
    @user70848編程挑戰的重點是確保應聘者能夠處理編程任務。屏幕共享是一種可怕的方式,因為您必須花一個小時觀看候選人,而且他們無疑會比實際行動更自覺。另一方面,如果這項工作需要成對編程,那麼這將是遠程完成編程的好方法。
    @koan是的,但是,如果您與某人相距半個世界,那麼,這是一種便宜得多,更簡單的解決方案,可以幫助雙方做出是否投資更多時間和精力的決定。如果您和當面再次見面,就好像您不能承擔其他編程任務一樣。
    aroth
    2016-02-04 10:58:35 UTC
    view on stackexchange narkive permalink

    您想聘請不能編程的程序員 嗎?

    我要冒險不要這樣做。

    僱用不能真正解決問題和編寫代碼的程序員是摧毀一家科技公司的好方法。如果您的招聘過程中不包括某種編程,那麼您將無法有效淘汰那些實際上無法編程的程序員(那裡有很多)測試。

    您是否願意因為每個人都在嘗試聘用程序員而降低標準?

    也許您是,但我認為您不應該這樣做。正如評論和答案中所指出的那樣,有些候選人不會在面試過程中費心進行編程練習,因為他們只是不需要找工作

    但是這些人真的是您想僱用的人嗎?那些選擇阻力最小的人,在短期內對他們最有利的事情是什麼,對公司沒有真正關心的完成一個簡單的編程工作?這些似乎不是積極的屬性,而且就長期保留這些候選人而言,他們也沒有提供足夠的信心(這對於科技公司也很重要,因為學習曲線往往很陡峭,而且成本很高。更換現有員工非常高)。

    因此,讓其他公司擁有甚至都不會打擾的程序員。無論如何,您都不想僱用他們。與他們不同,您有一個計劃。一個不基於“程序員就是程序員”謬論的人。您的重點應該放在質量和可持續性上,而不是人數。

    嚇跑候選人有問題嗎?

    通常不,只要有充分的理由將它們嚇跑即可。您不想僱用那些不願意做的人。一些說高需求的人“不會打擾”的人實際上可能以此為藉口掩蓋“編程能力不那麼好,因此需要整整一周的時間來完成一個小時的練習”情況。

    嚇跑那些候選人是。您想僱用有能力,有積極性的候選人。只要您也不會把那些嚇跑,那您就很好。

    每個不怕的候選人都是您必須嘗試評估的候選人。如果您不給技術候選人提供任何技術練習來進行評估,那將很難做到。

    如何改善招聘流程?

    檢查編程練習的內容。是否適合面試環境?

    您不希望要花幾天(甚至幾小時)才能完成的事情。您想要的是一種簡單的方法,可以清除那些根本無法編程的人,理想情況下,它具有足夠的細微差別,可以使那些真正編程的人能夠與眾不同。請記住您要完成的工作(淘汰不熟練且不認真的候選人),並確保您的內容針對該目標而量身定制。不要太過分。

    如果您已經有一些技術人員,則可以使用它們來進行運動檢查(和/或幫助設計)。

    ,還要考慮如何管理練習。如果您只是給他們一些文檔並說“在這裡,請在下個星期進行操作,然後通過電子郵件將其發送給我”,那可能只會起到最小的作用。

    更好的情況是您可以通過Web門戶網站進行練習,候選人可以簽入並開始練習,一旦他們開始,計時器就會從1小時開始倒計時。然後他們要么在那個小時之內提交東西,要么不提交。這樣可以減少開放性,更好地保留候選人的注意力,並提供清晰的截止日期/時間框,以便1)您不會整周等待著永遠不會出現的結果,以及2)不合格的候選人不會浪費他們一周的時間來嘗試完成編程練習。他們花了1個小時,他們解決了問題或沒有解決問題,並且您立即知道了結果。

    更好的是將他們帶到現場進行採訪。將他們介紹給您的開發團隊的成員。將它們與工作站一起關在一個房間裡。讓您的開發人員從一些一般/軟面試問題開始,然後他們可以與候選人配對編程以解決編程問題。這不僅可以告訴您候選人是否可以編碼,還可以告訴他們與您的團隊的合作程度。通過查看應聘者編寫的大量代碼,然後通過電子郵件將其發送給您,您的開發人員也應該能夠收集到很多您無法獲得的其他信息。

    底部行

    不,您不想擺脫編程練習。但是,您可能需要查看它以獲取適當的內容,以確保解決它的時間不會太長,並且還要查看如何將其適合您的總體面試過程。

    自我指導的家庭鍛煉可能不是最好的方法。但是,解決方案不是完全取消該練習。除非您無論如何都不能聘請廢話程序員,否則不會。

    與打開閘門並僱用一些壞人相比,更好地嚇away很多壞人选和少數好人。 / p>

    有比人更多的工作,任何技術負責人都可以花幾分鐘在github上閱讀某人的代碼,而無需進行愚蠢的作業分配,這為我免費構建了一個簡單的UI應用程序以使用JSON。
    您說“對一個公司真的不太關心以完成一個簡單的編程工作”:大多數公司是完全可以互換的,它們既不是世界拯救者,也不是世界破壞者。為什麼在與公司及其員工建立關係之前,有人應該關心他們?不要尋求照顧,而是尋找一種更好的方法來識別能力。
    您不想降低標準,因為這是程序員的熱門市場。您確實想使他們容易申請,並且避免遇到麻煩,因為在熱門市場中,好人將向那些易於申請的公司提出申請。您會從無法在其他地方找到好工作的人中聘用。
    user70848
    2016-02-03 05:38:15 UTC
    view on stackexchange narkive permalink

    我不喜歡將面試作為面試的一部分,因為人們已經提到了許多原因-延長了招聘過程,貶低了申請人的時間,反正可能沒有回電,等等。

    我的主要問題是,團隊實際如何工作以及使面試過程變得單一是不現實的。申請人想要這個地方是否適合他們,包括文化,團隊如何解決和解決問題。您主要也是在尋找合適的人選,包括他們的工作方式以及他們是否具備正確的技能。回家測試不會為求職者提供評估工作場所軟品質的機會,而雇主也無法了解求職者如何解決問題。

    一個更好的解決方案可能是使申請人有一個更開放的問題,可以通過任何類型的創造性方法來解決。您甚至可以將其限制為X語言。與其通過電子郵件發送,不如邀請他們將其呈現給自己和高層管理人員。這樣可以使他們擁有做事的自主權和動力,因為它承諾還會進行另一次面試,並表明您願意知道他們的想法。我會將測試包括在面試中,以便您可以一起討論他們的思考過程。

    deworde
    2016-02-03 16:18:10 UTC
    view on stackexchange narkive permalink

    似乎沒有人提到過一件事;即使測試不是您的問題,您也應該尋找其他吸引人才的方法。

    如果您是根據現有的已發表作品來尋找優秀人才,則無需對他們進行測試

    如果您只是通過招聘人員被派往人們並進行篩選,那麼您很容易遭受這樣的事實,即您的需求與招聘人員的需求並不能完美地協同。他們想與您同住。您需要頂級工程師。如果他們能找到很棒的頂級工程師,因為您會再找他們,但如果他們找不到(頂級工程師的工作往往會留下很少的時間進行面試),他們就會安頓下來安排一名中級工程師,並穿著一套西裝。給他們帶來的損失是一些長期的代表,但是與錯過他們的目標相比,這是微不足道的。 如果在您的情況下事實並非如此,那就請該招聘人員堅持下去,不要讓他們離開(*),那些將長期合作關係置於優先地位而不是目標的招聘人員是一片塵土中的珍貴鑽石

    您想做的是找到可證明有趣的候選人。在StackOverflow和GitHub上尋找頂級工程師(我聽說 StackOverflow有一個工具可以幫助您解決此問題),檢查技術上有趣的公司,這些公司生產了不錯的軟件,但搞砸了財務或獲利能力,只是下崗了10位頂級工程師。花時間在大學裡協助完成最後的項目。確定潛在的候選人並最好與他們成為朋友,或者通過遠程方式與他們成為朋友;即使他們提供了報價,優秀的工程師也會與優秀的工程師保持聯繫。而且,他們可以告訴您他們對您的招聘過程的感覺。

    這聽起來像很多工作嗎? 應該。招聘看起來如此“困難”的原因之一是因為您試圖盡可能高效地進行招聘。您轉移給它的時間,精力和資源越多,它就越容易。這些資源是否會更好地用於運輸產品是永恆的管理問題。但是,如果您花大量時間在“廢話程序員過濾”上,那簡直就是在浪費錢。至少上述步驟具有聘用過程之外的內在價值。

    (*):地獄,僱用他們

    是的,這是我目前的做法。對於沒有公開可用的“ git repos”的開發人員數量,您會感到驚訝,
    好點子。但是,依賴已發布的代碼存在風險-並非每個人都在業餘時間編寫代碼(不同的愛好,家庭義務等)。雖然許多人認為“業餘時間的代碼”與技術能力相關,但對我來說,這是真的還不清楚。我知道優秀的開發人員會在工作之外做其他事情。
    @sleske是的,我在業餘時間(CS Major / ex開發人員)編寫代碼,並且從未在公共存儲庫中發布我的代碼。但這可能是問題的一部分,候選人可以輕鬆地進行求職面試,並使用流行語對自己的技能進行撒謊。
    我同意@sleske,這就是為什麼“ check git repos”在較大的段落中是一個小語句的原因(並且我現在實際上已經刪除了它)。如果您正在尋找不發布其作品的專業開發人員,請查看他們所服務的公司。這是一個好公司嗎?做得好嗎?他們為什麼離開它?他們在什麼方面工作?可以使用許多關聯數據,這些數據比測試要有用。如果他們沒有該數據,那麼您可以*使用測試*。但是,如果這樣做,請使用它代替測試。
    @bobo2000已發布的工作超出了github示例;看到我上面的評論。
    當人們說他們與我聯繫時,我總是感到很開心,因為他們對我的github /公共項目感到驚訝,然後他們仍然希望我花3天的時間與他們進行面談。
    @grasshopper看,我可以從“您實際上想做什麼”的角度來看它,但是他們不應該問您是否知道布爾值。
    @grasshopper先生很好說!真煩人當他們發送家庭作業測試並告訴他們離開時,我感到很難過,我的時間更有價值。
    @SuperUberDuper我的情況很好。
    @grasshopper我敢肯定那是一個漂亮的;)
    JessieArr
    2016-02-05 04:58:41 UTC
    view on stackexchange narkive permalink

    我認為您對問題的措辭有點不對,但是措辭的方式反映出人們普遍對僱用程序員的誤解。候選人是被編程任務“嚇跑了”,還是因為任務而把自己的公司過濾掉了?

    一個軼事來證明我的觀點:不久前找工作時,我看到一家公司的職位似乎很平均。他們描述編程過程的方式聽起來不錯,但是細節很少,所以我對此表示懷疑。也許他們是一個工作的好地方,也許不是。但是我認為我會進入電話屏幕,這樣我可以弄清楚細節,看看它們是否像看起來一樣好。

    我點擊了職位發布,立即被要求寫求職信。啊。我認為每個候選人都討厭求職信。我不知道這家公司或使用他們的產品,那麼我能對他們說些什麼呢?我用谷歌搜索了他們,通讀了他們的網站和產品信息,弄清楚瞭如果他們被錄用了,我很可能適合他們的組織結構圖,並提出了幾段自己“賣”的書。

    下一步,我提供了我的恢復並訪問我的LinkedIn-但隨後他們立即要求我用日期和描述填寫我的相關工作經驗。此信息既在我的LinkedIn上,又在我的簡歷中,必須提供3次相同的信息是荒謬的。我關閉了瀏覽器標籤。 5分鐘後,我向另一家公司提出了申請,該公司提供了一些非常酷的好處,而第一家卻沒有。實際上,我可以更快地向另一家公司申請福利,而我可以比第一家公司想要我的希望更快。

    您需要確保您的候選人特別投資了您的公司,然後向他們展示任何要跳過的環,否則它們將不會跳。您這樣做嗎?

    我通常會看到技術公司提供的質量收益示例:

    1. 遠程工作。
    2. 免費提供計算機/顯示器作為簽約獎金。
    3. 公司為受人尊敬的開源項目做出貢獻。
    4. 報銷專業培訓和培訓費用/或會議。
    5. 安排午餐。
    6. 彈性工作時間。
    7. 使用新技術或不熟悉的技術的機會。
    8. “創業文化“-亦缺乏政治/官僚主義。
    9. 公司股權。
    10. 名稱識別:您的公司或產品眾所周知。候選人喜歡提及他們在哪里工作,並聽到人們回答“哦,很乾淨!我喜歡他們的產品。”
    11. 慈善或革命性的公司目標/願景。人們喜歡編寫使人們的生活變得更好的代碼。
    12. 平均薪水以上。金錢掩蓋了許多組織上的罪惡。
    13. 年度公司撤退到涼爽的地方。
    14. ol>

      此列表並不全面,但是如果您的公司不提供諸如清單上的項目之類的更多事物,那麼在招聘過程中遇到的任何障礙都可能會使應聘者尋找符合條件的人。

      因此,可以說,出於某種原因,您不願意也不可以為候選人提供上述獎勵,以說服他們免費為您編寫代碼。那你怎麼辦我有兩種選擇,大多數候選人比忙碌的編程任務更喜歡:

      替代方案1-按小時的薪水支付他們的編程任務,就好像他們是承包商一樣。這鼓勵他們出於職業原因並因為……他們得到報酬而認真對待它。這會花費您金錢,但是任何形式的招聘也會如此。如果您真的很厲害,您甚至可以找到一種方法,讓他們診斷和修復代碼中的實際錯誤,在這種情況下,您會得到一些有用的東西。

      替代方法2-他們可能已經免費編寫了代碼,如果您只是詢問,它們將向您顯示。大多數程序員在諸如Stack Overflow之類的Github,Bitbucket,Q&A網站上都有代碼,或者可以為您提供一些尚未發布的代碼。

      為什麼讓他們寫他們不在乎的代碼,何時讓他們與您共享激情項目呢?與第100次閱讀解決同一泛型問題的另一種解決方案相比,它可以確保不會那麼無聊。而且由於已經編寫了代碼,因此可以節省您和您的候選時間。另外,您還將了解他們喜歡編寫哪種代碼,從而深入了解他們的個性以及他們如何適應您的公司文化。

    回复:高於平均水平的工資:在我的聘用經驗中,您支付的是最高薪水,您吸引了各種各樣的自由職業者,他們認為他們可以擔負這個角色並且只對錢感興趣(您一直在以C級類型查看這種情況: -))。永遠不要只用金錢吸引人。
    gnasher729
    2017-06-29 05:07:30 UTC
    view on stackexchange narkive permalink

    作為對Bobo答案的直接答复(之所以被接受是因為那個人自己寫並接受了它,坦率地說,我覺得這有點可悲):

    您來自完全錯誤前提。我不願意為您工作。您是從哪裡想得到某人為您工作的?您只是提供工作的眾多公司之一。我不想為你工作我想評估您的公司,如果您在其他公司中脫穎而出,那就是我想要為您工作的時候。

    我可以在許多公司工作,您正排在隊列中。我首先看一下有哪些公司,將簡歷發送給他們,他們可以閱讀並留下適當的印象,然後您通常會進行快速的電話交談,他們會告訴我他們有一份有趣的工作,而我會證明我有技能,並且任何編碼測試可能都在最後。

    您的帶回家測試會讓您排在隊列的盡頭。為了彌補這一點,您必鬚髮布比其他人高出1萬英鎊的薪水範圍。反正找工作很耗時。花費十倍的時間排在最後的人。如果我在發送簡歷,與十家公司進行電話面試以及為您做作業之間做出選擇,請猜我該怎麼辦。

    那麼發生的是,您找到了想為您工作的候選人,因為他們在別處找不到工作。

    James Kingsbery
    2016-02-03 02:41:17 UTC
    view on stackexchange narkive permalink

    我真的認為這可以幫助確定誰真正知道簡歷中列出的語言。

    如果這確實是您的目標,我會考慮採用另一種方​​法。如其他答案所示,是,您應該始終有一個編碼問題,但是編碼問題很少涉及到語言的細節。我見過的一些問題對此測試非常有用:

    1. 比較和對比Java和C(或兩種相關的語言,都在候選人的簡歷上,等等)
    2. 您認為應該為語言添加哪些功能? (或者更好的是,您對這種提議的/最近的語言更改有何看法?)
    3. ol>

      已經看過一兩件事的工程師知道如何輕鬆地回答這些問題,只需幾分鐘。

    ..或撰寫嘶嘶聲。
    順便說一句,我可以用很多我不能用打招呼的語言來回答這兩個問題。
    我發現它們很有用。如果您不能說出關於語言之間的方法如何不同,內存分配如何不同,並發原語如何不同等方面的知識,並且與FizzBu​​zz問題一樣,那麼“通過”它們將非常困難。很適合討論相同的問題。
    @James同意。即使他們不能用Java編寫問候世界,但如果他們可以將Java與其他各種語言進行比較和對比,它們可能比可以編寫問候世界但不能將Java與其他語言進行比較和對比的人有用。
    Rolen Koh
    2016-02-03 10:26:48 UTC
    view on stackexchange narkive permalink

    恕我直言,剛畢業的大學畢業生幾乎有0%的機會能夠在入門水平上完成艱難的編程代碼。如果您的編碼測試需要一個星期的時間才能完成,那麼您應該在需求中明確提及您正在尋找具有至少2年以上經驗的程序員,因為我認為完成一個編碼工作需要大量的經驗。週完成。而且我認為,如果您正在尋找應屆畢業生,則可以相應地設計測試,並且可以在互聯網上找到很多想法,也可以要求為您工作的高級程序員為應屆畢業生設計合適的考試。

    我個人不會期望高級開發人員編寫合適的測試,除非他們在面試中對什麼有效或無效有一定的經驗。專注於您所知道的容易和顯而易見的事情是很容易的,並且很難對此進行糾正,這將不必要地使不知道應試者做什麼的應聘者失敗。我認為這種情況是諸如FizzBu​​zz之類的測試變得流行的原因之一-它們似乎可以在正確的共享知識水平上工作,以正確過濾候選人。
    @Neil Slater:-高級程序員可能會不知道如何為入門級編程候選人設計測試。但是,知道入門級候選人的期望並不難。當我以前的公司想聘請新程序員時,我知道向新程序員要問/期望什麼,因此我做了相應的工作,我們聘用了一個不錯的候選人。在許多接受過編程工作面試的地方,我還受到該公司編程高級人員的面試。這就是為什麼我建議這樣做,這是非常普遍的做法。
    如果您了解Web開發,實際上需要30分鐘。自從我在周中面試了許多候選人以來,我給了他們1週的時間,這使他們有時間在適合他們時間表的時間範圍內進行測試;個人的承諾,工作,學習等。我個人更希望應聘者更快地進行測試,因為它可以節省我等待的時間。我正在考慮拋棄這個問題,只是進行嗡嗡聲來使我的生活更輕鬆。
    Peteris
    2016-02-04 06:15:18 UTC
    view on stackexchange narkive permalink

    您的業務問題是什麼?

    不考慮支持或反對特定測試的所有論點,所有這些都需要權衡取捨-更多過濾器會嚇跑一些好的候選人,較少的過濾器會讓差的候選人通過

    這全都取決於您的業務狀況,而不是常規做法。

    您當前是否遇到缺少合格候選人的問題?並無法按照您的業務目標盡快招聘?您需要放棄這項最初的編程任務。

    您當前是否對新員工的質量感到不滿意?然後,您需要實施更多這樣的過濾器。

    您是否同時擁有這兩個問題,並且都同樣痛苦?恭喜,您已經找到了平衡的平衡點。

    bobo2000
    2017-06-27 21:35:50 UTC
    view on stackexchange narkive permalink

    我想回答這個問題,它已經發布一年了,我們一直堅持下去。

    發現

    積極態度

    1)帶回家進行測試,剔除那些受挫的候選人,並用真正想要為您工作的候選人取代他們。僅憑這一點就值得做,因為有動力的人=有生產能力的員工。如果他們不願意做一個1個小時的作業,那麼這說明了他們對獲得這份工作的態度。

    2)我同意其他人的看法,回家測試不應超過一個小時-我的很簡單。將其添加到招聘過程中,我得到了以下結果-

    a)一些候選人沒有完成它。不值得僱用。

    b)一些候選人嘗試過但做得不好。

    c)有些候選人作弊,這時值得詢問有關其任務的後續問題。我們是與一位最近的候選人進行此交往的,然後他再也不用理會我們關於任務的電子郵件了。

    d)一些候選人在聽說有技術任務後突然撤回了他們的申請,以前他們表現出很多興趣。

    e)有些候選人的表現非常出色,對自己的代碼進行註釋,並在一兩次中提供文檔。 值得聘用。

    方法否定性

    1)帶回家任務推遲了應聘者的申請退出找到合適的人會更長。另一方面,對公司而言卻是積極的,因為它減少了危險的不良錄用的可能性。

    2)不能總是說出某人是否被欺騙了,但這就是為什麼它經常得到支持技術電話面試。

    這種​​方法的結果

    我使用這種方法僱用的一名員工被證明是明星員工。一年多以後,他仍在為我們工作。他是可靠的和技術天才。

    因此,您的整個招聘策略都是基於一個人的表現。哇...
    究竟為什麼我有動力為您的公司做免費工作?僱用我,您會發現我正在努力為公司提供幫助。申請時要花很多時間去做,我會找到另一份工作來幫助他們的公司。雇主,請注意,很少有人會對您的工作感興趣,並且您想要的那種開發人員可以找到更容易申請的工作。
    @DavidThornley這個線程已經運行了。它與風險管理有關,如果人們不願意花30分鐘進行編碼練習,那麼他們顯然沒有足夠的動力去扮演角色。同樣,如前所述,編碼練習更適用於未經證實的記錄的人;實習生,畢業生比經驗豐富的員工具有豐富的經驗。
    @bobo2000您似乎不明白我的意思。假設我正在找工作。我要工作很有可能我對為您工作特別不感興趣,但是如果被錄用,我會為您做的很好。特別是我花在申請流程上的時間越多,花在獲得一份好工作的總體機會上的時間就越少。我應該參加您的考試還是申請兩項以上的工作?現在,如果這是可供許多公司使用的集中測試位置,那將是我值得的時間。
    @DavidThornley許多公司都將編程測試作為其應用程序的一部分,並且從經驗中也發現,最佳候選人往往是那些花時間去做的人-而且會有很多人願意。
    再加上@DavidThornley,您可能會認為這是一個不公平的招聘過程,但是替換未經證實的開發人員的成本卻證明是不利於開發人員的一個糟糕問題,要比不首先僱用它們要昂貴得多。
    @bobo2000o公平不是招聘的重點。您想讓好人聽取意見,以便做出決定,但是一般來說,甚至都沒有嘗試對候選人真正的公平。我認為您可以在不帶薪水的情況下獲得更好的招聘資源,並在監督下半小時左右測試他們的基本能力。如果您不能確定某人是否基本勝任,那您還是沉沒了。我住在一起的人都沒關係。我們會找到工作。這對你很重要。
    @DavidThornley很好,根據我的實際經驗,使用這種方法招募的每個人都證明自己是一個好員工。相反,如果我從來沒有任何形式的技術篩選過程,那麼這對企業來說將是昂貴的。
    Tim
    2016-02-04 01:56:15 UTC
    view on stackexchange narkive permalink

    我會將他們發送給在線測驗,您可以在其中過濾掉毫無頭緒的人。至少您會對他們是否知道他們在說什麼感到驚訝。 。”我認為這可能仍會發生在年輕且幼稚的人身上,但是一旦您在幾次採訪中被弄丟了,您就會發現這是一個壞建議...

    “請仔細閱讀信箱,然後在簡歷上放一份申請表”,那到底意味著什麼?
    在您不得不去商店的日子裡,人們會閱讀有關軟件功能的摘要(位於包裝盒的背面),並將其放在簡歷中。如今,這相當於可以訪問該網站或與某人談論並將其放在簡歷上而無需使用它。
    在線小測驗對我來說是一種冒犯。您得到面試的報酬,我沒有獲得免費考試的報酬。
    在這些人之後,我也沒有支付加班費來度過我的夜晚和周末。
    eee
    2017-12-02 00:50:24 UTC
    view on stackexchange narkive permalink

    不熟悉的鼠標或意外的鍵盤佈局(尤其是Mac與PC),或不同的IDE可能會顯著降低性能,而不會造成任何性能差異。同樣,一個完整的應用程序通常需要大量樣板代碼,開發人員可能沒有足夠的時間來輸入甚至記不起來。從頭開始完全啟動一個新應用實際上是一項非常罕見的任務。大部分工作都集中在擴展或改進現有代碼上。最好是要求編寫一個必須具有給定參數的函數並返回解釋的結果,我建議您在紙上進行此操作,而完全避免使用計算機。

    paparazzo
    2018-04-30 20:25:14 UTC
    view on stackexchange narkive permalink

    我最近進行了一次家庭考試。這是一個成熟的應用程序,需要連接到必須模擬慢速進給的套接字服務器。客戶端動態地進行了更新,可以取消提要,並且可以讀寫XML。

    無論如何,我還是想學習套接字,因為我正在考慮將它們用於我正在編寫的撲克服務器。 / p>

    我想學習XMLreader和XMLwriter。

    起初我以為忘記了。但是後來我將其視為證明自己可以做的機會。我沒有計算機科學學位,所以我想念一些理論知識。他們問OOP的三大支柱是什麼,想說誰在乎。

    我的信息是希望工作的人應該完成測試。



    該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
    Loading...