ข้อดีและข้อเสียสำหรับนายจ้างของคำถามรหัสระหว่างการสัมภาษณ์คืออะไร? [ปิด]


16

คำถามทดสอบโจเอล # 11 คือ: "ผู้สมัครใหม่เขียนรหัสระหว่างการสัมภาษณ์หรือไม่" อะไรคือข้อโต้แย้งและคัดค้านที่จะขอให้ผู้สมัครใหม่เขียนรหัสในระหว่างการสัมภาษณ์และตัดสินใจเรื่องนี้?


เขียนโค้ดตามที่เขียนทางร่างกายด้วยดินสอและมือหรือเขียนเป็นรหัสประเภทลงบนเครื่อง?
Chris

ข้อโต้แย้งหลักคือการถามคำถามที่โง่หรือไร้ประโยชน์และคิดว่าคุณทำถูกต้อง เช่นมีคนแสดงความคิดเห็นเกี่ยวกับการขอให้เขียน linked_list

คำตอบ:


13

ฉันไม่เห็นข้อเสีย การสัมภาษณ์มีหลายส่วนและผู้สมัครควรได้รับการรับรอง 'up the chain' สองสามครั้ง

ฉันสัมภาษณ์ประมาณ 10 คนต่อสัปดาห์ ฉันจริง ๆ จริง ๆ ขอบคุณจริง ๆ ที่ HR ได้ทำงานเบื้องหลังทั้งหมดและแสดงบันทึกย่อมากมาย ตามเวลาที่พวกเขามาถึงฉันก็ถึงเวลาที่ฉันจะทำคะแนนการทดสอบของพวกเขา

การทดสอบขึ้นอยู่กับตำแหน่งทั้งหมด โดยทั่วไปแล้วฉันพยายามตรวจสอบ:

  • ทักษะการเขียนโปรแกรมทั่วไป คุณสามารถใช้โอเปอเรเตอร์ได้อย่างมีประสิทธิภาพหรือไม่? คุณสามารถเข้าใจระบบตัวเลขที่มีเลขฐานที่ไม่ใช่ 10 ได้หรือไม่?

  • คุณรู้วิธีการทำในสิ่งที่เรากำลังว่าจ้างให้คุณทำ?

  • การประเมินผลงานของคุณในโครงการโอเพนซอร์ซใด ๆ

ฉันพยายามทำให้มันสั้นและสนุก เมื่อฉันเข้าไปในสำนักงานฉันคว้าคำตอบดูพวกเขาแล้วทำการสัมภาษณ์ครั้งที่สอง ในการได้รับการว่าจ้างคุณต้องผ่านการสัมภาษณ์สามครั้ง

ฉันยังวัดได้ว่าคุณจะผสมผสานกับทีมที่จะรับคุณได้ดีเพียงใด ทีมนั้นพึ่งฉันที่จะทำอย่างมีประสิทธิภาพ

มันเป็นสิ่งหนึ่งที่จะตอบคำถามในรูปแบบเมตามันเป็นอีกอย่างหนึ่งที่จะผลิตรหัส ถ้าฉันจะจ้างคุณฉันต้องเห็นคุณสร้างรหัสจริงๆ


อืม ... ฉันถือว่าตัวเองเป็นนักพัฒนาที่มีคุณสมบัติ ในระหว่างการสัมภาษณ์สามครั้งล่าสุดเมื่อฉันถูกถามเกี่ยวกับสิ่งที่ชอบ "วิธีการเฉพาะเจาะจงทำอะไร" หรือสิ่งที่คล้ายกันฉันตัดสินใจเลิกใช้ ตั้งแต่ฉันไม่เคยหางานทำที่ไหนที่ฉันตั้งใจจะทำสิ่งที่ฉันรู้ดี มันไม่น่าสนใจ ตามที่อดีตหัวหน้าของฉันกล่าวว่า: "Reusable? โปรแกรมเมอร์ควรจะนำกลับมาใช้ใหม่ได้โปรแกรม - อาจจะ"
duros

@duros ฉันขอโทษที่ได้ยินเช่นนั้น ผู้สัมภาษณ์ที่ดีควรทำให้กระบวนการสนุกและควรตระหนักว่าโปรแกรมเมอร์คนอื่นเกลียดการทดสอบ
ทิมโพสต์

ไม่ใช่ว่าฉันไม่สบายใจเมื่อถูกทดสอบ ฉันเพิ่งรู้ว่าโอกาสใดที่จะเรียนรู้และลองสิ่งใหม่ ๆ ที่ฉันมีถ้าพวกเขาจะจ้างฉันเป็นผู้เขียนโค๊ด ... ในช่วงสุดท้ายฉันส่งผู้สัมภาษณ์ไปอ่าน javadocs ... : - / อาจจะฉัน ผิด m ...
duros

