จะผ่านการสัมภาษณ์ HackerRank ได้อย่างไร
โดย Aaron Cao · อัปเดตเมื่อ

สามสิ่งที่ตัดสินผล คือ การผ่านเทสต์เคสที่ซ่อนไว้ไม่ใช่แค่เคสตัวอย่าง การทำเสร็จภายในเวลาที่กำหนด และการอยู่ในกรอบการพรอกเตอร์ตลอดเวลา ให้ฝึกฝนในเอดิเตอร์ของ HackerRank เองเพื่อไม่ให้สภาพแวดล้อมกลายเป็นสิ่งที่ทำให้คุณประหลาดใจ
HackerRank ให้คะแนนอะไรกันแน่
คะแนนที่ผู้สรรหาบุคลากรเห็นไม่ใช่แค่ผ่านหรือไม่ผ่าน การประเมินของ HackerRank รายงานหลายสิ่งพร้อมกัน และการรู้ว่าอะไรเปลี่ยนแปลงอย่างเป็นอิสระจากกันจะเปลี่ยนวิธีที่คุณใช้เวลาในตัวจับเวลา
- เทสต์เคสที่ผ่าน แต่ละโจทย์จะรันกับเคสตัวอย่างที่มองเห็นได้และชุดเทสต์เคสที่ซ่อนไว้ซึ่งใหญ่กว่า ในชุดที่ซ่อนไว้นี้เองที่มีอินพุตว่างเปล่า อิลิเมนต์เดียว ค่าซ้ำ และขนาดสูงสุดซ่อนอยู่ คะแนนที่เสียไปส่วนใหญ่มาจากเคสขอบเขต ไม่ใช่จากอัลกอริทึมที่ผิด
- คะแนนบางส่วน การให้คะแนนมักจะคิดตามเทสต์เคสแต่ละอัน ดังนั้นโซลูชันที่ถูกต้องแต่ช้าก็ยังได้คะแนนจริง ส่วนโซลูชันที่สมบูรณ์แบบแต่ไม่ได้ส่งจะไม่ได้คะแนนเลย
- ข้อจำกัดด้านเวลาและหน่วยความจำ เมื่อโจทย์กำหนดสิ่งเหล่านี้ไว้ โซลูชันที่ไม่มีประสิทธิภาพจะหมดเวลาในเทสต์เคสที่ซ่อนไว้ขนาดใหญ่แม้จะผ่านทุกเคสตัวอย่างก็ตาม
- รายงานการพรอกเตอร์ การสลับแท็บ การสูญเสียโฟกัส เหตุการณ์การวาง และภาพถ่ายจากเว็บแคมในกรณีที่เปิดใช้งาน จะถูกแนบไปกับงานที่คุณส่งเพื่อให้ผู้สรรหาบุคลากรอ่าน
สิ่งที่แพลตฟอร์มการจ้างงานอื่น ๆ ทดสอบในแต่ละขั้นตอนถูกรวบรวมไว้ที่ศูนย์รวมแพลตฟอร์มการจ้างงาน
คุณควรเตรียมตัวสำหรับรอบการประเมินอย่างไร
คุณรู้อัลกอริทึมอยู่แล้วแต่ก็ยังเสียคะแนนไปในครั้งที่แล้ว ซึ่งทำให้รู้สึกเหมือนว่าการฝึกฝนนั้นสูญเปล่า ส่วนนี้จะพูดถึงเรื่องที่เป็นสภาพแวดล้อมมากกว่าทักษะ คะแนนส่วนใหญ่ที่กู้คืนได้อยู่ตรงนี้ และการกู้คืนก็มีต้นทุนต่ำ
- ฝึกฝนในเอดิเตอร์ของ HackerRank มันไม่ใช่ IDE ของคุณ ไม่มีระบบเติมคำอัตโนมัติที่คุณพึ่งพา ไม่มีตัวดีบัก และคีย์ลัดของคุณก็หายไป ให้แก้โจทย์เต็มรูปแบบสักสองสามข้อในนั้นก่อนถึงวันจริง
- เรียนรู้สตับของอินพุต บางโจทย์ให้ signature ฟังก์ชันที่แยกวิเคราะห์มาแล้วแก่คุณ บางโจทย์ให้คุณอ่านจากสแตนดาร์ดอินพุตเอง การอ่านสตับผิดเป็นสาเหตุทั่วไปที่ทำให้ล้มเหลวในทุกเทสต์เคสทั้ง ๆ ที่ตรรกะถูกต้อง
- เลือกภาษาที่คุณดีบักได้เร็วที่สุด ไม่ใช่ภาษาที่ดูน่าประทับใจที่สุด ตัวชี้วัดคือการผ่านการทดสอบ
- เขียน brute force ก่อน ส่งมันไป แล้วค่อยปรับให้เหมาะสม การล็อกคะแนนบางส่วนไว้ก่อนที่เวลาจะหมดคือนิสัยที่มีคุณค่าที่สุด
- ทดสอบขอบเขตด้วยมือ อินพุตว่างเปล่า อิลิเมนต์เดียว ค่าเหมือนกันทั้งหมด ขนาดสูงสุด
ลองนึกถึงวิศวกรแบ็กเอนด์คนหนึ่งที่กำลังเตรียมตัวสำหรับการคัดกรองของทีมแพลตฟอร์ม เขาเคยแก้โจทย์พื้นฐานเหล่านี้มาก่อนแล้ว แต่ใช้เวลาช่วงแรกของการทดสอบต่อสู้กับสตับการแยกวิเคราะห์อินพุต และส่งโซลูชันได้เพียงหนึ่งข้อแทนที่จะเป็นสาม ความรู้ด้านอัลกอริทึมของเขาไม่ใช่ข้อจำกัดเลยแม้แต่น้อย
อะไรเปลี่ยนไปในรอบ CodePair แบบสด
CodePair คือเอดิเตอร์ที่แชร์ร่วมกันโดยมีคนอยู่ในสาย ซึ่งทำให้มันเป็นบทสนทนาที่มีชิ้นงานโค้ดประกอบมากกว่าจะเป็นการทดสอบ การให้คะแนนคือการตัดสินของมนุษย์ และความเงียบให้ความรู้สึกที่ไม่ดี
- พูดทวนโจทย์ใหม่และยืนยันเงื่อนไขก่อนเขียนอะไรทั้งสิ้น
- พูดแนวทางออกมาดัง ๆ ก่อน รวมถึงแนวทางที่คุณปฏิเสธและเหตุผลด้วย ผู้สัมภาษณ์ให้คะแนนกระบวนการให้เหตุผล และแนวทางที่ถูกปฏิเสธก็เป็นหลักฐานของสิ่งนั้น
- พิมพ์ไปพร้อมกับพูดไป ช่วงเงียบยาว ๆ เป็นข้อร้องเรียนที่พบบ่อยที่สุดที่ผู้สัมภาษณ์รายงานเกี่ยวกับรอบนี้
- เล่าเทสต์เคสของคุณออกมา การไล่ดูเคสขอบเขตโดยไม่ต้องถูกกระตุ้นแสดงถึงความใส่ใจแบบเดียวกับที่เทสต์ที่ซ่อนไว้วัดในรอบแบบอะซิงโครนัส
- ถามก่อนปรับให้เหมาะสม บ่อยครั้งที่ผู้สัมภาษณ์ต้องการเวอร์ชันที่ใช้งานได้พร้อมการพูดคุยเรื่องความซับซ้อน ไม่ใช่เวอร์ชันที่ดีที่สุด
การฝึกเล่าเรื่องแบบนั้นออกมาดัง ๆ คือจุดประสงค์ของโหมดสัมภาษณ์จำลอง เพราะความล้มเหลวตรงนี้เป็นเรื่องของการพูด ไม่ใช่อัลกอริทึม
ผู้ช่วยสัมภาษณ์ AI เหมาะกับตรงไหน และไม่เหมาะกับตรงไหน
การพูดตรง ๆ เรื่องนี้สำคัญกว่าคำตอบแบบการตลาด
- การประเมิน HackerRank แบบมีการพรอกเตอร์อยู่นอกขอบเขต การพรอกเตอร์บันทึกการสลับแท็บ การสูญเสียโฟกัส เหตุการณ์การวาง และเฟรมจากเว็บแคม การแชร์หน้าจอ การบันทึกหน้าจอ สภาพแวดล้อมที่มีการพรอกเตอร์ และเครื่องที่บริษัทจัดการเอง เป็นกรณีที่ไม่มีผู้ช่วยใดเหมาะสม และ SubcueAI ไม่ได้อ้างเป็นอย่างอื่น
- การเตรียมตัวคือจุดที่มันเหมาะสม การฝึกซ้อมรอบจำลองล่วงหน้าออกมาดัง ๆ สร้างนิสัยการเล่าเรื่องที่รอบ CodePair ให้คะแนน
- บทสนทนาเชิงพฤติกรรมและการออกแบบระบบที่อยู่รอบ ๆ รอบการเขียนโค้ดเป็นการสัมภาษณ์ทั่วไปบนซอฟต์แวร์ประชุมทั่วไป และนั่นคือขอบเขตที่ SubcueAI ถูกสร้างขึ้นมาเพื่อรองรับ
สิ่งที่แพลตฟอร์มมองเห็นได้และมองไม่เห็นได้ถูกอธิบายไว้อย่างละเอียดมากขึ้นที่ศูนย์รวมเรื่องการตรวจจับได้