คุณบอกว่าคุณกำลังสัมภาษณ์ตำแหน่งฝึกงานในคำถามดังนั้นนี่คือจุดยืนนั้นสำหรับนักพัฒนาเต็มเวลาแถบจะสูงขึ้นอีกเล็กน้อย
เมื่อคุณสัมภาษณ์ผู้ฝึกงานคุณต้องจำไว้ว่าพวกเขาอาจยังไม่สำเร็จการศึกษาและพวกเขาอาจเข้าเรียนในวิทยาลัยโดยไม่มีพื้นฐานด้านการเขียนโปรแกรมและวิทยาศาสตร์คอมพิวเตอร์มาก่อน ดังนั้นคุณต้องคาดหวังสิ่งที่คุณสามารถคาดหวังให้ใครบางคนรู้และอยู่ในระดับศักดิ์ศรีของตำแหน่ง (เช่น Google สามารถหลีกเลี่ยงความคาดหวังที่คน บริษัท ไม่เคยได้ยิน)
เมื่อพิจารณาถึงคำถามที่คุณนำเสนอฉันอาจจะดูพวกเขาดังต่อไปนี้ในการสัมภาษณ์:
1) เขียนฟังก์ชันที่คืนค่าจริงถ้าด้านสามเหลี่ยม (จำนวนเต็มทั้งหมด) a, b และ c สามารถแทนสามเหลี่ยมมุมฉากได้
การใช้งานพื้นฐานของรูปทรงเรขาคณิตที่มีการเข้ารหัสง่ายนักเรียนส่วนใหญ่ควรสามารถทำได้โดยไม่ยาก สิ่งเตือนใจของทฤษฎีบทพีทาโกรัสอาจเป็นสิ่งจำเป็นหากพวกเขาแสดงความเครียดเล็กน้อยเพราะอยู่ในระหว่างการสัมภาษณ์ เรื่องนี้เกือบจะถูกมองว่าเป็นปัญหา "ego boost" ในการที่จะช่วยให้บางคนถ้าพวกเขากังวลมากที่จะเข้าสัมภาษณ์
2) FizzBuzz
อีกครั้งแอปพลิเคชันอื่นของคำสั่งควบคุมพื้นฐานบางอย่าง นักเรียนที่ไม่ได้สัมผัสกับตัวดำเนินการโมดูลัสหรือไม่ได้ใช้งานมากนักอาจต้องได้รับการเตือน แต่ไม่ควรพบปัญหาจริงใด ๆ ในการแก้ปัญหา
3) คำนวณองค์ประกอบที่ N ของ Fibonacci โดยใช้การเรียกซ้ำ (ถ้าพวกเขาไม่รู้ว่า Fibonacci คืออะไรฉันจะเขียนนิยาม F (n) = F (n-1) + F (n-2); F (1 ) = 1; F (0) = 1)
สิ่งนี้มีแนวโน้มที่จะเป็นปัญหาที่พบได้บ่อยดังนั้นนักเรียนส่วนใหญ่ (ถ้าไม่ใช่ทั้งหมด) จะเห็นบางจุดก่อนสำเร็จการศึกษา สิ่งที่จับได้คือมันมักจะปรากฏขึ้นเมื่อการเรียกซ้ำถูกนำเสนอให้กับนักเรียนในขณะที่มันยืมตัวเองได้ดีหรือการแก้ปัญหาแบบวนซ้ำหรือวนซ้ำซึ่งสามารถนำมาเปรียบเทียบได้ดังนั้นนักเรียนจากโรงเรียนต่าง ๆ ในทางปฏิบัติหากมีคนไม่สามารถเกิดขึ้นกับ recursive ฉันจะขอทางเลือกอื่นโดยใช้ลูปและถ้าพวกเขาไม่สามารถคิดได้ว่าฉันจะกังวลเกี่ยวกับความสามารถที่มีอยู่
4) ใช้โครงสร้างรายการสำหรับจำนวนเต็มและเขียนฟังก์ชั่นเพื่อย้อนกลับ
จริง ๆ แล้วคำถามนี้อาจเป็นบิตเปิดกว้างเกินไปเนื่องจากมันถูกเขียนขึ้นดังนั้นจึงอาจเป็นคำถามที่ดีในการดูว่าผู้สมัครค้นหาข้อมูลเพิ่มเติมอย่างไร (เช่นควรลบฟังก์ชั่นต่างๆรวมอยู่ด้วยการแปลงเป็นอาร์เรย์ ฯลฯ ) คำแถลงปัญหาที่กำหนดไว้ ("ใช้โครงสร้างรายการพื้นฐานสำหรับจำนวนเต็มที่อนุญาตให้เพิ่มตัวเลขไปยังจุดสิ้นสุดหรือดัชนีโดยพลการลบและรวมถึงฟังก์ชั่นเพื่อส่งกลับสำเนาของรายการที่ตรงกันข้าม") นักเรียนควรจะสามารถแก้ปัญหาได้ ปัญหาตราบใดที่รายการต่าง ๆ เป็นโครงสร้างทั่วไปที่นำเสนอในหลักสูตรโครงสร้างข้อมูลระยะต้นหรือในหลักสูตรวิทยาศาสตร์คอมพิวเตอร์ขั้นต้นขั้นต้น
ในแง่ของการจัดการกับผู้สมัครหากพวกเขากำลังดิ้นรนให้แน่ใจว่าพวกเขาผ่อนคลายและปล่อยให้พวกเขาผ่อนปรนเล็กน้อยเพราะพวกเขาอาจจะมีความกังวลเรื่องประสิทธิภาพเพราะนี่อาจเป็นการสัมภาษณ์ครั้งแรกของพวกเขา อาจต้องใช้เคล็ดลับในการแก้ปัญหาส่วนใหญ่ดังนั้นในกรณีของปัญหาที่สามและสี่ซึ่งต่างจากสองปัญหาแรก
นอกจากนี้จัดโครงสร้างกระบวนการสัมภาษณ์โดยรวมเพื่อให้มี "จุดทางออกที่สง่างาม" ในตัวเช่นคุณอาจมีวาระต่อไปนี้:
- พบและทักทายขั้นตอนการสัมภาษณ์
- สัมภาษณ์สั้น ๆ กับเจ้าหน้าที่โปรแกรมเมอร์คำถามพื้นฐานเกี่ยวกับภูมิหลัง
- การนำเสนอแบบทดสอบการเขียนโปรแกรม
- หยุด
- กลับมาจากการหยุดพักการไล่ออกผู้สมัครบางคนที่ไม่เหมาะสม
- สัมภาษณ์เพิ่มเติมกับเจ้าหน้าที่โปรแกรมเมอร์
- สัมภาษณ์กับทรัพยากรมนุษย์ (ถ้าจำเป็น)
- สรุป.
ขั้นตอนการสัมภาษณ์นี้มีแนวโน้มที่จะทำงานได้ดีหากคุณต้องการที่จะยกเลิกผู้สมัครก่อนเนื่องจากพวกเขารู้ตั้งแต่ต้นว่าพวกเขาอาจถูกไล่ออกหลังจากหยุดพัก การสัมภาษณ์สั้น ๆ ก่อนการทำแบบทดสอบหมายความว่าพวกเขาไม่เพียง แต่มาปรากฏตัวเพื่อทำการทดสอบซึ่งทำให้พวกเขาได้ฝึกฝนการสัมภาษณ์และอาจช่วยให้พวกเขาตัดสินใจว่าพวกเขาไม่เหมาะสม หากมีโปรแกรมเมอร์คนอื่น ๆ ที่สังเกตการตอบคำถามหรือช่วยเหลือผู้สมัครในระหว่างนั้นมันก็ให้โอกาสพวกเขาผ่าน / ล้มเหลวผู้สมัครในขณะที่พวกเขากำลังพักระยะสั้น
ตลอดเวลาที่คุณกำลังสัมภาษณ์เพื่อฝึกงานและผู้สมัครเป็นนักเรียนคุณต้องจำไว้ว่าพวกเขายังเป็นนักเรียนอยู่และอาจไม่มีการฝึกฝนมากนักกับการสัมภาษณ์ (นำไปสู่ความวิตกกังวลเกี่ยวกับประสิทธิภาพ) แม้จะสามารถตอบคำถามซึ่งหมายความว่าอาจเป็นความคิดที่ดีที่จะส่งพวกเขาไปพร้อมกับสำเนาของ "ทางออกที่ดีที่สุด" ไปยังปัญหาที่พวกเขาได้รับเช่นกัน