10
ฉันเคยถูกถามในการสัมภาษณ์เพื่อเขียน accessors สำหรับรายการที่เชื่อมโยงใน Perl ใน 8 ปีที่ฉันได้ทำงานกับ Perl ฉันไม่ได้พบโปรแกรมการผลิตเดียวที่ใช้รายการเชื่อมโยง แน่นอนว่าฉันยุ่งเหยิงและสร้างวิธีการบนกระดาษการแทรก () และการลบ () และวัตถุที่ใช้แฮชซึ่งฉันคิดว่าจะทำงาน สิ่งแรกที่ผู้สัมภาษณ์กล่าวเมื่อเขามองกระดาษคือ "คุณพลาดเซมิโคลอนสองสามตัว"
leed25d

1
มันเป็นอีกเรื่องหนึ่งที่สร้างโค้ดขึ้นมา - นี่คือดังนั้นจริง ฉันประหลาดใจหลายครั้งที่คนที่อธิบายอัลกอริทึมที่เป็นไปได้ แต่ไม่สามารถแม้แต่เริ่มลดให้เป็นรหัสได้ สิ่งนั้นหรือพวกมันมีการข้ามขั้นตอนที่ไม่ใช่อัลกอริทึมบางอย่างที่ไม่สามารถหลีกเลี่ยงได้เมื่อคุณเขียนโค้ด
poolie

34

ด้วยคำขอโทษต่อ Scott Whitlock:

จุดด้อย:

  • ไม่มี

ข้อดี:

  • ประหยัดเวลาและปวดใจไปตามถนนหากคุณป้องกันไม่ให้จ้างคนที่ไม่สามารถโปรแกรมได้
  • คุณต้องมีบุคคลด้านเทคนิคในการสัมภาษณ์

"คุณต้องมีบุคคลด้านเทคนิคในการสัมภาษณ์" ได้หรือไม่?
Yeikel

2
ขึ้นอยู่กับว่าคุณกำลังพยายามเติมบทบาทหรือแค่เติมเก้าอี้ฉันเดา แต่ไม่มี IMO มันไม่สามารถถือว่าเป็นการต่อต้าน
อาร์มันด์

19

หากคุณจะจ้างนักเล่นปาหี่คุณก็จะไม่บ้าที่จะให้เขาเล่นปาหี่เพื่อคุณ หรือนักดนตรีที่คุณจะได้ออดิชั่น ไม่เช่นนั้นคุณจะได้สิ่งต่าง ๆ เช่นK-strass ยอดเยี่ยมจากyo-yo

การเดินผ่านบางสิ่งบนไวท์บอร์ดเป็นโปรแกรมเมอร์ที่เทียบเท่ากับการเล่นปาหี่อย่างรวดเร็ว


+1 สำหรับลิงก์ ผมยังคิดว่าการเล่นกลที่จำไม่ได้ว่าสิ่งที่ต้องการลายเซ็นวิธีการหรือคล้ายกัน แต่เพียงแค่ความสามารถในการคิดและแก้ปัญหาที่คุณไม่เคยพบมาก่อน ...
duros

4
ยกเว้นว่าการเล่นกลนั้นเป็นทักษะที่มีเพียงไม่กี่ตัวแปรเท่านั้นมักจะแสดงต่อหน้าผู้ชม การเขียนโปรแกรมเป็นงานที่หยาบคายและลึกซึ้งไม่ค่อยมีใครทำเช่นนี้ นอกจากนี้ยังมีประสิทธิภาพน้อยลงบนกระดาษหรือไวท์บอร์ด ที่กล่าวว่าการทดสอบรหัสเทียม (หรือละเว้นข้อบกพร่องขนาดกลางเล็กน้อย) จะมีประโยชน์มาก
Bruce Alderson

10

ฉันคิดว่ามันมีประโยชน์มากและฉันมักจะทำ แต่เนื่องจากผลประโยชน์ได้รับการคุ้มครองอย่างดีฉันจะพูดถึงเชิงลบเท่านั้น (ชัดเจน)

ฉันคิดว่าการทดสอบโค้ดนั้นไม่น่าเป็นไปได้ที่จะให้ผลบวกผิด ๆ กับคุณ: โอกาสน้อยที่คนที่ไม่สามารถเขียนโค้ดได้จะทำการปลอมในการสัมภาษณ์อย่างน้อยถ้าคุณมีคำถามมากมายเกี่ยวกับความยากลำบากเพิ่มขึ้น (บางทีสถานการณ์ที่เป็นไปได้มากที่สุดคือพวกเขากำลังโกงโดยขอให้เพื่อนถ้าไม่ใช่การสัมภาษณ์แบบตัวต่อตัว)

