ด้วยความเจริญทางเทคโนโลยีครั้งใหญ่ครั้งที่สองของ Silicon Valley วิศวกรจึงเป็นที่ต้องการอย่างมากในหมู่ผู้เริ่มต้นและยักษ์ใหญ่ด้านเทคโนโลยี สำหรับผู้ที่มีพื้นฐานด้านวิศวกรรมหรือกำลังศึกษาวิทยาการคอมพิวเตอร์โลกตอนนี้เป็นหอยนางรมของคุณแล้ว
ดังที่กล่าวไปแล้ว บริษัท ต่าง ๆ ไม่เพียง แต่มอบงานให้ โปรแกรมเมอร์ยังคงต้องผ่านกระบวนการสัมภาษณ์พิเศษ - รวมถึงการสัมภาษณ์ทางเทคนิคบางครั้งหวั่น
การเตรียมตัวสำหรับสิ่งเหล่านี้อาจสร้างความสับสนในการทดสอบ คุณควรศึกษาโครงการทางเทคนิคที่เฉพาะเจาะจงหรือรีเฟรชหัวข้อทั่วไปเป็นจำนวนมากหรือไม่ คุณควรฝึกฝนคอมพิวเตอร์หรือกับเพื่อน
ในฐานะวิศวกรคนที่สามที่ Pocket Gems ซึ่งมีพนักงานด้านเทคนิคประมาณ 165 คนฉันได้ทำการสัมภาษณ์ทางโทรศัพท์และบนเว็บไซต์หลายร้อยครั้ง ในช่วงเวลานี้ฉันได้เรียนรู้มากมายเกี่ยวกับการเตรียมตัวอย่างถูกต้อง นี่คือเคล็ดลับที่คุณต้องการในการสัมภาษณ์ด้านเทคนิคครั้งต่อไปของคุณ
มุ่งเน้นไปที่ความรู้พื้นฐาน
ผู้สัมภาษณ์ส่วนใหญ่จะถามคำถามคุณเกี่ยวกับปัจจัยพื้นฐานของคุณ: โครงสร้างข้อมูลการวิเคราะห์ความซับซ้อนของอัลกอริทึมการออกแบบชั้นเรียนและอื่น ๆ เหล่านี้จะเป็นคำถามทั้งโดยตรงเกี่ยวกับปัจจัยพื้นฐาน (เช่นใช้ X เพื่อทำ Y) และคำถามที่คุณจะใช้พื้นฐานของคุณ (เพิ่มเติมเกี่ยวกับด้านล่าง)
คิดว่าพื้นฐานเป็นเครื่องมือในกล่องเครื่องมือของคุณ พวกเขาจะยังคงเหมือนเดิมไม่ว่าเทคโนโลยีใหม่ ๆ จะออกมาดีขนาดไหน ด้วยพื้นฐานที่แข็งแกร่งคุณจะพร้อมรับมือกับปัญหาปลายเปิดได้ดีขึ้น - ปัญหาที่เราและผู้เริ่มต้นธุรกิจอื่น ๆ จำนวนมากแก้ในแต่ละวัน โดยมุ่งเน้นที่พื้นฐานผู้สัมภาษณ์สามารถใช้เวลาน้อยลงในการตั้งคำถามการสัมภาษณ์และมีเวลามากขึ้นในการเห็นว่าคุณคิดอย่างไร
ตัวอย่างเช่นคุณอาจถูกถามเช่น: คุณได้รับต้นไม้ไบนารีและสองโหนดในต้นไม้ ค้นหาบรรพบุรุษที่พบบ่อยที่สุดของสองโหนดที่กำหนดในเวลา O (n)
จากคำถามนี้ผู้สัมภาษณ์ต้องการดูว่าคุณสามารถสื่อสารกระบวนการคิดและวิธีแก้ปัญหาของคุณได้ดีเพียงใด คุณคิดอย่างไรกับปัญหาจัดระเบียบความคิดของคุณและสื่อสารคำตอบของคุณบ่อยครั้งสำคัญเท่ากับข้อสรุปของคุณ เราทำงานในสภาพแวดล้อมที่ซับซ้อนและเปลี่ยนแปลงตลอดเวลาและต้องการคนที่สามารถแก้ปัญหาที่ยากลำบากและสื่อสารกับเพื่อนร่วมทีมด้านเทคนิคและไม่ใช่ด้านเทคนิคได้อย่างมีประสิทธิภาพ
สำหรับพื้นที่ของการสัมภาษณ์คุณควรพูดคุยเรื่องต่างๆเช่นสตริง, อาร์เรย์, ไวยากรณ์พื้นฐาน, ชนิดข้อมูล, รายการที่เชื่อมโยง, ต้นไม้, กราฟ, สแต็ค, คิวและตารางแฮช โอ้และให้แน่ใจว่าคุณสามารถตอบ FizzBuzz ได้โดยไม่ต้องละสายตา
เตรียมรับมือกับสิ่งต่าง ๆ
พื้นฐานของคุณแต่ละข้อมีข้อดีข้อเสียและเสนอวิธีแก้ไขปัญหาเฉพาะสำหรับปัญหาเฉพาะประเภท หลังจากผู้สัมภาษณ์ถามคำถามคุณเพียงอย่างเดียวเกี่ยวกับปัจจัยพื้นฐานของพวกเขาพวกเขามีแนวโน้มที่จะเห็นว่าคุณสามารถใช้พวกเขาในทางปฏิบัติอย่างไร นี่คือความสำเร็จโดยการถามคำถามปลายเปิดที่สามารถแก้ไขได้ในหลากหลายวิธี
คำถามตัวอย่างที่นี่จะเป็น: คุณได้รับสมการทางคณิตศาสตร์เป็นสตริง สมการนี้จะมีตัวเลขหลักเดียว 0-9, บวก, ลบ, คูณและวงเล็บ เขียนฟังก์ชันที่ใช้สมการนี้และคำนวณคำตอบที่ถูกต้อง ตัวอย่างอินพุตประกอบด้วย“ 1 + 1” และ“ 2 * (1 + 9) - ((2 + 5) -9”)
ก่อนหน้านี้ผู้สัมภาษณ์ต้องการดูว่าคุณทำลายคำถามปลายเปิดและกระบวนการคิดของคุณอย่างไรในการเลือกวิธีแก้ปัญหา สิ่งสำคัญที่สุดคือพวกเขาต้องการเห็นว่าคุณสามารถสื่อสารปัญหาที่ซับซ้อนได้อย่างมีประสิทธิภาพ
ไม่ว่าคุณจะเลือกคำถามหรือคำตอบใดให้แน่ใจว่าได้คิดออกมาดัง ๆ ! หากคุณมีวิธีการแก้ไขปัญหาที่แตกต่างกันพูดคุยผ่านตัวเลือกก่อนตัดสินใจเลือกใช้ ช่วยผู้สัมภาษณ์เห็นและเข้าใจกระบวนการคิดของคุณ นอกจากนี้ผู้สัมภาษณ์อาจแนะนำวิธีการหนึ่งในการแก้ปัญหาอื่น ๆ เพราะเขาหรือเธอรู้ว่าคนอื่นอาจมีข้อผิดพลาดบางอย่างหรืออาจจะอยู่นอกขอบเขตของการสัมภาษณ์
อย่ากลัวที่จะถามคำถามว่ามีอะไรไม่ชัดเจนหรือมีรายละเอียดไม่มากนัก รายการเหล่านี้คุณกำลังคิดเช่นกัน - และให้ผู้สัมภาษณ์ทราบว่าคุณจะทำงานร่วมกับผู้อื่นอย่างไร ตรวจสอบให้แน่ใจว่าคุณกำลังถามคำถามเพื่อให้เข้าใจอย่างถ่องแท้และคุณไม่ได้ขยายขอบเขตของปัญหา (เช่นอะไรคือตัวอย่างอินพุต) ฉันต้องกังวลเกี่ยวกับการหารด้วย 0 หรือไม่ฉันต้องกังวลเกี่ยวกับ ประหยัดเวลากลางวันหรือไม่)
สุดท้ายตรวจสอบให้แน่ใจว่าคุณใช้กรณีทดสอบทางวาจาสองสามครั้งก่อนที่คุณจะพูดว่าคุณทำเสร็จแล้ว วิธีนี้ช่วยให้คุณตรวจสอบรหัสและแสดงผู้สัมภาษณ์ว่าคุณกำลังตรวจสอบรหัสของคุณ ง่ายเหมือนที่จะสัมภาษณ์งานเราโชคไม่ดีที่ไม่สามารถอ่านความคิดของคุณ
ดังนั้นในขณะที่คุณกำลังเตรียมฝึกแก้ปัญหาด้วยเครื่องมือต่าง ๆ จากกล่องเครื่องมือของคุณเพื่อพัฒนาสัญชาตญาณเกี่ยวกับเรื่องนี้ รู้ว่าเมื่อใดควรใช้เครื่องมือแต่ละอย่างเพื่อไม่ให้สะดุดในระหว่างการสัมภาษณ์ และให้แน่ใจว่าคุณฝึกอธิบายกระบวนการคิดของคุณอย่างเต็มที่ - นี่อาจเป็นส่วนที่ยากที่สุดสำหรับผู้เขียนโค้ดที่คุ้นเคยกับการทำงานอย่างโดดเดี่ยว
การปฏิบัติ, การปฏิบัติ, การปฏิบัติ
ยิ่งคุณฝึกฝนมากเท่าไหร่คุณก็จะพร้อมสำหรับการสัมภาษณ์การเขียนโค้ดทางเทคนิคมากขึ้นเท่านั้น สิ่งนี้เป็นจริงสำหรับทุกสิ่ง แต่โดยเฉพาะอย่างยิ่งที่เกี่ยวข้องกับการสัมภาษณ์ทางเทคนิค - พวกเขาต้องการให้คุณอุ่นสมองของคุณ
ต่อไปนี้เป็นเคล็ดลับที่จะช่วยให้คุณได้รับประโยชน์สูงสุดจากเวลาฝึกฝน:
- ตรวจสอบให้แน่ใจว่าคุณจำลองสภาพแวดล้อมการสัมภาษณ์ ให้เวลาตัวเองกับปัญหา หากคุณกำลังจะสัมภาษณ์ทางโทรศัพท์ให้ฝึกฝนทั้ง Stypi และ Google Docs (ฉันรู้ด้วยตนเองว่าการไม่มีการเติมข้อความอัตโนมัติและการเน้นไวยากรณ์ทำให้ฉันสะดุดในการสัมภาษณ์ทางโทรศัพท์) หากคุณกำลังจะทำการสัมภาษณ์ด้วยตนเองให้ฝึกทำปัญหาบนกระดาษหรือบนกระดานไวท์บอร์ด
- มีเพื่อนที่ไม่ใช่ด้านเทคนิคถามคำถามสัมภาษณ์และนำเขาไปสู่คำตอบของคุณ หากคุณสามารถอธิบายให้เขาหรือเธอฉันแน่ใจว่าคุณสามารถอธิบายให้ผู้สัมภาษณ์ทางเทคนิคของคุณ
- อย่ารู้สึกว่าคุณกำลังโกงถ้าคุณใช้เครื่องมือเตรียมการบางอย่างที่อยู่ข้างนอก พวกเขามักจะให้ข้อมูลเชิงลึกที่ดีและคำถามฝึก รายการโปรดของฉันคือเว็บไซต์เช่น TopCoder และหนังสือเล่ม แรกของ Head หนังสือเล่มอื่น ๆ ที่พูดถึงกระบวนการสัมภาษณ์มากขึ้นคือ การสัมภาษณ์การเขียนโปรแกรม และการ แคร็กสัมภาษณ์รหัส
การสัมภาษณ์การเขียนโค้ดทางเทคนิคอาจดูค่อนข้างน่ากลัว แต่ด้วยวิธีการฝึกที่เน้นคุณจะพร้อมที่จะเข้าสัมภาษณ์ อย่าลืมจดจ่อกับขนมปังและเนยพื้นฐานของคุณและฝึกฝนให้มาก ทำตามคำแนะนำด้านบนแล้วคุณจะได้เตรียมตัวสำหรับการสัมภาษณ์ทางเทคนิคครั้งต่อไป
ต้องการข้อมูลเพิ่มเติมหรือไม่ ฉันเพิ่งนำเสนอเกี่ยวกับเรื่องนี้ที่การประชุมวิชาชีพวิศวกรรม UC Berkeley / เทค ลองดูสไลด์ของฉันจากการพูดคุยด้านล่างเพื่อรับความคิดและแหล่งข้อมูลเพิ่มเติม!




