ข้ามไปยังเนื้อหา
cookie

คู่มือสำหรับนักเรียน · ช่วงฤดูใบไม้ร่วงถึงฤดูหนาวของปีก่อนปีสุดท้าย

การสัมภาษณ์ฝึกงานด้านวิศวกรรมซอฟต์แวร์

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

ขั้นตอนต่าง ๆ

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

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

สิ่งที่ผู้สัมภาษณ์ให้คะแนน

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

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

ตัวอย่างพร้อมวิธีทำ: two sum

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

จากนั้นปรับปรุงวิธีแก้ ขณะไล่ดูรายการ ให้เก็บตัวเลขที่เห็นแล้วกับตำแหน่งของตัวเลขเหล่านั้นไว้ใน hash map และสำหรับตัวเลขใหม่แต่ละตัว ให้ตรวจสอบว่าค่าเป้าหมายลบด้วยตัวเลขนั้นอยู่ใน map แล้วหรือยัง วิธีนี้หาคู่ตัวเลขได้ในการไล่ดูรอบเดียว ใช้เวลาตามสัดส่วนของ n และใช้หน่วยความจำเพิ่มเติมตามสัดส่วนของ n สุดท้าย ให้พูดทดสอบกับตัวอย่างขนาดเล็ก รายการที่ไม่มีคำตอบ และรายการที่มีตัวเลขซ้ำ พร้อมบอกว่าจะเปลี่ยนวิธีอย่างไรถ้ารายการเรียงลำดับอยู่แล้ว (ใช้ตัวชี้สองตัวจากปลายทั้งสองด้าน โดยไม่ใช้หน่วยความจำเพิ่มเติม)

หัวข้อที่ควรรู้และภาษาที่ควรใช้

โจทย์ฝึกงานส่วนใหญ่ใช้เนื้อหาจากหลักสูตรแรกเกี่ยวกับโครงสร้างข้อมูลและอัลกอริทึม ได้แก่ อาร์เรย์และสตริง hash map และเซต สแตกและคิว ลิงก์ลิสต์ ต้นไม้และกราฟพร้อมการค้นหาแบบ breadth-first และ depth-first การเรียงลำดับและ binary search การเรียกซ้ำ และ dynamic programming ขั้นพื้นฐาน การรู้ต้นทุนด้านเวลาและพื้นที่จัดเก็บของแต่ละการทำงานสำคัญพอ ๆ กับการรู้จักโครงสร้างข้อมูล

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

พูดให้ฟังว่ากำลังคิดอะไร และ AI ในการสัมภาษณ์

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

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

คำถามเกี่ยวกับพฤติกรรมและประสบการณ์

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

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

ตรวจสอบได้ที่ไหน

ตรวจสอบกับข้อมูลเหล่านี้เมื่อ กฎเปลี่ยนทุกปี หากข้อมูลที่นี่ไม่ตรงกับหน้าเหล่านั้น ให้ยึดข้อมูลจากหน้าด้านบน

คำถามที่พบบ่อย

การประเมินออนไลน์คืออะไร?

แบบทดสอบเขียนโค้ดจับเวลาที่ทำที่บ้าน ซึ่งหลายบริษัทใช้ก่อนการสัมภาษณ์สด Amazon ระบุว่าการประเมินสำหรับการฝึกงานใช้เวลาประมาณ 90 นาที ส่วนใหญ่เป็นการเขียนโค้ด

ควรใช้ภาษาอะไรในการสัมภาษณ์เขียนโค้ด?

ภาษาที่คุณถนัดที่สุด Meta แนะนำให้ใช้ภาษาที่คุณสบายใจที่สุด ส่วน Amazon แนะนำให้ฝึกใช้ภาษาที่วางแผนจะใช้ ดังนั้นความคล่องแคล่วสำคัญกว่าการเลือกภาษา

โจทย์เขียนโค้ดสำหรับฝึกงานยากแค่ไหน?

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

ถ้าฉันติดขัดในการสัมภาษณ์เขียนโค้ดควรทำอย่างไร?

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

ฉันใช้ AI ในการสัมภาษณ์เขียนโค้ดได้ไหม?

ขึ้นอยู่กับบริษัท Google ระบุว่าไม่อนุญาตให้ใช้เครื่องมือ AI ระหว่างการสัมภาษณ์ ส่วน Meta ระบุว่าการสัมภาษณ์หลายรูปแบบมีผู้ช่วย AI ในตัว ซึ่งคาดหวังให้ผู้สมัครใช้