ดูเหมือนว่ามีความแตกต่างอย่างมากระหว่างสิ่งที่ฉันคาดหวังกับคนที่เรียนการเขียนโปรแกรมเป็นเวลาสองสามปีที่มหาวิทยาลัยและสิ่งที่คนรู้จริง
ฉันไม่รู้สึกว่าฉันถามคำถามที่ซับซ้อนเกินไปในการสัมภาษณ์ คำถามปกติของฉันคือ:
ประเภทอ้างอิงและประเภทค่าแตกต่างกันอย่างไร
หากดูเหมือนว่าผู้ให้สัมภาษณ์ไม่เข้าใจคำตอบของเขาเองจริงๆหรือถ้าเขาไม่ทราบคำศัพท์ที่ฉันใช้อยู่ฉันจะได้รับรายละเอียดเพิ่มเติมโดยขอให้เขาอธิบายฉันว่าจะเกิดอะไรขึ้นเมื่อฉันเขียน int i = 0; ในวิธีการสิ่งที่เกี่ยวกับวัตถุ o = 0 วัตถุ o = ใหม่ MyClass () ฯลฯ ...
โดยพื้นฐานแล้วฉันทำทุกอย่างเท่าที่ทำได้เพื่อหลอกล่อผู้ให้สัมภาษณ์ให้บอกฉันเกี่ยวกับ callstack heap และอื่น ๆ และฉันพยายามอยู่ในแนวคิดเกี่ยวกับภาษา agnostics หากผู้ให้สัมภาษณ์บอกฉันว่าเขาทำ C มากหรือ C ++ หรือ c # ฉันจะดำดิ่งลงไปในภาษาที่เฉพาะเจาะจงมากขึ้น
หากจำเป็นฉันถามผู้สัมภาษณ์ว่าการโทรติดต่อคืออะไรหรือข้อโต้แย้งใดที่ส่งผ่านไปยังฟังก์ชันในภาษาที่จำเป็นสำหรับการเลือกของเขา
ผู้ให้สัมภาษณ์ส่วนใหญ่ไม่รู้ว่าโทรสต็อกคืออะไรพิจารณาเรื่องมวย ฯลฯ
อะไรคือความแตกต่างระหว่างคลาสนามธรรมและอินเทอร์เฟซ คุณควรใช้อันไหนดีกว่ากัน?
โดยปกติแล้วฉันขอให้พวกเขาจินตนาการถึงการออกแบบห้องสมุดขนาดเล็กที่มีกรณีการใช้งานโดยมีจุดประสงค์เพื่อใช้การสืบทอดและโรงงานนามธรรมบางแห่ง
ผู้ให้สัมภาษณ์ส่วนใหญ่ไม่รู้เลยว่าจุดประสงค์ที่แท้จริงของมรดกคืออะไร พวกเขามักจะรู้คำหลักบางคำ (เสมือน, แทนที่, ฯลฯ ) แต่ไม่รู้จริง ๆ ว่าจะใช้เมื่อใดให้อธิบายคำอธิบายว่าโต๊ะเสมือนคืออะไร
แม้ว่าฉันจะคัดกรองประวัติก่อนหน้านี้แม้สำหรับผู้ที่มีประสบการณ์ 5 ปีในโครงการชีวิตจริงที่เกี่ยวข้องกับสถาปัตยกรรมที่ซับซ้อนฉันจะบอกว่าน้อยกว่า 25% ของผู้สัมภาษณ์ทั้งหมดของฉันสามารถตอบคำถามสองข้อนี้ได้อย่างถูกต้อง และเมื่อฉันพูดถูกฉันไม่ได้หมายถึง 'เชิงลึก' ... เพียงแค่มีความคิดโดยประมาณว่าแนวคิดคืออะไร
เกี่ยวกับรุ่นน้องฉันสบายดีที่จ้างคนที่ไม่รู้วิธีจัดการเวลาของเขาดีหรือคนที่ไม่คุ้นเคยกับกระบวนการสร้างอุตสาหกรรม แต่ฉันมีความรู้สึกว่าถ้าไม่มีใครได้ยินคำว่า " callstack "หลังจากเรียนวิชาวิทยาศาสตร์คอมพิวเตอร์มาสองสามปีเขาอาจจะโง่หรือไร้ความสามารถหรือเลือกมหาวิทยาลัยของเขาอย่างไม่ฉลาด
คุณคิดว่าฉันหัวรุนแรงมากเกินไปที่นี่? เป็นเรื่องปกติหรือไม่ที่จะเรียนรู้แนวคิดพื้นฐานเหล่านี้หลังจากเรียนจบมหาวิทยาลัย? คุณรู้จักคนที่ไม่คุ้นเคยกับสิ่งเหล่านี้และกลายเป็นวิศวกรซอฟต์แวร์ที่เก่งมากหลังจากไม่กี่ปี? และคุณคิดว่า บริษัท ของฉันอาจมีปัญหาในการดึงดูดคนที่มีความสามารถหรือคุณประสบปัญหาแบบเดียวกันกับในกระบวนการจ้างงานของคุณเองหรือ
แก้ไข เกี่ยวกับสิ่งที่ "พิมพ์ทันที" มันเป็นเพียงการแปลตามตัวอักษรจากภาษาฝรั่งเศสเป็นภาษาอังกฤษเนื่องจากเรามักจะทำการสัมภาษณ์เป็นภาษาฝรั่งเศส ฉันได้แก้ไขแล้วในคำถามของฉัน แต่ถึงกระนั้นฉันคิดว่าคุณทุกคนเข้าใจอย่างสมบูรณ์แบบในสิ่งที่ฉันหมายถึงซึ่งทำให้ชนิดของฉันจุดไม่ได้หรือไม่