ปัญหามีมากขึ้นในด้านลบ - เท็จ: การทดสอบโค้ดจะทำให้คุณปฏิเสธคนที่เป็นผู้สมัครที่ดีที่สุดจริง ๆ หรือไม่

ความน่ากลัวบนเวที

คุณอาจมีคนที่เป็นนักพัฒนาที่ดีจริง ๆ แต่ใครเป็นกังวลมากเกี่ยวกับการสัมภาษณ์นี้และพวกเขาได้รับความกลัวเวที การแสดงภายใต้แรงกดดันมีความสำคัญในระดับหนึ่ง แต่การจัดการกับความน่ากลัวบนเวทีไม่ใช่ส่วนสำคัญของการเป็นโปรแกรมเมอร์ (เทียบกับอาชีพอื่น ๆ ) และมันจะโชคร้ายที่ปฏิเสธคนที่ทนทุกข์ทรมานจากมัน สิ่งนี้สามารถประสม: ถ้าบุคคลนั้นไม่สามารถตอบคำถามที่พวกเขารู้ว่าพวกเขาควรจะตอบพวกเขาอาจจะแน่นมากขึ้น หรืออย่างเช่นในคำถามนี้พวกเขารู้สึกว่าพวกเขาไม่สามารถพูดคุยและใส่รหัสได้ในเวลาเดียวกัน

การผ่อนปรน: เริ่มต้นด้วยคำถามเกี่ยวกับภูมิหลังเป้าหมาย ฯลฯ ก่อนที่จะข้ามไปสู่คำถามทางเทคนิค อาจเริ่มด้วยคำถามทางเทคนิคที่ง่ายขึ้นเพื่อให้ได้แรง อย่าเป็นดิ๊กในระหว่างการสัมภาษณ์ (พูดคุยเกี่ยวกับอัฒภาค ฯลฯ )

มันเป็นมาตรการที่มีเสียงดัง

คำถามเกี่ยวกับรหัสที่น่าสนใจอาจมีคำตอบที่ถูกต้องมากกว่าหนึ่งข้อ ถ้าคนคนหนึ่งเขียนคำตอบที่ถูกต้องและอีกคนหนึ่งเขียนคำตอบที่ถูกต้องและมีประสิทธิภาพมากขึ้นคุณจะต้องใส่น้ำหนักเท่าไหร่?

ในระดับหนึ่งนี่เป็นปัญหาของคำถาม "ไขปริศนา": บุคคลนั้นมีความเข้าใจอย่างถ่องแท้หรือไม่และคุณจะได้ผลลัพธ์เป็นเลขฐานสอง ความฉลาดอาจส่งผลต่อความน่าจะเป็นของการมีความเข้าใจด้านนั้น แต่การสุ่มตัวอย่างเพียงไม่กี่ครั้งก็ช่วยให้คุณสามารถวัดผลได้

สิ่งนี้รบกวนจิตใจฉันเกี่ยวกับคำถามเกี่ยวกับรหัส (แม้ว่าฉันยังคงใช้อยู่) การบรรเทาที่ดีที่สุดที่ฉันสามารถนึกได้ก็คือมีวิธีแก้ไขที่เป็นไปได้ให้มากที่สุด: บุคคลอย่างน้อยที่สุดก็สามารถเขียนคำตอบที่โหดร้าย ส่วนหนึ่งของปัญหา การตระหนักว่าดีกว่าไม่มีอะไรเป็นสัญญาณที่ดี จากนั้นหากพวกเขาค้นพบมากขึ้นพวกเขาสามารถทำให้มีประสิทธิภาพมากขึ้นหรือรหัสที่สง่างามมากขึ้น มากที่สุดหลีกเลี่ยงการถามคำถามที่ได้รับการตอบกลับแบบไบนารี

มันไม่ได้เป็นตัวแทนจริงๆ

การเขียนโปรแกรมไม่ใช่งานของการแก้ปัญหาอัลกอริทึมสิบนาทีซึ่งกันและกัน: มีงานมากขึ้นเกี่ยวกับความเข้าใจและการออกแบบระบบที่มีขนาดใหญ่ขึ้นและให้ความสนใจเป็นระยะเวลานานโดยไม่พูดถึงทักษะความสัมพันธ์ระหว่างบุคคล คำถามเกี่ยวกับรหัสไม่ได้ทดสอบสิ่งนี้จริงๆ

