วิธีเตรียมตัวสัมภาษณ์ coding ของ Google
โดย Aaron Cao · อัปเดตเมื่อ
เตรียมตัวสำหรับการสัมภาษณ์ coding ของ Google ด้วยการฝึกฝนโครงสร้างข้อมูลและอัลกอริทึม ฝึกใช้ editor ที่แชร์ร่วมกันพร้อมพูดอธิบายแนวคิดของคุณออกมาดัง ๆ และจัดรอบซ้อมแบบจับเวลา Google ให้น้ำหนักกับการแก้ปัญหา การจัดการ edge case และการสื่อสาร ไม่ใช่แค่ว่าโค้ดของคุณรันได้หรือไม่
การสัมภาษณ์ coding ของ Google โดยทั่วไปเกี่ยวข้องกับอะไรบ้าง
หากชื่อเสียงของ Google ในเรื่องการสัมภาษณ์ที่ยากทำให้คุณไม่แน่ใจว่าจะเริ่มต้นจากตรงไหน ส่วนนี้จะแสดงภาพรวมของกระบวนการเพื่อให้การเตรียมตัวของคุณมีเป้าหมายที่ชัดเจน กระบวนการวิศวกรรมซอฟต์แวร์ของ Google สร้างขึ้นจากการสัมภาษณ์ coding ที่ทดสอบโครงสร้างข้อมูล อัลกอริทึม และความชัดเจนในการคิดออกเสียงของคุณ
เส้นทางทั่วไปคือการคัดกรองโดยผู้สรรหา จากนั้นเป็นรอบสัมภาษณ์ทางเทคนิคทางโทรศัพท์หรือวิดีโอหนึ่งรอบขึ้นไป ตามด้วยรอบสัมภาษณ์แบบเสมือนหรือที่ออฟฟิศหลายรอบของ coding บางครั้งมีรอบ system design สำหรับตำแหน่งระดับอาวุโส ในแต่ละรอบ coding คุณมักจะแก้โจทย์หนึ่งหรือสองข้อใน editor ที่แชร์ร่วมกันพร้อมอธิบายแนวคิดของคุณไปด้วย การให้คะแนนไม่ได้ดูแค่ว่าโค้ดรันได้หรือไม่ ผู้สัมภาษณ์จะพิจารณาว่าคุณแตกปัญหาอย่างไร จัดการ edge case อย่างไร และให้เหตุผลเรื่อง time และ space complexity อย่างไร
หัวข้อที่ควรฝึกฝนก่อนเป็นอันดับแรก
โจทย์ coding ของ Google มาจากพื้นฐานวิทยาการคอมพิวเตอร์ที่คุ้นเคย การใช้เวลาศึกษาเชิงลึกในหัวข้อเหล่านี้ดีกว่าการไล่ตามโจทย์แปลกใหม่
- Array, string และ hash map
- Two pointers, sliding window และ binary search
- Stack, queue, linked list และ tree
- Graph, breadth-first และ depth-first search
- Recursion, backtracking และ dynamic programming
- การวิเคราะห์ Big-O ของ time และ space สำหรับทุกวิธีแก้
สำหรับแต่ละรูปแบบ ให้ฝึกบอก complexity ก่อนเขียนโค้ดและยืนยันอีกครั้งหลังเขียนเสร็จ ผู้สัมภาษณ์มักถามเรื่อง trade-off ดังนั้นการรู้ว่าทำไมวิธีหนึ่งเป็น O(n log n) ส่วนอีกวิธีเป็น O(n) สำคัญพอ ๆ กับการได้คำตอบที่ใช้งานได้
ฝึกฝนในแบบที่การสัมภาษณ์จริงดำเนินไป
ความผิดพลาดในการเตรียมตัวที่พบบ่อยที่สุดคือการแก้โจทย์อย่างเงียบ ๆ แล้วอึ้งเมื่อถูกขอให้อธิบาย การสัมภาษณ์ของ Google ให้รางวัลกับการบรรยายอย่างต่อเนื่อง: พูดทวนโจทย์ ระบุแนวทางของคุณ ชี้ edge case และบอก complexity สร้างนิสัยนี้ตอนฝึกซ้อม ไม่ใช่ในวันจริง
ลองนึกถึงผู้สมัครที่กำลังเตรียมตัวสำหรับรอบวิศวกรรมซอฟต์แวร์ระดับ L4 แทนที่จะแก้โจทย์อย่างเงียบ ๆ พวกเขาจัดรอบจับเวลาโดยพูดทุกขั้นตอนออกมาดัง ๆ กับผู้สัมภาษณ์ AI จากนั้นทบทวนจุดที่คำอธิบายพันกัน การซ้อมคิดออกเสียงแบบนี้คือสิ่งที่นำไปใช้ได้จริงในห้องสัมภาษณ์จริง เพราะผู้สัมภาษณ์กำลังให้คะแนนการสื่อสารแบบเรียลไทม์ คุณสามารถจัดรอบเหล่านี้ได้ที่เครื่องมือฝึกซ้อม mock interview
แผนเตรียมตัวแบบง่าย ๆ และรอบจำลองเข้ากับแผนนี้อย่างไร
แผนที่ใช้ได้ผลคือการกระจายความพยายามไปหลายสัปดาห์แทนที่จะอัดในช่วงสุดท้าย ใช้ช่วงต้นทบทวนโครงสร้างข้อมูลแต่ละแบบและการทำงานของมัน ช่วงกลางแก้โจทย์ทีละรูปแบบ และช่วงท้ายทำรอบจำลองแบบจับเวลาเต็มรูปแบบที่เลียนแบบความยาวและความกดดันจริง ติดตามโจทย์ที่คุณทำไม่ได้และกลับไปทบทวนอีกครั้ง เพราะการทำซ้ำในจุดอ่อนของคุณช่วยได้มากกว่าโจทย์ใหม่ที่คุณรู้สึกว่าง่ายอยู่แล้ว
ข้อควรระวังที่ตรงไปตรงมาข้อหนึ่ง: รอบสัมภาษณ์ Google จริงอาจถูกบันทึกหรือดำเนินการบน editor ที่แชร์ร่วมกันซึ่งผู้สัมภาษณ์เฝ้าดูอยู่ ดังนั้นจึงไม่ปลอดภัยที่จะพึ่งพาผู้ช่วยภายนอกระหว่างรอบนั้น เตรียมตัวให้พร้อมจนคุณไม่จำเป็นต้องใช้มัน คำตอบเกี่ยวกับการสัมภาษณ์ coding เพิ่มเติมถูกรวบรวมไว้ใน interview types topic hub และคำแนะนำที่เน้นการฝึกซ้อมอยู่ใน mock interviews topic hub