วิกฤตการสัมภาษณ์งานแบบ Live Coding ในอุตสาหกรรมเทคโนโลยี: ทำไมวิศวกรซอฟต์แวร์ระดับอาวุโส 75% ถึงสอบตกในแบบทดสอบง่ายๆ

ทีมชุมชน BigGo
วิกฤตการสัมภาษณ์งานแบบ Live Coding ในอุตสาหกรรมเทคโนโลยี: ทำไมวิศวกรซอฟต์แวร์ระดับอาวุโส 75% ถึงสอบตกในแบบทดสอบง่ายๆ

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

ปัญหาการสัมภาษณ์งานแบบ Live Coding ที่พบบ่อย:

  • คำถามอัลกอริทึมพื้นฐาน ( FizzBuzz , การหาผลรวมของเลขคู่)
  • การจัดการโครงสร้างข้อมูล (linked lists, binary trees)
  • ความกดดันด้านเวลา: โดยทั่วไป 30-60 นาที
  • อัตราความสำเร็จ: ประมาณ 25% ตามรายงานของอุตสาหกรรม

ปัจจัยความเครียดที่อยู่เบื้องหลังความล้มเหลวในการสัมภาษณ์

งานวิจัยล่าสุดจาก Microsoft เผยให้เห็นตัวการจริงที่อยู่เบื้องหลังความล้มเหลวที่แพร่หลายเหล่านี้ เมื่อผู้สมัครแก้ปัญหาการเขียนโค้ดคนเดียวในห้องส่วนตัว พวกเขาทำได้ดีกว่าถึงสองเท่าเมื่อเทียบกับการถูกผู้สัมภาษณ์จ้องมอง การศึกษาพบว่าความเครียดกระตุ้นการตอบสนองแบบ fight-or-flight ของสมอง ทำให้ระดับ cortisol พุ่งสูงขึ้นและทำลาย prefrontal cortex ซึ่งเป็นพื้นที่ที่รับผิดชอบการใช้เหตุผลที่ซับซ้อนและ working memory

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

ผลการศึกษาของ Microsoft Research :

  • ผู้เข้าสอบได้คะแนนต่ำกว่า 50% เมื่อถูกสังเกตการณ์เปรียบเทียบกับการทำงานคนเดียว
  • ผู้หญิง 0% ผ่านการทดสอบในสภาพแวดล้อมสาธารณะ เทียบกับ 100% ในสภาพแวดล้อมส่วนตัว
  • งานเดียวกัน ระยะเวลาเดียวกัน ความแตกต่างเพียงอย่างเดียวคือระดับการสังเกตการณ์

ปัญหาการวัดผลที่ผิดพลาด

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

ตอนนี้ผมเป็นนักพัฒนา indie ที่ประสบความสำเร็จและทำงานอิสระ หนึ่งในเหตุผลหลักที่ผมยึดมั่นกับการพัฒนา indie ผ่านช่วงเวลาที่ยากลำบากก็คือผมกลายเป็นคนที่แทบจะจ้างไม่ได้... มีอะไรบางอย่างเกี่ยวกับคนแปลกหน้าที่ยืนเหนือไหล่ผมตัดสินผม กำหนดอนาคตทางการเงินของผมด้วยการให้หรือหักหาม job เหมือนดาบของ Damocles ทำให้ท้องผมปั่นป่วนไปหมด

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

การต่อต้านของอุตสาหกรรมและแนวทางทางเลือก

การต่อต้านการสัมภาษณ์แบบ live coding กำลังแข็งแกร่งขึ้น บริษัทหลายแห่งกำลังทดลองกับทางเลือกอื่นๆ เช่น โปรเจกต์ take-home ตามด้วยเซสชัน code review หรือมุ่งเน้นไปที่ portfolio ผลงานในอดีตและการสนทนาทางเทคนิค องค์กรบางแห่งได้เปลี่ยนไปใช้ระยะทดลองงานแบบมีค่าตอบแทน โดยตระหนักว่าประสิทธิภาพการทำงานจริงเป็นตัวทำนายที่ดีที่สุดของความสำเร็จในอนาคต

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

แนวทางการสัมภาษณ์ทางเลือก:

  • โปรเจกต์ที่ทำที่บ้านพร้อมเซสชันตรวจสอบโค้ด
  • การตรวจสอบพอร์ตโฟลิโอและ repository บน GitHub
  • ระยะเวลาทดลองงานแบบมีค่าจ้าง (โดยทั่วไป 1-5 วัน)
  • การแก้ปัญหาร่วมกันโดยไม่มีแรงกดดันด้านเวลา
  • การอภิปรายการออกแบบระบบที่เน้นประสบการณ์ในอดีต

เส้นทางไปข้างหนา

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

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

อ้างอิง: Live coding sucks