นี่คือโน้ตที่ผมเรียบเรียงไว้ตอนเตรียมตัวสัมภาษณ์ตำแหน่ง Software Engineer ที่ Google (หรือที่เรียกกันว่าลูปสไตล์ LeetCode ที่ปิดท้ายด้วยคณะกรรมการคัดเลือก) ผมผ่านมาทั้งวงจรเลย ทั้งโฟนสกรีน รอบเขียนโค้ด รอบ system design รอบ behavioral โน้ตเลยครอบคลุมตัวกระบวนการด้วย ไม่ใช่แค่ตัวคำถาม
คนมองการสัมภาษณ์ของ Google ต่างกันมาก บางคนก็ออกตัวปกป้องกระบวนการนี้ บางคนก็เกลียดมัน ส่วนผมคิดง่ายๆ ว่าคุณจะมานั่งบ่นว่ามันเหมือนลอตเตอรีก็ได้ หรือจะกัดฟันเรียนรู้ว่าเครื่องจักรตัวนี้ทำงานยังไงก็ได้ ผมเลือกอย่างหลัง
สิ่งที่ทำให้ Google ต่างจากการสัมภาษณ์ทั่วไป คือรีครูตเตอร์บอกผมตั้งแต่คุยกันครั้งแรกเลยว่า คุณมีสิทธิ์สมัครได้สามครั้งในห้าปี หลังจากนั้นเขาจะไม่รับอีก สามครั้งสำหรับทั้งชีวิตการทำงาน ตอนผมเล่าเรื่องนี้ให้อดีตเพื่อนร่วมงานฟัง เขาเงียบไปประมาณห้าวินาที แล้วผมก็อ่านความเงียบนั้นออกว่า "อย่าทำพังนะ"
ผมแบ่งโน้ตออกเป็นหลายส่วน
- โฟนสกรีน
- การเขียนโค้ด
- System design
- Googleyness และ Leadership
- คณะกรรมการคัดเลือก
- Mock interview (กับเครื่องมือที่ผมใช้)
- การจับคู่ทีม
โฟนสกรีน
โฟนสกรีนของ Google ทำกันใน Google Doc ที่แชร์ร่วมกัน ไม่ใช่ IDE นะ เป็นเอกสารข้อความเปล่าๆ ไม่มี syntax highlight ไม่มี autocomplete คุณต้องเขียนโค้ดจริงในนั้นสี่สิบห้านาที โดยมีคนนั่งดูคุณพิมพ์ไปด้วย ผมได้โจทย์ sliding window กับโจทย์แปลงร่างจาก binary search ระดับ medium ทั้งคู่
Ready to ace your next interview?
InterviewMan gives you real-time AI answers during live interviews — undetectable on Zoom, Meet, and Teams.
Try InterviewMan Freeเวลาผมเขียนโปรแกรมปกติ ผมชอบลองนู่นลองนี่แล้วค่อยๆ แก้ไปเรื่อยๆ แต่วิธีนี้ใช้ไม่ได้เลยถ้าคุณมีเวลาสี่สิบห้านาที มี Google Doc เปล่าๆ และมีสายตาคู่หนึ่งจ้องคุณพิมพ์อยู่ ผมเสียดายที่ไม่มีใครบอกผมเรื่อง Doc นี้ก่อนเข้าสกรีน
รายละเอียดของกระบวนการที่ผมเพิ่งมารู้ทีหลัง คือถ้าคนคุมสกรีนยังตัดสินใจไม่ได้ เขาจะให้คุณสกรีนรอบสองแทนที่จะปัดตกเลย ผมรู้จักคนสองคนที่เจอแบบนี้ (คนหนึ่งมาจาก Discord ของบูตแคมป์เขียนโค้ด) และทั้งคู่ก็ผ่านในรอบสอง
การเขียนโค้ด
ผมไถ LeetCode ไปสองร้อยข้อก่อนเข้าลูป มันช่วยได้น้อยกว่าที่ควรจะเป็น และไม่ใช่เพราะโจทย์มันยากเกินไปด้วย
ส่วนที่ยากที่สุดของโจทย์ Google คือการมองให้ออกว่าจริงๆ แล้วมันถามอะไร คนสัมภาษณ์ของ Google จงใจยัดบริบทส่วนเกินกับตัวล่อหลอกเข้าไปในโจทย์ อดีตเพื่อนร่วมงานเตือนผมเรื่องนี้เป๊ะๆ เลย แต่ผมไม่ฟัง มีอยู่ครั้งหนึ่งผมรีบกระโจนใส่แพตเทิร์นหนึ่ง แล้วพอแก้โจทย์ไปได้แปดนาทีถึงเพิ่งรู้ตัวว่ากำลังแก้คนละโจทย์ ต้องย้อนกลับไปเริ่มใหม่ โจทย์มันฟังดูเหมือนข้อ sliding window ที่ผมเพิ่งซ้อมไปเมื่อคืนเป๊ะ แต่มันไม่ใช่ คนสัมภาษณ์นั่งเงียบกริบตลอดแปดนาทีนั้น มองผมอยู่เฉยๆ พอออกมาผมโทรหาเพื่อนร่วมงานจากลานจอดรถ เขาก็แค่บอกว่า เออ บอกแล้วไง
สิ่งที่ผมได้เรียนรู้
- คิดออกมาดังๆ ทุกวินาที
- ซ้อมโจทย์แบบผสมหลายอย่าง
- อย่าเชื่อการจับแพตเทิร์นจากที่ซ้อมเมื่อคืน
เรื่องคิดออกมาดังๆ นี่ย้ำเท่าไหร่ก็ไม่พอ คณะกรรมการอ่านสิ่งที่คนสัมภาษณ์เขียน และคนสัมภาษณ์ก็เขียนตามสิ่งที่คุณพูด ผมเงียบไปตลอดโจทย์กราฟข้อหนึ่ง ฟีดแบ็กที่ได้กลับมาคือ "ให้เหตุผลไม่ชัดเจน" ทั้งที่ผมรู้ว่าตัวเองทำอะไรอยู่ แต่ไม่มีใครรู้ เพราะผมไม่ได้พูดมันออกมา เพื่อนร่วมงานอ่านแพ็กเก็ตนั้นทีหลังแล้วบอกผมว่า มึงแก้ได้นะ แต่เขาเขียนถึงมึงเหมือนมึงนั่งเดามั่ว
เรื่องโจทย์แบบผสม Google ให้ผมเจอกราฟคู่กับ dynamic programming ในรอบหนึ่ง และทรีคู่กับ hashmap ในอีกรอบ binary search ล้วนๆ หรือ BFS ล้วนๆ แทบไม่เคยโผล่มาเดี่ยวๆ เลย โจทย์ medium เดี่ยวๆ ห้าร้อยข้อมีประโยชน์น้อยกว่าโจทย์แบบผสมห้าสิบข้อ ผมถลุงไปสามสุดสัปดาห์ไถแยกเป็นหัวข้อๆ กว่าจะเข้าใจเรื่องนี้
System design
System design มีแค่รอบเดียว และทั้งรอบอาจแขวนอยู่กับการตัดสินใจออกแบบจุดเดียว โค้ชที่ติวให้ผมเรียกมันว่า "ข้อมูลเชิงลึกที่เป็นหมุดยึด" ตอนแรกผมว่ามันฟังดูเว่อร์ไป แต่เขาพูดถูก ของผมคือเรื่อง cache invalidation สำหรับระบบกระจาย และผมเกือบมองไม่เห็นมันแค่สามสิบวินาทีเอง ถ้าพลาดตรงนี้ บทสนทนาจะไม่มีวันหลุดออกจากระดับไดอะแกรม แล้วหนึ่งในสามครั้งที่มีก็จะเสียเปล่า
Googleyness และ Leadership
Googleyness และ Leadership ฟังดูลึกลับ แต่เอาเข้าจริงมันคือสัมภาษณ์ behavioral ว่าด้วยเรื่องความขัดแย้งในทีม โปรเจกต์ที่ล้มเหลว และเรื่องการรับผิดชอบเป็นเจ้าของงาน คนสัมภาษณ์คนหนึ่งบอกผมว่ากรรมการบางคนแทบไม่อ่านส่วนนี้ในแพ็กเก็ตเลย ก็เตรียมไปเถอะ เพราะคุณเลือกกรรมการของตัวเองไม่ได้
คณะกรรมการคัดเลือก
การสัมภาษณ์ที่ Google มันคือลอตเตอรี (กรรมการนี่แหละทำให้มันเป็นแบบนั้น) วิศวกรสี่ห้าคนที่ไม่เคยเจอผมมาก่อน เป็นคนตัดสินชะตาผมจากแพ็กเก็ตของคนที่สัมภาษณ์ผม คนแปลกหน้านั่งอ่านโน้ตที่คนแปลกหน้าอีกคนเขียนถึงผม เพื่อนร่วมงานรู้จักคนหนึ่งที่ผ่านกระบวนการ Google สองรอบ เจอกรรมการคนละชุดกัน ผลออกมาคนละทางเลยทั้งที่ผลงานพอๆ กัน
Mock interview
Mock interview ช่วยเรื่องเกร็ดเล็กเกร็ดน้อยของกระบวนการได้มากกว่าลิสต์คำถามชุดไหนๆ ผมใช้อดีตเพื่อนร่วมงานเป็นคนสัมภาษณ์ และเราซ้อมกันเต็มรอบผ่าน Google Meet
ตรงนี้ผมโกงนิดนึง คือผมทำงานให้ InterviewMan ผมเลยเปิดเครื่องมือของเราระหว่างซ้อมแบบเดียวกับที่ผู้สมัครจริงจะใช้ มันจับโจทย์ผ่านเสียง แล้วขึ้นคำแนะนำแนวทางบนโอเวอร์เลย์ที่มีแค่คุณคนเดียวเห็น เพื่อนร่วมงานนั่งหาตั้งห้านาที ทั้งหน้าจอที่แชร์ ทั้งด็อกของผม ทั้งคลิปบันทึกเซสชัน ก็ไม่เห็นอะไรเลย ระหว่างซ้อมรอบ Googleyness มันดึงเรื่องความขัดแย้งออกมาจากบทสนทนา เป็นเรื่องที่ผมลืมไปสนิทแล้ว เรื่องแบบเดียวกับที่กรรมการว่ากันว่าแทบไม่อ่าน แต่ก็ยังต้องมีในแพ็กเก็ตอยู่ดี ส่วนตอนซ้อม system design มันชี้ข้อมูลเชิงลึกเรื่อง caching ที่กลายเป็นหมุดยึดของโจทย์ข้อนั้นพอดี
พูดถึงเครื่องมือโดยรวม เครื่องมือที่เน้นแต่เขียนโค้ดอย่าง Interview Coder คิดเงินเดือนละสองดอลลาร์เก้าสิบเก้า มันครอบคลุมแค่สามในห้ารอบ แล้วปล่อยให้คุณสู้เองในรอบ system design กับ behavioral ส่วน InterviewMan ครอบคลุมทั้งห้ารอบในราคาสิบสองดอลลาร์ต่อเดือนถ้าจ่ายแบบรายปี การเตรียมตัวสามเดือนของผมเลยจ่ายไปสามสิบหกดอลลาร์ น้อยกว่าค่า Interview Coder อาทิตย์เดียวอีก ตอนนี้เรามีผู้ใช้ห้าหมื่นเจ็ดพันคน พร้อมฟีเจอร์ล่องหนอีกยี่สิบกว่าตัว และเท่าที่ผมรู้ ยังไม่มีใครโดนจับได้สักคน
การจับคู่ทีม
การที่กรรมการตอบตกลงยังไม่ใช่ข้อเสนองาน หลังจากนั้นยังมีการจับคู่ทีม ที่ทั้งคุณและผู้จัดการที่จ้างต้องเห็นพ้องกัน และการอนุมัติของคุณจะมีอายุประมาณหนึ่งปี เพราะงั้นไม่ต้องรีบ คำแนะนำที่ดีที่สุดและออกจะสวนความรู้สึกหน่อยที่ผมได้มาจากเรื่องทั้งหมดนี้ คือรอทีมที่คุณอยากตื่นไปทำงานด้วยจริงๆ
Ready to Ace Your Next Interview?
Join 57,000+ professionals using InterviewMan to get real-time AI assistance during their interviews.