แต่คำถามรหัสไม่ได้เป็นคำถามเดียวที่คุณจะถาม: คุณสามารถดูภูมิหลังของพวกเขาอ้างอิงของพวกเขางานโอเพนซอร์สของพวกเขา (ถ้ามี) เพื่อหาหลักฐานของความพยายามอย่างยั่งยืนความคิดสร้างสรรค์ทักษะความสัมพันธ์ระหว่างบุคคล

การรู้วิธีแก้ปัญหาอัลกอริทึมขนาดเล็กและวิธีลดปัญหาให้เป็นรหัสเป็นเงื่อนไขที่จำเป็น แต่ไม่เพียงพอ: หากคุณไม่สามารถแก้ปัญหาเล็ก ๆ ได้และคุณไม่สามารถเขียนโค้ดที่ไม่น่าสนใจแล้วการคิดภาพใหญ่ทั้งหมดในโลกไม่ใช่ จะทำให้คุณเป็นนักพัฒนาที่มีประสิทธิผล

ทุกคนสามารถแก้ไขได้

ไม่เห็นได้ชัดว่าไม่ ในฐานะที่เป็นโพสต์ที่มีชื่อเสียง FizzBuzzชี้ให้เห็นปัญหาที่คุณอาจคิดว่าเป็นกับดักที่น่ารำคาญไม่เพียง แต่บัณฑิตจบใหม่ แต่คนที่มีประสบการณ์ในอุตสาหกรรม ฉันไม่รู้ว่าทำไม การทดสอบรหัสเป็นการวัดที่ไม่ดี (ซึ่งเป็นไปได้แม้ว่าฉันคิดว่ามันไม่น่าเป็นไปได้) หรือพวกเขาไม่ได้มีส่วนร่วมอย่างมากต่อโครงการในประวัติย่อของพวกเขาหรือพวกเขาทำได้ดีมากโดยการคัดลอกและวาง รหัสอัลกอริทึม (ซึ่งเป็นไปได้)

เป็นสิ่งที่ควรค่าแก่การยอมรับว่าคุณสามารถทำสิ่งต่างๆให้สำเร็จได้โดยไม่ต้องเขียนโค้ดอัลกอริทึมใด ๆ ผู้คนทำเงินมากมายบนแอปที่มีค่าอยู่ในกราฟิกหรือตรรกะทางธุรกิจไม่ใช่ในสิ่งที่คุณอาจเรียกว่า "การเขียนโปรแกรม" และนั่นก็ดี แต่ถ้าคุณต้องการโปรแกรมเมอร์จริงๆมันก็ไม่เหมาะ

อาจไม่ได้รับการสอบเทียบที่เหมาะสม

หากคุณมีคำถามคำตอบอาจจะดูง่ายสำหรับคุณ อย่างไรก็ตามหากคุณถามคำถามที่เทียบเคียงกันได้หรือคำถามที่ไม่ได้บิดเบือนความสนใจและพื้นหลังของคุณเองมันอาจจะยากกว่ามาก

การบรรเทา: เริ่มการทดสอบกับนักพัฒนาบางคนที่คุณรู้จักและดูว่าพวกเขาทำอะไร บางทีบางคนในทีมของคุณที่คุณรู้ว่าฉลาดมากอาจมีปัญหากับคนใดคนหนึ่งและคุณสามารถปรับเปลี่ยนได้ บางทีพวกเขาอาจคิดถึงคำตอบที่ดีกว่าหรือแตกต่างออกไป

มันเหมือนกับเรื่องไม่สำคัญมากเกินไป

ฉันคิดว่าคำถามเกี่ยวกับรหัสสามารถเข้ามาในเรื่องไม่สำคัญได้อย่างแน่นอนถ้าคุณยืนยันให้ผู้คนรู้ว่า APIs ที่ไม่ชัดเจนด้วยใจหรือได้รับไวยากรณ์ที่สมบูรณ์แบบ สิ่งเหล่านี้ล้วนมีเหตุผลที่ต้องพึ่งพาเอกสารการค้นหาเว็บหรือข้อผิดพลาดของคอมไพเลอร์ในการรับและมีความสัมพันธ์กับความเชี่ยวชาญจริงเล็กน้อย ไม่แม้แต่จะรู้ว่า API มีแนวโน้มที่จะเป็นเบาะแสที่บุคคลไม่ได้ใช้เมื่อเร็ว ๆ นี้ แต่ก็ไม่จำเป็นต้องมีปัญหาตราบใดที่พวกเขาไม่ได้โกหกเรซูเม่ของพวกเขา

