มอคอินเทอร์วิว Java Developer: วิธีฝึกซ้อมสำหรับตำแหน่ง Java

โดย Aaron Cao · อัปเดตเมื่อ

มอคอินเทอร์วิว Java Developer: วิธีฝึกซ้อมสำหรับตำแหน่ง Java
มอคอินเทอร์วิวสำหรับ Java Developer ควรฝึกพูดออกเสียงสามเรื่อง ได้แก่ คำถามพื้นฐานภาษาและ JVM ที่คุณอธิบายได้โดยไม่ต้องดูโน้ต โจทย์เขียนโค้ดด้วยภาษา Java ในตัวแก้ไขข้อความธรรมดา และการพูดคุยเรื่อง backend เกี่ยวกับ Spring ฐานข้อมูล และ concurrency ให้ประเมินทั้งคำอธิบายและโค้ด

มอคอินเทอร์วิวสำหรับ Java Developer ควรฝึกพูดออกเสียงสามเรื่อง ได้แก่ คำถามพื้นฐานภาษาและ JVM ที่คุณอธิบายได้โดยไม่ต้องดูโน้ต โจทย์เขียนโค้ดด้วยภาษา Java ในตัวแก้ไขข้อความธรรมดา และการพูดคุยเรื่อง backend เกี่ยวกับ Spring ฐานข้อมูล และ concurrency ให้ประเมินทั้งคำอธิบายและโค้ด

มอคอินเทอร์วิว Java Developer ควรมีอะไรบ้าง

สร้างมอคอินเทอร์วิวโดยอิงจากรอบต่าง ๆ ที่กระบวนการสัมภาษณ์ Java มักมี:

  • พื้นฐานภาษา สัญญาของ equals() และ hashCode(), immutability, checked exception กับ unchecked exception, และ generics ที่มี type erasure
  • Collections และ concurrency HashMap ทำงานภายในอย่างไร ควรใช้ ConcurrentHashMap เมื่อไหร่ lock กับ synchronized ต่างกันอย่างไร thread pool และ CompletableFuture
  • JVM heap กับ stack, garbage collection ทำงานอย่างไร และคุณจะหา memory leak ได้อย่างไร
  • การเขียนโค้ดด้วย Java โจทย์อัลกอริทึมหรือโจทย์ออกแบบเล็ก ๆ ใน shared editor
  • การออกแบบ backend บริการ REST ด้วย Spring Boot, transaction, และ query ที่ช้าเพราะรูปแบบการโหลดของ JPA
  • Behavioral ปัญหาบนโปรดักชันที่คุณรับผิดชอบและความเห็นต่างเชิงเทคนิค

รายการคำถามอยู่ในหน้าคำถามสัมภาษณ์เขียนโค้ด Javaและคำถามสัมภาษณ์ Spring Boot มอคอินเทอร์วิวคือแผนการฝึกซ้อม: พูดคำตอบเหล่านี้ออกเสียง จับเวลา และรับมือกับคำถามตาม

จะทำรอบเขียนโค้ดโดยไม่มี IDE ได้อย่างไร

นักพัฒนา Java ส่วนใหญ่เขียนโค้ดทั้งวันใน IntelliJ IDEA หรือ Eclipse จึงเป็นเรื่องสมเหตุสมผลที่จะกังวลเกี่ยวกับรอบที่ใช้ shared editor ธรรมดา หัวข้อนี้อธิบายวิธีฝึกซ้อมสำหรับรอบนั้น วิธีแก้คือฝึกภายใต้เงื่อนไขเดียวกัน: ไม่มี autocomplete ไม่มีคำแนะนำจาก compiler และพูดไปด้วยพิมพ์ไปด้วย

  • เขียน class, method signature และ import ด้วยมือก่อนเขียน logic
  • เลือก collection อย่างตั้งใจและอธิบายเหตุผล เช่นใช้ ArrayDeque แทน LinkedList สำหรับ queue
  • จัดการค่า null, input ว่าง และ overflow ออกเสียงก่อนที่ผู้สัมภาษณ์จะถาม
  • ไล่ตัวอย่างเล็ก ๆ หนึ่งตัวผ่านโค้ดด้วยมือ แล้วบอก time complexity และ space complexity
  • ค่อยวางโค้ดลงใน IDE ทีหลังเพื่อดูว่าส่วนไหนที่คอมไพล์ไม่ผ่าน

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

จะฝึกพูดคุยเรื่อง JVM และ concurrency ได้อย่างไร

