On this page
เทคนิคระหว่างสัมภาษณ์
👋 อ่านฟรีทั้งหมดบน Aph's Blog — เนื้อหาภาษาไทย ทำตามทีละหน้าใน sidebar ได้เลย หากมีข้อเสนอแนะหรืออยากให้เพิ่มหัวข้อไหน บอกได้เสมอ
วิธีตอบโจทย์ coding ให้ได้คะแนนเต็ม แม้แก้โจทย์ไม่จบ
ผู้สัมภาษณ์ไม่ได้ดูแค่ว่าคุณแก้โจทย์ได้หรือไม่ แต่ดูวิธีคิด การสื่อสาร และการเขียนโค้ดด้วย หลายครั้งคนที่แก้ไม่จบแต่สื่อสารดียังได้ผ่าน ขณะที่คนเงียบ ๆ แล้วเขียนเสร็จกลับตก
ขั้นตอน UMPIRE สำหรับตอบโจทย์
- Understand — ทวนโจทย์ ถามให้ชัดเรื่อง input/output, edge case, ข้อจำกัด
- Match — โจทย์นี้คล้าย pattern ไหนที่เคยเจอ
- Plan — อธิบายแนวทางก่อนเขียน บอก approach และ data structure ที่จะใช้
- Implement — เขียนโค้ดพร้อมพูดอธิบายไปด้วย
- Review — ไล่ตรวจโค้ดด้วยตัวอย่าง input
- Evaluate — วิเคราะห์ time/space complexity และคุยเรื่องการปรับปรุง
อย่าเงียบ!
สิ่งที่แย่ที่สุดคือนั่งคิดเงียบ ๆ เป็นนาที ๆ ให้พูดความคิดออกมาดัง ๆ ตลอด แม้จะยังไม่เจอคำตอบ ผู้สัมภาษณ์จะได้เห็นกระบวนการคิดและช่วยใบ้ได้
Do
- ถามให้ชัดเจนก่อนเริ่มเขียน อย่าด่วนสรุปสมมติฐานเอง
- เริ่มจาก brute force ก่อนได้ แล้วค่อยบอกว่าจะ optimize อย่างไร
- ตั้งชื่อตัวแปรให้สื่อความหมาย เขียนโค้ดให้อ่านง่าย
- ทดสอบโค้ดด้วยตัวอย่างและ edge case เอง
Don't
- อย่ารีบเขียนโค้ดทันทีโดยยังไม่วางแผน
- อย่าแกล้งทำเป็นรู้คำตอบที่เคยเห็นมา — ผู้สัมภาษณ์ดูออก
- อย่ารับ hint แบบเฉย ๆ ให้ต่อยอดความคิดจาก hint นั้น
- อย่าลืมเช็ค edge case: array ว่าง, ค่า null, ตัวเลขติดลบ
เมื่อคิดไม่ออก (When Stuck)
ติดเป็นเรื่องปกติ สิ่งที่ผู้สัมภาษณ์ดูคือวิธีรับมือ ไม่ใช่ว่าติดหรือไม่ ลองตามลำดับนี้
- พูดออกมาว่าตอนนี้ติดตรงไหน และกำลังคิดอะไรอยู่
- ลองตัวอย่างเล็ก ๆ ด้วยมือ เพื่อหา pattern
- เริ่มจาก brute force ให้ได้คำตอบก่อน แล้วค่อยหา optimize
- นึกถึง data structure ที่เกี่ยวข้อง (hash map ช่วยไหม? sort ก่อนช่วยไหม?)
- ถ้าผู้สัมภาษณ์ให้ hint ให้รับมาต่อยอด อย่าปฏิเสธ
Complexity ที่ควรจำได้ทันที
| รูปแบบ | Complexity ทั่วไป |
|---|---|
| วน loop เดียวผ่าน n | O(n) |
| loop ซ้อน loop | O(n²) |
| แบ่งครึ่งไปเรื่อย ๆ (binary search) | O(log n) |
| sort | O(n log n) |
| ลองทุก subset | O(2ⁿ) |