ดังนั้นคำตอบสำหรับคำถามนี้จึงค่อนข้างง่าย: อย่าถามคำถามที่ไม่สำคัญและอย่าพลาดความผิดพลาดเล็กน้อย เตือนผู้สมัครว่ามีการเรียก API หรือให้ค้นหาอย่างไร แก้ไขข้อผิดพลาดทางไวยากรณ์ อย่าทดสอบคนที่จำนิยามโครงสร้างข้อมูล

คุณเปรียบเทียบอย่างไร

หากคุณมีผู้สมัครสองคนและทั้งสองตอบคำถามได้ดีคุณจะเลือกระหว่างพวกเขาได้อย่างไร คุณสามารถเลือกคนที่เสร็จเร็วที่สุด แต่บางทีคุณอาจเริ่มรับกระต่ายมากกว่าเต่า คุณสามารถทำอีกรอบและถามคำถามที่ยากขึ้นได้ แต่ฉันก็ไม่แน่ใจเหมือนกัน บางทีคุณอาจให้ทั้งสอง A + และลองเลือกระหว่างพวกเขาในเกณฑ์อื่น ๆ (หรือลองหาเงินที่จะจ้างทั้งคู่)


7

สิ่งหนึ่งที่ฉันคิดได้ก็คือมันยากที่จะ "ถอดรหัสเสียงดัง" ต่อหน้าคนอื่น ฉันพบว่ามันยากแม้จะพิมพ์กับใครบางคนมองข้ามไหล่ของฉันและฉันไม่ได้อยู่คนเดียว ฉันสังเกตว่าเมื่อมีคนโทรหาฉันที่เวิร์กสเตชันของพวกเขาเพื่อช่วยบางสิ่งบางอย่างพวกเขาก็เริ่มทำสิ่งที่ผิดพลาดการเลือกรหัสที่ไม่ถูกต้องแม้แต่การทำผิดพลาดอย่างจริงจัง - ไม่มีสิ่งใดที่พวกเขาจะทำ นรกฉันเคยเห็นผู้คนเริ่มใช้เมนูสำหรับการดำเนินการแบบตัดและวางเพียงเพราะพวกเขาอยู่ภายใต้การสังเกต นี่ไม่ใช่พฤติกรรมปกติและรหัสที่ฉันพูดถึงเป็นโปรแกรมเมอร์ที่ยอดเยี่ยมและค่อนข้างฉลาดนอกจากนี้

เมื่อเร็ว ๆ นี้ฉันมีการสัมภาษณ์ซึ่งผู้สัมภาษณ์ถามฉันว่าฉันจะเขียนโค้ดการดำเนินการเฉพาะได้อย่างไรและเขาก็พูดว่า "แค่แสดงคณิตศาสตร์ให้ฉันดู" ก่อนอื่นฉันต้องคิดเกี่ยวกับปัญหาก่อนเพื่อให้ได้คณิตศาสตร์มาก่อน สิ่งที่ฉันวางไว้บนกระดานไวท์บอร์ดในตอนแรกนั้นน่าอายและฉันรู้สึกว่าฉันแพ้ ณ จุดนั้น ในที่สุดฉันก็ได้เวลา A-ha และพบคำตอบ (จริง ๆ แล้วมันเกิดขึ้นกับฉันในที่สุดสิ่งที่เขาถามจริง ๆ ) แต่ "ความยุ่งเหยิง" ฉันทำก่อนที่ฉันจะไปถึงที่นั่นทำให้ฉันรู้สึกไม่สบายใจมาก อย่างไรก็ตามฉันได้งาน แต่ถ้าผู้สัมภาษณ์มีความอดทนน้อยฉันก็อาจไม่มี

ฉันคิดว่าถ้าคุณให้รหัสผู้สัมภาษณ์ให้เวลากับพวกเขาในการทำงานกับคอมพิวเตอร์บางทีแม้แต่ใน IDE ที่พวกเขาคุ้นเคย ปล่อยให้พวกเขาเขียนรหัสให้คุณแล้วพูดถึงมัน ถามพวกเขาว่าทำไมพวกเขาถึงทำสิ่งต่าง ๆ ด้วยวิธีใดวิธีหนึ่งและอาจไม่ดีกว่าอีกวิธีหนึ่ง คุณจะได้รับข้อมูลเพิ่มเติมจากกระบวนการแบบนั้นมากกว่าโดยขอให้พวกเขาฉี่ (เปรียบเปรยพูด) ลงในถ้วยตรงหน้าคุณ


