คำถามเดิม
ฉันได้สัมภาษณ์ บริษัท ของฉันแล้วส่วนใหญ่นักวิทยาศาสตร์คอมพิวเตอร์สำหรับตำแหน่งนักพัฒนา แต่ก็มีผู้ทดสอบและผู้จัดการโครงการด้วย ตอนนี้ฉันต้องเติมช่องว่างในกลุ่มการวิจัยของเราภายในแผนก R&D (หมายเหตุด้านข้าง: "การวิจัย" หมายความว่าเราพยายามที่จะแก้ปัญหาในโดเมนมืออาชีพ / ตลาดเฉพาะของเราโดยใช้ซอฟต์แวร์ในโครงการวิจัยร่วมกับมหาวิทยาลัย บริษัท อื่น ๆ ศูนย์วิจัย และองค์กรผู้ใช้ปลายทางไม่ใช่งานวิจัยด้านวิทยาศาสตร์คอมพิวเตอร์เราจะไม่แก้ปัญหา P = NP)
ตอนนี้เราเชิญคนที่ถือ MSc สาขาวิชาเคมี (มีวิชาฟิสิกส์มากมายใน CV ของเขาด้วย) ที่ไม่เคยเรียนวิชาวิทยาศาสตร์คอมพิวเตอร์มาก่อน ฉันได้พูดคุยกับเขาประมาณครึ่งชั่วโมงในวันทำงานในมหาวิทยาลัยท้องถิ่นและไม่ต้องสงสัยเลยว่าผู้ชายฉลาด เครื่องหมายของเขานั้นยอดเยี่ยมและเขาก็จบด้วยความแตกต่าง สำหรับวิทยาศาสตรบัณฑิตของเขาเขาจำเป็นต้องสอนการเขียนโปรแกรมด้วยตัวเองใน Mathematica และบอกฉันด้วยความเชื่อมั่นว่าเขาชอบเขียนโปรแกรมมาก นอกจากนี้เขายังแก้ไขปัญหาทางเคมีกายภาพบางอย่างที่ฉันอาจไม่เข้าใจโดยใช้ซอฟต์แวร์ของเขาเองซึ่งนำไปใช้ใน Mathematica สำหรับวิทยานิพนธ์ปริญญาโทของเขา มันมี GUI และขนาดที่น่าทึ่งของ 8,000 LoC ดูเหมือนว่าเขาจะถูกดึงดูดอย่างมากจากสิ่งที่เราทำในกลุ่มการวิจัยของเราและบอกตามตรงว่ามันค่อนข้างยากสำหรับ SME เช่นเราที่จะได้คนดี ฉันยังสนใจที่จะจ้างเขาเพราะเขาสามารถช่วยฉันในการเขียนข้อเสนอโครงการรายงานการนำเสนอผลงานและอื่น ๆ เขาอาจจะเหมาะกับทีมของเราเช่นกัน
คำถามเดียวที่เหลือคือ: ฉันจะตรวจสอบได้อย่างไรว่าเขาจะได้รับทักษะการเขียนโปรแกรมที่จำเป็นสำหรับการติดตั้งซอฟต์แวร์ในโครงการของเราหรือไม่เพราะนี่จะเป็นส่วนสำคัญของงาน
แน่นอนฉันจะถามเขาว่ามันคืออะไรที่น่าสนใจเกี่ยวกับการเขียนโปรแกรม ฉันจะถามด้วยว่าเขายังคงเขียนซอฟต์แวร์วิทยาศาสตร์ธรรมชาติของเขาอย่างไรและเขาสร้างมันอย่างไร ฉันจะถามว่าเขาจัดการเพื่อให้ได้ทักษะและข้อมูลเกี่ยวกับการพัฒนาซอฟต์แวร์ที่เขาต้องการได้อย่างไร แต่มีอะไรอีกไหมที่ฉันจะถามได้? มีอะไรที่เป็นรูปธรรมมากขึ้นบางที? ฉันควรขอให้เขาอธิบายวิธีการแก้ปัญหาทางคณิตศาสตร์ของเขา?
เพื่อความชัดเจน: ฉันไม่ได้มองหาความรู้ในภาษาหรือสแต็คเทคโนโลยีโดยเฉพาะ เราเป็น. NET shop ในการพัฒนาผลิตภัณฑ์ แต่ฉันต้องการมีทางเลือกฟรีสำหรับโครงการวิจัยของเรา ดังนั้นฉันจึงสนใจในความสามารถในการเรียนรู้สิ่งที่จำเป็นจริง ๆ
ฉันหวังว่าคำถามนี้จะตอบได้และไม่สิ้นสุดเพราะฉันอยากรู้ว่ามีวิธีการเริ่มต้นในการตรวจสอบความสามารถในการได้รับทักษะการเขียนโปรแกรมเพิ่มเติมในงาน หากมีบางสิ่งที่ไม่ชัดเจนสำหรับคุณโปรดให้ความเห็นกับฉันและให้ฉันปรับปรุงคำถามของฉัน
อัปเดตเพื่อสะท้อนคำตอบที่ให้ไว้จนถึง 2011-12-01
ฉันตอบรับอะไรและทำไม
ขอบคุณสำหรับคำตอบของคุณพวกเขาส่วนใหญ่มีประโยชน์มากฉันจึงโหวตขึ้นมาก! ถึงแม้ว่าคำตอบทอมสไควร์ได้รับการโหวตมากที่สุด, ฉันจะยอมรับคำตอบที่ได้รับจากเจ้าชาย Goulash แน่นอนว่า Tom ถูกต้องตามวัตถุประสงค์ แต่คำตอบของ Prince นั้นมีประโยชน์มากกว่าสำหรับฉันและฉันตรวจสอบคำถามที่พบบ่อยว่านี่เป็นเกณฑ์ในการยอมรับคำตอบ
สิ่งที่ฉันจะถามเขาในระหว่างการสัมภาษณ์
ฉันจะให้เขาอธิบายงานมอบหมายง่ายๆเช่นตัวอย่างในThe Camel Has Two Humps ที่ Chris Burt-Brown พูดถึง
ฉันจะขอให้เขาอธิบายขั้นตอนการควบคุมขั้นสูงเพิ่มเติมบางอย่างอาจเป็นในรูปแบบกราฟิก
ฉันจะตรวจสอบความเข้าใจของการเรียกซ้ำโดยใช้ตัวอย่างคณิตศาสตร์
ฉันจะให้เขาอธิบายอัลกอริทึมของตัวเลือกของเขาในภาษาธรรมชาติ
ฉันจะให้เขาอธิบายวิธีการแก้ปัญหาทางคณิตศาสตร์ของเขาโดยเฉพาะอย่างยิ่งฉันจะขอแบบจำลองกระบวนการของเขาการใช้เครื่องมือโครงสร้างของรหัสและซอฟต์แวร์โดยทั่วไปเช่นเดียวกับชั้นนามธรรมที่แตกต่างกัน
เพื่อตรวจสอบแรงจูงใจของเขาฉันจะขอความหลงใหลในการพัฒนาซอฟต์แวร์ของเขา
ฉันจะถามเขาว่าเขารู้หรือไม่ว่าเขาจะต้องเรียนรู้เกี่ยวกับการพัฒนาซอฟต์แวร์ระดับองค์กร โดยเฉพาะอย่างยิ่งฉันต้องการเปลี่ยนการอภิปรายไปในทิศทางของการทำงานเป็นทีมการเขียนโปรแกรมจับคู่ TDD เนื่องจากฉันคาดหวังว่าเขาจะไม่ได้รู้อะไรมากมายเกี่ยวกับเรื่องนี้หลังจากทำงานใน MSc ของเขาเพียงอย่างเดียว
ดูเหมือนว่ามันจะเป็นการสัมภาษณ์ที่ยาวนาน;)
อัพเดทหลังการสัมภาษณ์ 2011-12-09
ขอขอบคุณอีกครั้งสำหรับคำตอบที่ดีของคุณ เขาผ่านการสัมภาษณ์ด้วยสีที่บิน ฉันไม่เคยพอใจกับผู้สมัครมากขึ้น โซลูชัน Mathematica ของเขาดูเหมือนจะมีโครงสร้างค่อนข้างดี เขาสามารถอธิบายได้ว่าเขาใช้ฟังก์ชั่นการเรียงลำดับที่สูงขึ้นได้อย่างไรแม้ว่าเขาจะไม่รู้ว่าสิ่งเหล่านี้ถูกเรียกเช่นนี้ เขาตอบคำถามการเรียกซ้ำตามคณิตศาสตร์ของฉันตลอดจนการมอบหมายอย่างง่ายและควบคุมสิ่งต่าง ๆ จากThe Camel Has Two Humps. เมื่อเขาอธิบายอัลกอริทึมบางอย่างที่ฉันได้เรียนรู้มากมายเกี่ยวกับการปรับแบบไม่เชิงเส้น;) นอกจากนี้เขายังพูดอย่างตรงไปตรงมาว่าแน่นอนเขาไม่สามารถรับประกันได้ว่าเขาจะสามารถเรียนรู้สิ่งต่าง ๆ เกี่ยวกับการพัฒนาซอฟต์แวร์มืออาชีพ แต่เขาเชื่อมั่นว่าเขาเก่งในการเรียนรู้แนวความคิดใหม่ ๆ ด้วยตัวเองและสนใจในการพัฒนาซอฟต์แวร์ เขายังถามถึงเทคโนโลยีสแต็คของโครงการเขาจะถูกนำไปใช้กับคนแรกเพื่อดูที่บ้าน เขาสงสัยเกี่ยวกับการเขียนโปรแกรมคู่และการทำงานเป็นทีมด้วย ตอนนี้ฉันหวังว่าจะมีการสรุปสัญญาจ้างงาน