เหนือกว่า LeetCode: การถกเถียงในชุมชนเกี่ยวกับการสัมภาษณ์โปรแกรมเมอร์ที่ดีกว่า

ทีมชุมชน BigGo
เหนือกว่า LeetCode: การถกเถียงในชุมชนเกี่ยวกับการสัมภาษณ์โปรแกรมเมอร์ที่ดีกว่า

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

กรณีต่อต้านปริศนาอัลกอริทึม

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

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

การสัมภาษณ์แบบอิงโปรเจกต์ได้รับความนิยมมากขึ้น

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

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

ช่องว่างทักษะเชิงปฏิบัติ

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

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

ความท้าทายหลักในการสัมภาษณ์งานที่นักพัฒนาระบุ

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

ความท้าทายของการสัมภาษณ์ทางไกล

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

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

ความแปรผันตามอุตสาหกรรมเฉพาะ

ภาคส่วนต่างๆ ต้องการแนวทางการสัมภาษณ์ที่แตกต่างกัน ตัวอย่างเช่น นักพัฒนา embedded systems อาจใช้แบบทดสอบเทคนิคเกี่ยวกับแนวคิดเฉพาะด้านฮาร์ดแวร์ ดังที่ผู้แสดงความคิดเห็นหนึ่งอธิบาย เราใช้การทดสอบโค้ดที่คล้ายกับแบบทดสอบปริศนาข้อเท็จจริงเกี่ยวกับไวยากรณ์ภาษาที่แปลกประหลาดและแนวคิด embedded แบบ bare metal

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

แนวทางใหม่ๆ กำลังเกิดขึ้น

บางบริษัทกำลังทดลองกับโมเดลการจ้างงานใหม่ทั้งหมด การทดลองงานแบบได้รับค่าจ้างของ Linear ซึ่งผู้สมัครทำงานในโปรเจกต์จริงเป็นเวลา 2-5 วัน ได้รับการพูดคุ�อย่างมีนัยสำคัญ แนวทางนี้ให้การสังเกตโดยตรงว่าผู้สมัครทำงานในสถานการณ์การทำงานที่สมจริงได้อย่างไร

ระหว่างการทดลอง ผู้สมัครทำงานในโปรเจกต์จริง เราเชื่อว่าสิ่งนี้อาจเป็นวิธีที่ดีที่สุดในการหาคนที่เหมาะสมที่สุด การจับคู่ทำงานในงานจริงควรเป็นตัวบ่งชี้ที่ดีที่สุด

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

เปรียบเทียบวิธีการสัมภาษณ์งานด้านโปรแกรมมิ่งทั่วไป

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

องค์ประกอบของความเป็นมนุษย์

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

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

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

อ้างอิง: How to effectively conduct programming interviews