4
ไม่เป็นไรแม้ว่า เป้าหมายของคำถามสัมภาษณ์การเข้ารหัสไม่ใช่เพื่อทดสอบความสามารถในการพิมพ์หรือแม้แต่ความรู้ที่สมบูรณ์แบบของ API Typos และ whatnot สามารถเพิกเฉยแทนคุณมุ่งเน้นไปที่กระบวนการคิดของผู้สมัครและความคุ้นเคยกับพื้นฐานของการเขียนโปรแกรม ตัวอย่างเช่นฉันเคยเป็นส่วนหนึ่งของการสัมภาษณ์ที่แสดงให้เห็นว่าผู้สมัครไม่สามารถคิดขั้นตอนต่อไปได้ (พวกเขาจะแก้ไขปัญหาเล็ก ๆ น้อย ๆ ให้รู้ว่าสร้างปัญหาอื่นขึ้นมา)
อดัมเลียร์

2
มันเป็น "รหัสยากต่อหน้าคนอื่น"? ละเอียด. ฉันแค่จ้างคนที่สามารถทำสิ่งที่ยาก หนึ่งในนั้นคือสามารถพูดคุยรหัส (เช่นโปรแกรม) กับคนอื่น ๆ (ด้านหน้า)
วินไคลน์

1
@ ไคลน์ไคลน์: คุณพลาดจุดของฉัน คุณสนใจว่าผู้คนรับผลลัพธ์อย่างไรหรือคุณต้องการให้พวกเขาได้ผลลัพธ์ตามที่คุณต้องการเท่านั้น ผู้คนมากมายสามารถเขียนโค้ดได้ดีในสภาพแวดล้อมของทีม แต่ต้องการ "เวลาเดียว" เพื่อสร้างประสิทธิภาพสูงสุด คุณฟังดูเหมือนคนประเภทที่ไม่ได้ว่าจ้าง Mark Zuckerberg เพราะเขาต้องการที่จะ "เข้าร่วม" เพื่อให้ได้ผลผลิตสูงสุด
Robusto

1
@ Robusto: ฉันไม่ได้ถามคำถามลึก ๆ ในการสัมภาษณ์ ฉันแค่ต้องเห็นใครบางคนแก้ปัญหาง่าย ๆ ในไม่กี่นาที และฉันต้องการคนที่สามารถทำงานเป็นทีมได้ นี่หมายถึงความสามารถและความเต็มใจที่จะพูดคุยเกี่ยวกับโค้ด แน่นอนฉันอาจพลาดโปรแกรมเมอร์ที่ยอดเยี่ยมที่ไม่สามารถรับมือกับแรงกดดันจากการสัมภาษณ์ ไม่เป็นไร. แต่การจ้างที่ไม่ดีนั้นเป็นหายนะ
kevin cline

6

ข้อด้อย: ไม่มี เมื่อใดก็ตามที่คุณใช้การตั้งค่าพีซีการออกแบบการทดสอบรหัสและการตรวจสอบจะช่วยลดอาการปวดหัวในอนาคต

ข้อดี: "เชื่อ แต่ยืนยัน" - Ronald Regan หลายครั้งที่ฉันเห็นและได้ยินผู้คนในที่สุดก็ปล่อยให้ไปจากตำแหน่งที่ซึ่งในการสัมภาษณ์คุณคิดว่าคุณได้รับดาวร็อค หลักฐานอยู่ในพุดดิ้ง; ฉันต้องการเห็นสิ่งที่พวกเขาสามารถทำได้ มันจะแสดงสิ่งที่เกิดขึ้นเมื่อคุณลงทุนเวลาและเงินจ้างคนและติดโครงการใหม่ต่อหน้าพวกเขา


4

จุดด้อย:

  • คุณต้องมีบุคคลด้านเทคนิคในการสัมภาษณ์

ข้อดี:

  • ประหยัดเวลาและปวดใจไปตามถนนหากคุณป้องกันไม่ให้จ้างคนที่ไม่สามารถโปรแกรมได้

25
หากคุณสัมภาษณ์นักพัฒนาโดยไม่ต้องมีคนที่มีความรู้ด้านเทคนิคเข้าร่วม
David Thornley

@ David: ผมเห็นด้วยผมคิดว่าข้อดีที่นี่ไกลเกินดุลข้อเสีย แต่มันก็เป็นเพียง "นักโทษ" ฉันจะคิด
Scott Whitlock

4

เมื่อฉันสัมภาษณ์งานปัจจุบันของฉันฉันได้รับรายการคำถามเพื่อเขียนโค้ดสำหรับผู้สรรหา ฉันประทับใจมากเพราะคำถามถูกเขียนโดยคนที่มีความรู้เชิงลึกเกี่ยวกับ SQL ดังนั้นจึงใช้งานได้ทั้งสองวิธี


