AI ทำลายการสัมภาษณ์งานสายเทคไปแล้ว แล้วจากนี้จะทำอย่างไร?
(kanenarraway.com)- กระบวนการจ้างงานเป็นสิ่งที่ไม่มีใครชอบ ทั้งผู้จัดการฝ่ายจ้างงาน ผู้รับผิดชอบ และผู้สมัครก็เหมือนกัน
- ในบรรดาขั้นตอนทั้งหมด การสัมภาษณ์เทคนิคเป็นช่วงที่ขึ้นชื่อว่าแย่เป็นพิเศษ และผู้เข้าสัมภาษณ์ส่วนใหญ่ก็ไม่ชอบ
- งานจริงมักเป็นการ เชื่อมต่อ API แบบง่าย ๆ เป็นหลัก แต่ในการสัมภาษณ์กลับมักเจอสถานการณ์ที่ถามเรื่อง ทฤษฎีและอัลกอริทึมที่ซับซ้อน
- เช่นกรณีที่ผู้พัฒนา Homebrew ซึ่งว่ากันว่า 90% ของวิศวกร Google ใช้งาน กลับสอบตกสัมภาษณ์เพราะทำการกลับต้นไม้ทวิภาคบนกระดานไม่ได้
การเปลี่ยนแปลงในช่วงไม่กี่ปีที่ผ่านมา (ปัจจัยที่ทำให้การสัมภาษณ์ไร้ประสิทธิภาพ)
- มีกรณีที่ในการสัมภาษณ์ระยะไกล ผู้สมัครปิดกล้องแล้วจ้างคนอื่นมาทำแทน
- เคยมีกรณีที่คนทำงานจากเกาหลีเหนือพยายามสมัครงานโดยใช้วิดีโอ deepfake
- เมื่อมีเครื่องมือเขียนโค้ดอัตโนมัติอย่าง GitHub Co-pilot, Cursor รวมถึง LLM อย่าง Claude หรือ OpenAI โจทย์เขียนโค้ดพื้นฐานหรือคำถามตอบโต้ทั่วไปก็แก้ได้อย่างง่ายดาย
- ตั้งแต่การเขียนเรซูเม่ การสมัครจำนวนมาก ไปจนถึงการสัมภาษณ์วิดีโอ AI มีแนวโน้มเข้ามาเกี่ยวข้องได้ทั้งหมด แต่บทความนี้จะโฟกัสที่ตัวการสัมภาษณ์เทคนิคโดยตรง
พื้นฐานของการสัมภาษณ์เทคนิค
แทบทุกบริษัทที่จ้างนักพัฒนาจะมีกระบวนการที่ดัดแปลงจากรูปแบบด้านล่างเล็กน้อย
- Hackerrank แบบทดสอบล่วงหน้า
- ทำหน้าที่เป็นตัวกรองสำหรับคัดเลือกนักพัฒนาระดับจูเนียร์หรืออินเทิร์น
- สามารถทำโจทย์ออนไลน์ได้อย่างอิสระ
- พื้นฐานวิทยาการคอมพิวเตอร์ (Comp Sci Fundamentals)
- เป็นการถามเรื่องโครงสร้างข้อมูล อัลกอริทึม Big O ฯลฯ
- มักใช้กับนักพัฒนาระดับจูเนียร์
- สัมภาษณ์เขียนโค้ด
- ประเมินความสามารถในการเขียนและรันโค้ดจริง
- ใช้ตัวอย่างโปรเจกต์ง่าย ๆ เพื่อตรวจสอบการใช้ภาษาโปรแกรมพื้นฐานและทักษะแก้ปัญหา
- สถาปัตยกรรม/การออกแบบ
- มุ่งไปที่นักพัฒนาระดับซีเนียร์มากกว่าจูเนียร์
- ประเมินการออกแบบระบบ ความสามารถในการขยายตัว ฐานข้อมูล และการออกแบบ API
การใช้ AI ในการสัมภาษณ์
- เพราะ AI บทบาทการคัดกรองของแบบทดสอบล่วงหน้าอย่าง Hackerrank จึงอ่อนลงอย่างมาก
- การสัมภาษณ์พื้นฐานวิทยาการคอมพิวเตอร์และการสัมภาษณ์เขียนโค้ดก็มีแนวโน้มที่จะแก้ได้ง่าย เพราะระดับความยากของโจทย์อยู่ในขอบเขตที่ LLM ตอบได้
- การสัมภาษณ์ด้านสถาปัตยกรรม/การออกแบบยังถือว่าปลอดภัยกว่าเมื่อเทียบกัน แต่ในระยะยาวหาก AI พัฒนาต่อไป พื้นที่นี้ก็อาจถูกคุกคามได้เช่นกัน
เรามีทางเลือกอะไรบ้าง?
- 1. ยกเลิกการสัมภาษณ์เทคนิคแบบระยะไกล
- ถ้าผู้สัมภาษณ์นั่งเฝ้าอยู่ข้าง ๆ โดยตรง การใช้ AI จะทำได้ยาก
- หากสมมติว่าผ่านทุกขั้นตอนที่เหลือ ก็อาจเหลือเป็นการสัมภาษณ์เขียนโค้ดแบบพบหน้ากัน
- ถ้าผู้สัมภาษณ์นั่งเฝ้าอยู่ข้าง ๆ โดยตรง การใช้ AI จะทำได้ยาก
- 2. ใช้ซอฟต์แวร์สไตล์ Pearson Vue
- เป็นรูปแบบที่ติดตั้งโปรแกรมเฝ้าระวังและคุมสอบผ่านกล้อง
- แต่ก็ไม่สมบูรณ์ เพราะมีวิธีหลบเลี่ยงเผยแพร่อยู่หลายช่องทาง (ถึงขั้นมี subreddit เฉพาะ)
- 3. เมินปัญหาไป
- เป็นวิธีที่พึ่งพาคำขอเชิงศีลธรรมว่า “อย่าใช้ AI”
- สุดท้ายคนที่ใช้ AI จะได้เปรียบ ทำให้บริษัทคัดเลือกผู้สมัครที่เหมาะสมได้ยากขึ้น
- 4. อนุญาตให้ใช้ AI
- เปลี่ยนจากการวัดทักษะเขียนโค้ด ไปเป็นการประเมินความสามารถในการเขียนพรอมป์ต์ให้ LLM และทักษะการรีแฟกเตอร์
- เป็นช่วงเปลี่ยนผ่านที่ยังต้องมีทักษะเขียนโค้ดเพื่อแก้ไขข้อผิดพลาดจากเอาต์พุตของ AI ได้ด้วยตัวเอง
- 5. แนวทางแบบไฮบริด
- ใช้วิธีผสม เช่น ตรวจสอบความสามารถในการใช้ AI จากระยะไกลก่อน แล้วค่อยทำการยืนยันขั้นสุดท้ายแบบออฟไลน์
โซลูชันที่เป็นไปได้
- ในระยะยาว วิธีแบบข้อ 4 และข้อ 5 มีแนวโน้มเป็นไปได้มากที่สุด
- ต่อให้ใช้ RTO ก็ไม่สามารถเรียกผู้สมัครที่อยู่ไกลทุกคนมาสัมภาษณ์ออฟไลน์ได้ จึงต้องหาแนวทางที่มีประสิทธิภาพ
- อีกทางเลือกหนึ่งคือเปลี่ยนรูปแบบของการสัมภาษณ์ไปเลย
- ปัจจุบันการสัมภาษณ์เขียนโค้ดมักจบอยู่ที่งานชิ้นเล็กระดับ FizzBuzz หรือการทำเครื่องคิดเลข
- หากใช้ AI ช่วย ก็สามารถขยายความยากของโจทย์ได้มากกว่า 10 เท่า และประเมินจากกระบวนการสร้างแอปพลิเคชันที่สมบูรณ์ได้
- อาจลองทำเป็นการสัมภาษณ์ยาวประมาณ 2 ชั่วโมง โดยผสมทั้งสถาปัตยกรรมและการเขียนโค้ดเข้าด้วยกัน
- ในรูปแบบนี้ สามารถให้ผู้สมัครสร้างแอปพลิเคชัน ขยายระบบ และเพิ่มฟีเจอร์ได้
- เมื่อโค้ดเบสใหญ่ขึ้น ก็จะมีข้อดีตรงที่ดูได้ว่าผู้สมัครรักษาความสม่ำเสมอได้ไหม และตรวจสอบความสามารถเชิงลึกได้มากกว่าคำตอบผิวเผิน
- ผ่านกระบวนการนี้ สามารถประเมินสิ่งต่อไปนี้ได้
- ทักษะพื้นฐานในการใช้เครื่องมืออย่าง git และ IDE
- ความสามารถในการให้พรอมป์ต์กับ LLM อย่างมีประสิทธิภาพ และเขียนโปรแกรมเพื่อให้ได้เอาต์พุตที่ดีขึ้น
- ความสามารถในการเข้าใจและผสานเอาต์พุตจาก LLM เพื่อทำโค้ดให้เสร็จในรูปแบบที่ดูแลรักษาได้
- สามารถทำแอปพลิเคชันที่มีขนาดและความสามารถในการขยายตัวถึงระดับหนึ่งให้เสร็จภายในเวลาจำกัดได้หรือไม่
- ความสามารถในการรักษาคุณภาพและตรรกะให้สม่ำเสมอ
- แนวทางประเมินแบบองค์รวมเช่นนี้ อาจกลายเป็นทางเลือกแทนการสัมภาษณ์เขียนโค้ดในยุค AI
Summary
- การสัมภาษณ์เทคนิคน่าจะเผชิญการเปลี่ยนแปลงครั้งใหญ่ในอนาคตอันใกล้
- ในตอนนี้การใช้ AI อาจยังดูช้าหรือสังเกตเห็นความไม่เป็นธรรมชาติได้ค่อนข้างง่าย แต่ต่อไป AI อาจถูกซ่อนไว้ได้แนบเนียนขึ้น
- สถานการณ์ที่อาจเกิดขึ้นตามมาคือ
- อัตราการผ่านสัมภาษณ์อาจสูงขึ้น แต่ในทางกลับกันอาจมีคนที่ถูกคัดออกระหว่างช่วงทำงานจริง (probation) มากขึ้น
- นักพัฒนาระดับจูเนียร์อาจต้องแบกรับภาระมากขึ้นในการไล่ตามมาตรฐานทักษะสูงของบริษัทให้ทันตั้งแต่เนิ่น ๆ
- หากวิธีใช้ AI เพื่อผ่านการสัมภาษณ์ของ FAANG แพร่หลายมากขึ้น ความเร็วของการเปลี่ยนแปลงก็อาจยิ่งเร่งตัวขึ้น
9 ความคิดเห็น
ผมกังวลว่าแทนที่จะลดความไม่สอดคล้องกันระหว่างการสัมภาษณ์งานสายเทคนิคกับการทำงานจริง สุดท้ายจะกลายเป็นการโทษ AI ที่ไม่เกี่ยวเสียมากกว่า
ไม่แน่ใจว่าเป็นเพราะการเปลี่ยนแปลงนี้หรือเปล่า แต่บริษัทที่ผมทำงานอยู่กำลังทำไลฟ์โค้ดดิ้งในการสัมภาษณ์โดยไม่มีโจทย์ล่วงหน้าครับ
ตอนนี้ที่ที่ผมอยู่กำลังเดินหน้านโยบายให้อนุญาตใช้ AI ในการตอบคำถามระหว่างสัมภาษณ์สายเทคนิค.. เพราะอินพุตเป็นตัวกำหนดเอาต์พุตอยู่แล้ว เลยอยากดูความสามารถในการตั้งคำถามมากกว่า..
ผมคิดว่าใช้ AI ก็ได้นะ
แต่ผลลัพธ์ที่ออกมาจากแบบนั้นต้องทำให้เป็นของตัวเอง 100%
ถ้าผมเป็นผู้สัมภาษณ์ ผมจะให้โจทย์เขียนโค้ดแบบออนไลน์ แล้วในสัมภาษณ์แบบเจอตัวจะให้ลองอธิบายโค้ดนั้นดู แน่นอนว่าก็จะมีคำถามเพิ่มเติมด้วย
ไม่ว่าจะเป็นตัวเองเขียนหรือ AI เขียน ถ้าถึงระดับที่อธิบายโค้ดที่ส่งไปเองไม่ได้ และตอบคำถามเกี่ยวกับมันไม่ได้ ก็ควรไม่ผ่าน
> ประเมินความสามารถในการเขียนพรอมต์ให้ LLM ได้ดี และทักษะในการรีแฟกเตอร์ แทนที่จะประเมินทักษะการเขียนโค้ดโดยตรง
ผมคิดว่าความสามารถนี้จะยิ่งมีความสำคัญมากขึ้น
ปัญหาไม่ใช่เพราะ AI แต่เป็นเพราะเดิมทีโจทย์สัมภาษณ์อยู่ในรูปแบบหละหลวมประมาณว่า “จงหาคำตอบที่ optimal answer แล้วทุกอย่างก็โอเค” มากกว่าหรือเปล่า และตอนนี้ปัญหานั้นเพิ่งถูกเปิดเผยออกมา? ในงานจริงก็ไม่ใช่ว่าจะไม่ใช้ AI อยู่แล้ว แล้วทำไมต้องตั้งข้อจำกัดด้วย? 555 ไม่ว่าจะใช้วิธีการแบบไหน สุดท้ายถ้าได้ output ออกมาก็ถือว่าใช้ได้ครับ เพียงแต่ก็ควรประเมินอย่างโปร่งใสว่าเขาใช้วิธีการนั้นอย่างไร
เห็นด้วยครับ/ค่ะ เมื่อ AI เข้ามา แบบทดสอบโค้ดดิ้งที่เหลวไหลและห่างไกลจากงานจริงก็น่าจะค่อย ๆ ถูกคัดออกจากตลาดไปเอง และบริษัทที่ใช้วิธีการจ้างงานที่ดีกว่าก็จะได้คนเก่ง ๆ ไป เป็นการต่อสู้ระหว่างหอกกับโล่ที่น่าสนใจดีครับ/ค่ะ
โปรแกรมโกงสัมภาษณ์ Leetcode
น่าจะเป็นตัวอย่างที่เหมาะสมของกรณีการโกงด้วย AI ในการสัมภาษณ์สายเทคนิคที่บทความนี้พูดถึง
ความเห็นจาก Hacker News
กระบวนการสัมภาษณ์ที่ดีที่สุดรวมถึงการ pair programming กับสมาชิกในทีมและการสัมภาษณ์ทางโทรศัพท์ ภายในไม่กี่นาทีก็รู้ได้ว่าผู้สมัครทำงานได้ดีหรือไม่ และกระบวนการนี้ได้สร้างทีมที่มีประสิทธิภาพที่สุดในช่วงประสบการณ์กว่า 20 ปี
code review มีประโยชน์มากในฐานะเครื่องมือประเมิน
ราวปี 2005 เคยถูกขอให้ทำ whiteboard coding ที่ SME แต่ไม่ได้รับอนุญาตให้ใช้คอมพิวเตอร์
บริษัท A ควรต้องคิดว่าถ้า AI แก้คำถามสัมภาษณ์เทคนิคได้ทั้งหมด ทำไมถึงไม่จ้าง AI ไปเลย
เทคนิคการจ้างงานที่หลีกเลี่ยง AI คือให้ junior developer นำโค้ดมาและอธิบายมัน
ในฐานะผู้สัมภาษณ์ บริษัทที่ไม่ใช่ FAANG ใช้กระบวนการสัมภาษณ์แบบง่าย
ตลาดงานตอนนี้สับสนมาก จึงดูเหมือนว่าจะหางานยากไปจนกว่าจะชนกำแพงกันจริง ๆ
การใช้โจทย์ Leetcode ระดับกลาง/ยากในสัมภาษณ์ 30-45 นาที เปิดเผยได้เพียงคน 2 ประเภท
ปัญหาไม่ใช่ AI แต่คือบริษัทไม่รู้วิธีคัดเลือกผู้สมัครอย่างเหมาะสม
ในการสัมภาษณ์ครั้งล่าสุด ถูกขอให้ใช้เครื่องมือรวมถึง AI เพื่อทำงานที่ได้รับมอบหมาย