วิศวกร backend คนหนึ่งที่มีประสบการณ์ Spring หลายปี กำลังเตรียมตัวสำหรับทีม payments ถูกถามในมอคอินเทอร์วิวว่าเธอจะหาสาเหตุที่หน่วยความจำของบริการเพิ่มขึ้นเรื่อย ๆ ได้อย่างไร คำตอบแรกของเธอคือเพิ่มขนาด heap เมื่อทบทวนใหม่ เธอปรับคำตอบให้เป็นลำดับขั้นตอน: ยืนยันการเพิ่มขึ้นจาก metric และ log ของ garbage collection, เก็บ heap dump, หา object ที่ครองสัดส่วนมากที่สุด, ตามรอยไปจนถึง cache ที่ไม่มีการ evict แล้วจึงแก้ไขและเฝ้าดูหน่วยความจำหลัง deploy ในมอคครั้งถัดไป คู่ของเธอเปลี่ยนเป็น counter ที่สูญเสียการอัปเดตเมื่อมีโหลดสูง และเธออธิบายว่าทำไม AtomicLong หรือ lock จึงแก้ปัญหานี้ได้ และแต่ละวิธีมีต้นทุนอย่างไร

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

ควรเก็บฟีดแบ็กแบบไหน และ SubcueAI เหมาะกับตรงไหน

หลังมอคแต่ละครั้ง ตรวจสอบว่าคุณอธิบาย trade-off แทนที่จะแค่ระบุชื่อ API หรือไม่ โค้ดของคุณคอมไพล์ผ่านตั้งแต่วางครั้งแรกหรือไม่ คุณทดสอบ edge case โดยไม่ต้องมีใครบอกหรือไม่ และคำตอบด้านการออกแบบของคุณพูดถึง transaction, การจัดการความล้มเหลว และวิธีที่คุณจะสังเกตการณ์บริการหรือไม่ คู่มือฝึกซ้อมสำหรับตำแหน่งอื่น ๆ อยู่ในฮับมอคอินเทอร์วิว

ในการสัมภาษณ์วิดีโอจริง SubcueAI ถอดเสียงคำพูดของผู้สัมภาษณ์และร่างประเด็นคำตอบแบบมีโครงสร้างไว้ใน overlay ในเครื่อง จากแอปเดสก์ท็อปบน macOS หรือ Windows หรือส่วนขยายเบราว์เซอร์ใน Chrome หรือ Edge โดยไม่มีบอทเข้าร่วมการโทรเลย เหมาะกับรอบที่เป็นการพูดคุย ส่วนรอบเขียนโค้ดใน shared editor หรือผ่านการแชร์หน้าจอนั้นมองเห็นได้ทั้งหมด การประเมินแบบมีผู้คุมสอบอยู่นอกขอบเขต และงาน take-home ก็เป็นงานของคุณเองล้วน ๆ

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

หัวข้อ Java แบบไหนที่พบบ่อยที่สุดในการสัมภาษณ์ developer

Collections, concurrency, หน่วยความจำ JVM และ garbage collection, exception, generics, stream และ lambda และสำหรับตำแหน่ง backend คือ Spring และ JPA เตรียมรับคำถามตามที่ถามว่าทำไม ไม่ใช่แค่อะไร

การสัมภาษณ์ Java ให้ใช้ IntelliJ IDEA ได้ไหม

แล้วแต่กรณี หลายรอบเขียนโค้ดสดใช้ shared browser editor ที่ไม่มี autocomplete ในขณะที่บางรอบ pair programming อนุญาตให้ใช้ IDE ของตัวเองผ่านการแชร์หน้าจอ ลองถามผู้สรรหาว่าจะเจอแบบไหน

จะฝึกโจทย์เขียนโค้ด Java คนเดียวได้อย่างไร

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

SubcueAI ช่วยระหว่างรอบเขียนโค้ด Java สดได้ไหม

ช่วยไม่ได้กับโค้ดที่คุณพิมพ์ใน shared editor ซึ่งผู้สัมภาษณ์เห็นขณะที่คุณเขียน SubcueAI ช่วยในส่วนที่เป็นบทสนทนาของการสัมภาษณ์วิดีโอ เช่น คำถามเรื่อง JVM การออกแบบ และ behavioral

คำถามที่เกี่ยวข้อง

← เพิ่มเติมเกี่ยวกับ สัมภาษณ์จำลองและการฝึกซ้อม