26 คะแนน โดย GN⁺ 2025-03-06 | 9 ความคิดเห็น | แชร์ทาง WhatsApp
  • กระบวนการจ้างงานเป็นสิ่งที่ไม่มีใครชอบ ทั้งผู้จัดการฝ่ายจ้างงาน ผู้รับผิดชอบ และผู้สมัครก็เหมือนกัน
  • ในบรรดาขั้นตอนทั้งหมด การสัมภาษณ์เทคนิคเป็นช่วงที่ขึ้นชื่อว่าแย่เป็นพิเศษ และผู้เข้าสัมภาษณ์ส่วนใหญ่ก็ไม่ชอบ
  • งานจริงมักเป็นการ เชื่อมต่อ 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 จะทำได้ยาก
      • หากสมมติว่าผ่านทุกขั้นตอนที่เหลือ ก็อาจเหลือเป็นการสัมภาษณ์เขียนโค้ดแบบพบหน้ากัน
  • 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 ความคิดเห็น

 
scheee 2025-03-07

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

 
whitelips 2025-03-07

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

 
cnaa97 2025-03-06

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

 
cronex 2025-03-06

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

 
bbulbum 2025-03-06

> ประเมินความสามารถในการเขียนพรอมต์ให้ LLM ได้ดี และทักษะในการรีแฟกเตอร์ แทนที่จะประเมินทักษะการเขียนโค้ดโดยตรง

ผมคิดว่าความสามารถนี้จะยิ่งมีความสำคัญมากขึ้น

 
alucard 2025-03-06

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

 
jamsya 2025-03-06

เห็นด้วยครับ/ค่ะ เมื่อ AI เข้ามา แบบทดสอบโค้ดดิ้งที่เหลวไหลและห่างไกลจากงานจริงก็น่าจะค่อย ๆ ถูกคัดออกจากตลาดไปเอง และบริษัทที่ใช้วิธีการจ้างงานที่ดีกว่าก็จะได้คนเก่ง ๆ ไป เป็นการต่อสู้ระหว่างหอกกับโล่ที่น่าสนใจดีครับ/ค่ะ

 
xguru 2025-03-06

โปรแกรมโกงสัมภาษณ์ Leetcode
น่าจะเป็นตัวอย่างที่เหมาะสมของกรณีการโกงด้วย AI ในการสัมภาษณ์สายเทคนิคที่บทความนี้พูดถึง

 
GN⁺ 2025-03-06
ความเห็นจาก Hacker News
  • กระบวนการสัมภาษณ์ที่ดีที่สุดรวมถึงการ pair programming กับสมาชิกในทีมและการสัมภาษณ์ทางโทรศัพท์ ภายในไม่กี่นาทีก็รู้ได้ว่าผู้สมัครทำงานได้ดีหรือไม่ และกระบวนการนี้ได้สร้างทีมที่มีประสิทธิภาพที่สุดในช่วงประสบการณ์กว่า 20 ปี

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

    • สิ่งสำคัญคือให้ผู้สมัครรีวิวโค้ด
    • ระดับ junior, mid, senior และ staff จะมองเห็นสิ่งที่ต่างกันมากจาก codebase เดียวกัน
    • เมื่อโค้ดที่สร้างด้วย AI กลายเป็นเรื่องปกติ การคัดเลือกนักพัฒนาที่สามารถตรวจทานคุณภาพและความถูกต้องของโค้ดได้อย่างมีประสิทธิภาพจึงสำคัญ
    • เคยเจอการสัมภาษณ์ที่บริษัทในเครือ YC ใช้ code review เป็นรอบแรก และสิ่งนั้นทำให้ได้ไปสร้างแอปโอเพนซอร์ส
  • ราวปี 2005 เคยถูกขอให้ทำ whiteboard coding ที่ SME แต่ไม่ได้รับอนุญาตให้ใช้คอมพิวเตอร์

    • เมื่อถามว่าทำไมถึงใช้ whiteboard ก็ได้รับคำตอบว่าเลียนแบบแนวปฏิบัติที่ดีที่สุดของ Google
    • สุดท้ายก็เขียนโค้ดบน whiteboard แต่บอกไปว่าถ้ามีคอมพิวเตอร์ให้ก็ยินดีทำอีกครั้ง
    • สุดท้ายก็ไปที่อื่น
  • บริษัท A ควรต้องคิดว่าถ้า AI แก้คำถามสัมภาษณ์เทคนิคได้ทั้งหมด ทำไมถึงไม่จ้าง AI ไปเลย

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

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

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

    • แม้จะมีประสบการณ์ 26 ปี แต่ก็ไม่ได้สมบูรณ์แบบ และการหลอกลวงมักไม่ได้ผล
  • การใช้โจทย์ Leetcode ระดับกลาง/ยากในสัมภาษณ์ 30-45 นาที เปิดเผยได้เพียงคน 2 ประเภท

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

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

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