2

คุณจริงๆต้องการที่จะมีรหัสสมาชิกผู้เขียนในการสัมภาษณ์ - ดียิ่งขึ้นพวกเขาได้รับในการเขียนโปรแกรมคู่กับสมาชิกในทีมของคุณสำหรับจำนวน X เวลา (สิ่งที่คุณสามารถจ่ายได้ในเวลา / กำลังคน)

มันเป็นวิธีการเดียวที่คุณสามารถบอกได้ว่าบุคคลนั้นสามารถใช้รหัสได้หรือไม่

ฉันชอบการเขียนโปรแกรมคู่มากขึ้นเพราะมันจะแสดงให้เห็นว่าการทำงานเป็นทีมของพวกเขาทำให้พวกเขามี IDE ที่แท้จริงในการทำงานและช่วยให้พวกเขาทำงานกับปัญหา 'ของจริง' (คนอื่น ๆ ในคู่สามารถแนะนำพวกเขา ไม่มีเหตุผลพอที่จะรู้)

เราเริ่มใช้นโยบายการจ้างงานนี้และเราพอใจกับผลลัพธ์มาก


+1 สำหรับการทดสอบคู่: พิสูจน์ความสามารถในการทำงานกับเพื่อนร่วมทีมและ / / ความสามารถในการเขียนโค้ดทั้งคู่
Bruce Alderson

2

คุณตัดสินนกด้วยขนนกและโปรแกรมเมอร์โดยใช้รหัสของเขา / เธอ

เมื่อฉันเริ่มต้นกับ บริษัท ปัจจุบันฉันทำงานให้พวกเขาขอให้ฉันเขียนรหัส C ที่สร้างหรือตรวจสอบบิตพาริตี้ของอินพุตไบนารี่บางบิต (ขึ้นอยู่กับว่าคุณกำลังเข้ารหัสหรือถอดรหัส) นี่เป็นคำถามสัมภาษณ์เพราะปัญหาเหล่านี้ได้รับการแก้ไขระหว่างการทำงาน แน่นอนฉันกำลังคิดว่าจะไม่ตรวจสอบความเท่าเทียมกัน แต่ทำงานในระดับต่ำ


2

คำตอบทั้งหมดจนถึงขณะนี้ (ที่ฉันอ่าน) ไม่ได้ระบุความจริงที่ว่าJoel Test ไม่ใช่แค่รายการฝึกหัดที่ดีที่สุดสำหรับผู้ประกอบการแต่รายการตรวจสอบเพื่อช่วยให้คุณประเมินนายจ้างที่คาดหวังได้ง่ายขึ้น

สิ่งคือ ... หากพวกเขาทดสอบผู้สมัครอย่างละเอียดพวกเขาอาจจ้างคนที่รู้จักสิ่งของ ... นั่นหมายถึงคุณ

  1. ปวดหัวน้อยลงและยัง
  2. โอกาสที่เพิ่มขึ้นในการเรียนรู้บางสิ่งจากเพื่อนร่วมงานของคุณ

แทนที่จะแก้ไขข้อผิดพลาดหลังจากพวกเขา ...


1

ฉันจะพูดว่า:

ข้อดี

  • แสดงให้เห็นว่าผู้สมัครมีความรู้ในการเขียนโปรแกรมอย่างน้อยที่สุดเนื่องจากประวัติย่อสามารถประดิษฐ์ / ประดับได้
  • หากผู้สัมภาษณ์กล่าวถึงรหัสกับผู้สมัครแทนที่จะเป็นแบบทดสอบที่เป็นลายลักษณ์อักษรอาจเป็นตัวบ่งชี้ที่ดีว่าคุณ "เข้ากับสังคม" ได้อย่างไรและหากผู้สมัครเหมาะสมกับ บริษัท / บริษัท และทีม เหมาะสำหรับผู้สมัคร

จุดด้อย

  • อาจเป็นการดูถูกผู้สมัครหากคำถามเป็นเรื่องไร้สาระ / ไร้สาระที่จะไม่เกิดขึ้นในระหว่างการทำงาน (เช่น "เขียนเรียงฟอง" เมื่อกรอบสมัยใหม่ทั้งหมดที่หนึ่งจะใช้ในงานมีการเรียงลำดับในตัว "ย้อนกลับสตริง "เมื่อมีReverseวิธีการในตัวหรือที่คล้ายกันหรือสำหรับการทดสอบเป็นลายลักษณ์อักษรเช่น" อะไรคือข้อโต้แย้งกับFooวิธีการของBarชั้นเรียน "เมื่อคนงี่เง่าใด ๆ สามารถ Google ที่หรือใช้เอกสารประกอบ) เมื่อเทียบกับคำถามสถาปัตยกรรม / การออกแบบที่แสดง ผู้สมัครสามารถทำสิ่งต่างๆและแก้ไขปัญหาทางธุรกิจได้

1
ฉันคิดว่า "Reverse a string" เป็นคำถามเริ่มต้นที่ยอดเยี่ยมในการสัมภาษณ์การเข้ารหัส หากพวกเขาไม่ทราบว่าจะเริ่มต้นที่ใด (และมีคนจำนวนไม่มากที่น่าประหลาดใจ) คุณอาจไม่ต้องการจ้างพวกเขา หากพวกเขาใช้วิธีการในตัวก็ดี - มันบอกคุณว่าพวกเขาจะไม่พยายามสร้างวงล้อของตัวเองถ้ามีให้ - แต่จากนั้นนำเสนอสถานการณ์สมมุติที่วิธีการในตัวมีข้อผิดพลาดดังนั้นพวกเขา ต้องเขียนของตัวเอง จากนั้นคุณสามารถใช้รหัสของพวกเขาเป็นจุดเริ่มต้นในการถามคำถามอื่น ๆ เช่นวิธีแก้ไขข้อบกพร่องการใช้หน่วยความจำเวลาที่ใช้งาน ฯลฯ
Gabe

0

โปรหนึ่งคือมันแสดงให้เห็นว่าใครบางคนมีความรู้พื้นฐานของการเขียนโปรแกรมหรืออะไรก็ตาม (ครั้งสุดท้ายที่ฉันพบว่าฉันรู้สึกประหลาดใจที่คำถาม SQL ขั้นพื้นฐาน) นอกจากนี้ยังสามารถใช้เป็นพื้นฐานสำหรับการอภิปรายทางเทคนิคถามว่าทำไมผู้สมัครจึงทำเช่นนั้นและเช่นนั้นและจะปรับปรุงได้อย่างไร

ต้องใช้เวลาในการสัมภาษณ์ซึ่งสามารถใช้กับสิ่งอื่นได้ ยิ่งไปกว่านั้นการเขียนโค้ดบนไวท์บอร์ดไม่ใช่สภาพแวดล้อมทางธรรมชาติและบางคนจะมีปัญหามากขึ้นและน้อยลง มันอาจทำให้คุณพลาดนักพัฒนาซอฟต์แวร์ที่เพิ่งกังวลโดยไม่มีเครื่องมือหรือการอ้างอิงปกติ


3
สิ่งที่จะทำให้คุณประหลาดใจมากยิ่งขึ้นคือมีผู้คนจำนวนมากที่ไม่สามารถตอบคำถามพื้นฐานนั้นได้มากกว่าใคร
HLGEM

0

การเขียนโปรแกรมเป็นทักษะทางเทคนิคขั้นสูงพร้อมด้วย "การส่งมอบ" ที่ชัดเจน ผู้สมัครสามารถส่งหรือไม่สามารถส่งได้ ดังนั้นจึงไม่มี "ข้อเสีย" ในการถามคำถามทางเทคนิค ทั้งหมดนี้มีไว้เพื่อกล่าวว่า "แสดงรหัสให้ฉันสำหรับแอปพลิเคชันนี้หรือ" แสดงรหัสให้ฉันสำหรับแอปพลิเคชันที่คุณได้เขียนไว้แล้ว "

การไม่ทำเช่นนั้นอาจนำไปสู่ผลลัพธ์เช่นนี้: คนรวยสัมภาษณ์ติวเตอร์เพื่อสอนลูก ๆ ของเขาให้เล่นหมากรุก ครูสอนพิเศษเปิดกระดานหมากรุกและเริ่มพูดถึง 64 ตาราง แต่ไม่ได้สัมผัสชิ้นหมากรุก เมื่อเวลาผ่านไปพ่อก็จ้างติวเตอร์ และผู้สอนก็สอนเด็ก ๆ ให้เล่น CHECKERS


นั่นเป็นเพียงตัวอย่างของผู้สัมภาษณ์ที่ไร้ความสามารถไม่ใช่ความจำเป็นในการเล่นหมากรุกในการสัมภาษณ์ คนรวยอาจขอแค่ 'อธิบาย Castling' ให้ฉันหรือบางสิ่งที่คล้ายกันและได้รับความคิดในสิ่งที่ครูสอนรู้ทันที
GrandmasterB
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.