ฉันควรทำอย่างไรเมื่อผู้สัมภาษณ์ไม่ทราบคำตอบสำหรับคำถามของตนเอง [ปิด]


48

เมื่อวานนี้ฉันมีประสบการณ์ที่แย่มากในการสัมภาษณ์

ผู้สัมภาษณ์ถามฉันเกี่ยวกับฟังก์ชั่นเสมือนจริง ฉันพูดว่ามันอาจจะมีหรือไม่มีความหมายในคลาสฐาน แต่คลาสที่ได้รับควรให้คำจำกัดความนอกจากว่าพวกเขาต้องการที่จะเป็นคลาสนามธรรม

แต่ผู้สัมภาษณ์ถามต่อไปว่า "Can pure virtual มีคำจำกัดความ !!! ???" ... ฉันตอบว่าใช่

เขาพูดอีกครั้งว่า "เพียว"

ฉันพูดว่าใช่. อนุญาตคลาสที่ได้รับสามารถเรียกใช้ฟังก์ชันนั้นได้อย่างชัดเจนหากพวกเขาต้องการพฤติกรรมที่เฉพาะเจาะจง

เขาส่งฉันออกไป ฉันแน่ใจว่าเขาไม่ทราบความจริงที่ว่าฟังก์ชั่นเสมือนที่บริสุทธิ์สามารถมีความหมายได้

วิธีจัดการกับผู้สัมภาษณ์ประเภทนี้

หลังจากถามครั้งที่ 2 ฉันควรโกหกไหมว่ามันไม่มีความหมาย? :)

หรือฉันควรยึดติดกับคำพูดของฉันและปล่อยโอกาสในการทำงาน


51
คุณควรติดต่อพวกเขาด้วยตัวอย่างของฟังก์ชั่นเสมือนจริงที่มีคำจำกัดความดังนั้นพวกเขาจึงรู้
GManNickG

22
ข้อเสนอแนะของ GMan เป็นความคิดที่ยอดเยี่ยม คุณอาจสร้างความประทับใจให้ผู้สัมภาษณ์ว่าคุณใส่ใจเกี่ยวกับงานมากพอที่จะติดตามว่าเขาเชื่อคุณหรือไม่ และถ้าคุณสอนเขาบางอย่างในแบบที่ไม่คาดคั้นเท่าที่จะเป็นไปได้ก็ควรสนับสนุนให้เขา / เธอคิดว่าคุณเป็นนักพัฒนามากขึ้น ยังเป็นการตัดสินใจที่ยากลำบากไม่ว่าคุณจะต้องการทำงานที่นั่นหรือไม่ก็ตาม
Cody Grey

47
แต่คุณต้องการที่จะทำงานเพื่อคนเช่นนี้หรือไม่?

29
ผู้สัมภาษณ์คนหนึ่งถามคำถามที่เกี่ยวข้องกับการแสดงออกarr[++i] = iนี้ และเมื่อฉันบอกว่าสิ่งนี้ก่อให้เกิดพฤติกรรมที่ไม่ได้กำหนดและบอกเขาเกี่ยวกับจุดลำดับเขาพูดไม่ออกสักครู่จากนั้นการแสดงออกทางสีหน้าและคำถามเพิ่มเติมของเขาทำให้ฉันเชื่อว่าเขาไม่เคยได้ยินคำศัพท์เหล่านี้มาก่อน!
Nawaz

10
โปรดพิจารณาว่าผู้สัมภาษณ์มักถูกเลือกไม่ใช่ทักษะด้านเทคนิค แต่ความสามารถในการประเมินความสามารถในการสื่อสารของผู้ให้สัมภาษณ์ ทักษะทางเทคนิคสามารถประเมินได้อย่างง่ายดายความสามารถในการผลิตและเหมาะสมในทีมไม่ใช่ เสียงสำหรับฉันคุณมีโอกาสมากมายที่จะปรับเปลี่ยนมุมมองของคุณและเพื่ออธิบายการยืนยันของคุณที่จะไม่ทำเช่นนั้น แต่ก็ไม่สำเร็จ มันไม่เป็นไปด้วยดี
Hans Passant

คำตอบ:


82

ไม่และคุณควรขอบคุณดาวนำโชคของคุณซึ่งคุณพลาดไปจากกระสุนนัดนั้น การทำงานกับคนที่ปฏิเสธที่จะยอมรับว่าพวกเขาอาจไม่รู้ทุกอย่างและปฏิเสธที่จะเรียนรู้จากผู้อื่นเป็นประสบการณ์ที่ไม่พึงประสงค์มาก


7
กระบวนการสัมภาษณ์งานที่แม่นยำยิ่งขึ้นทำงานได้ทั้งสองวิธี ในขณะที่ บริษัท กำลังตัดสินฉันในฐานะพนักงานฉันกำลังตัดสินพวกเขาในฐานะนายจ้าง หลายคนพบว่าต้องการ
เพียงความคิดเห็นที่ถูกต้องของฉัน

จริง ระหว่างการสัมภาษณ์ทางโทรศัพท์ของฉันเมื่อไม่กี่วันที่ผ่านมาผู้สัมภาษณ์ขอตัวอย่างของสิ่งที่จะแสดงให้เห็นถึงความรู้ของคนที่คุ้นเคยกับภาษาที่พวกเขาใช้ คำถามเกี่ยวกับมันถูกเพิ่มเข้ามาในนาทีสุดท้ายในการสัมภาษณ์ด้วยตนเอง ฉันรู้ว่าคนเหล่านี้และฉันรู้ว่าพวกเขากำลัง devs ที่ดีดังนั้นฉันคิดว่าฉันต้องการที่จะทำงานกับพวกเขา :)
greyfade

49

ตัวอย่างของฟังก์ชั่นเสมือนจริงที่มีคำจำกัดความ:

// object.hpp
struct object
{
    // virtual destructor, to allow use as a public base class,
    // but pure to ensure object itself isn't instantiated
    virtual ~object() = 0; 
};

inline object::~object()
{
    // empty implementation
}

6
นี่ไม่ได้เป็นเพียงตัวอย่างของฟังก์ชั่นเสมือนล้วนๆที่มีคำจำกัดความ แต่เป็นตัวอย่างของวิธีการที่มีประโยชน์จริง ๆ +1
j_random_hacker

3
ไม่ทราบว่าคุณสามารถทำได้ เย็น! = D
gablin

2
นี่เป็นวิธีในการสร้างออบเจกต์ polymorphic พื้นฐาน จากนั้นคุณสามารถใช้มันเพื่อ dynamic_cast ลงลำดับชั้น มีประโยชน์ในบางสถานการณ์เช่นปลั๊กอินเพื่อตรวจสอบว่าปลั๊กอินนั้นเป็นประเภทที่คาดหวัง (โดยมีข้อสันนิษฐานว่ามันจะได้มาจากคลาสพื้นฐานของคุณ) โดยวิธี destructor เสมือนบริสุทธิ์จะต้องได้รับการกำหนด
CashCow

ตอนนี้ถ้าเพียง แต่มันก็อาจจะไม่สำคัญเช่นกัน
Deduplicator

42

ปัญหาในมือไม่ใช่ความถูกต้องทางเทคนิค แต่เป็นทักษะทางสังคม / การสื่อสาร ยืนหยัดมั่นคง แต่ยอมรับมุมมองของผู้สัมภาษณ์และให้พวกเขารักษาหน้า

เมื่อคุณสามารถเห็นสิ่งที่เขาตกปลาเพื่อ ("บริสุทธิ์?" เป็นเบาะแสที่ดี) คำตอบที่ดีอาจเป็น:

เป็นที่เชื่อกันโดยทั่วไปว่า ฟังก์ชั่นเสมือนแท้ไม่สามารถมีคำจำกัดความ อย่างไรก็ตามในทางเทคนิคการพูดสำหรับฟังก์ชั่นเสมือนจะบริสุทธิ์นั้นจะต้องมี=0ในการประกาศ มันยังสามารถมีคำจำกัดความ (ลองมันจะรวบรวม!) แน่นอนว่านี่ไม่ค่อยได้ใช้และในทางปฏิบัติเมื่อคนส่วนใหญ่พูดว่า "pure virtual" พวกเขาบอกเป็นนัยถึงการขาดอยู่


3
คุณคัดลอกความคิดเห็นของฉันโดยทั่วไปแล้ว 25 นาที ก่อนที่ฉันจะเขียนมัน! อย่างไร? - +1 และความคิดเห็นที่มีธีมคล้ายกันถูกลบ
Steve314

3
นั่นเป็นอีกจุดที่ดี ฉันเคยโต้เถียงเกรดของฉันในการทดสอบเพราะฉันพบอาจารย์ของฉันว่ารหัสที่ฉันเขียนในการทดสอบจะรวบรวม คอมไพเลอร์ไม่ได้โกหก ... ตลอดไป ...
jmort253

3
นี่คือความคิดของฉัน เพียงแค่พูดว่า "ใช่มันสามารถทำได้" โดยไม่มีการชี้แจงดูเหมือนฉันชัดเจนว่าผู้สัมภาษณ์คิดว่าเขาไม่เข้าใจคำถาม ด้วยการขยายคำตอบคุณทำให้ชัดเจนว่า a) คุณเข้าใจคำถามและ b) คุณรู้คำตอบจริง ๆ ฉันไม่คิดว่าผู้สัมภาษณ์เป็นสิ่งที่ผิดในการพยายามกดจุดนั้นอย่างชัดเจนมันเป็นความเข้าใจผิดที่ค่อนข้างสามัญที่ผู้คนคิดว่าฟังก์ชั่นเสมือนที่บริสุทธิ์ไม่สามารถให้คำจำกัดความได้
Dean Harding

10
@ คุณได้รับการเดินทางข้ามเวลาจากตัวแทน 500 คนเป็นต้นไปคุณต้องพลาดการแจ้งเตือน
Pekka รองรับ GoFundMonica

ฉันไม่กี่ปีเดียวกันในการสัมภาษณ์ C ++ (สำหรับระบบที่มีประสิทธิภาพสูง) ซึ่งฉันอธิบายว่าการใช้วัตถุฟังก์ชั่นสามารถมีประสิทธิภาพที่ดีกว่าการใช้ตัวชี้ฟังก์ชั่นเนื่องจากการอินไลน์และอธิบายสิ่งนี้กับเขา ฉันยังอ้างถึงหนังสือ "Effective C ++" เขาลุกขึ้นเพื่อตรวจสอบหนังสือและบอกว่าเขาไม่รู้เรื่องนี้และรู้สึกประทับใจ เป็นการดีที่จะอธิบายคำตอบของคุณ
softveda

10

คุณสามารถอธิบายวิธีประกาศฟังก์ชั่นเสมือนจริงที่มีการนำไปใช้งานได้

ในความเป็นจริงฉันหวังว่าคุณจะมาที่นี่เพราะฉันไม่คุ้นเคยกับวิธีการทำเช่นนั้น


5
คุณเพิ่งประกาศฟังก์ชั่น pure virtual และจากนั้นเตรียมการใช้งาน มันเป็นเรื่องธรรมดาที่จะต้องทำเช่นนี้ แต่ใน "C ++ ที่มีประสิทธิภาพรุ่นที่ 3" Scott Meyers จะอธิบายสถานการณ์บางอย่างที่มีประโยชน์ โดยเฉพาะอย่างยิ่งเนื่องจากฟังก์ชั่นนี้เป็นเสมือนจริงคลาสที่ประกาศในนั้นเป็นนามธรรม แต่เนื่องจากมีการนำไปใช้งานจึงทำให้คลาสย่อยมีการใช้งานเริ่มต้นที่พวกเขาสามารถเลือกใช้อย่างชัดเจนหากพวกเขาต้องการ

1
นั่นไม่ได้อธิบายว่ามันเสร็จสิ้นแล้ว หากใครสนใจตรวจสอบen.wikipedia.org/wiki/... ผมยังคิดว่าการอธิบายว่ามันจะเป็นคำตอบที่ดีที่สุดได้อย่างไร

1
+1 - และฉันสองบรรทัดที่สองของคุณ ที่เลวร้ายยิ่งกว่านั้นถ้าฉันอยู่ในอารมณ์ "แต่บางครั้งผิดปกติ" ฉันจะเข้าข้างผู้สัมภาษณ์ ปัญหาคือคุณสามารถเดาความเชื่อของคุณได้ในระดับที่สองเท่านั้นไม่อย่างนั้นคุณจะไม่รู้จบเลย
Steve314

1
@ Steve314: เฮ้ฉันพบว่ายิ่งฉันได้รับมากเท่าไหร่ฉันก็ยิ่งเปิดใจที่จะผิด มีคนที่รู้จักมากกว่าฉันเสมอ :-)

@ Jonathon - ใช่ แต่ไม่มีข้อบ่งชี้ที่ถูกต้อง 100% ว่าฉันควรมีความมั่นใจอย่างไรเกี่ยวกับความคิดเห็นที่หลากหลายทั้งหมดของฉันฉันจะรู้ได้อย่างไรว่าคำถามใดบ้าง และเพื่อที่จะเปิดรับความผิดนั่นหมายความว่าฉันควรถือว่าคนอื่นถูกต้องเสมอและฉันผิด บางครั้งเราทุกคนสามารถมั่นใจ แต่ผิด แต่นั่นหมายความว่าเราไม่ควรยืนยันความมั่นใจของเรา และถ้าระดับความเชื่อมั่นของฉันไม่ควรเป็นแนวทางของฉันไม่ว่าฉันจะติดปืนของฉันจนกว่าฉันจะเห็นหลักฐานที่แข็งแกร่งสิ่งที่ควร?
Steve314

6

หลายครั้งที่ฉันสัมภาษณ์ผู้สมัครฉันกำลังมองหาวิธีที่บุคคลนั้นจัดการกับความไม่แน่นอนหรือข้อตกลงกับการเผชิญหน้า ครั้งต่อไปที่คุณสัมภาษณ์ให้ตอบคำถามนี้และพยายามตอบคำถามอย่างสร้างสรรค์หรืออธิบายตำแหน่งของคุณ นั่นอาจสำคัญกว่าคำตอบที่ถูกต้อง


นี่คือคำตอบที่ดี
Neil G

+1: นี่คือวิธีที่ฉันสัมภาษณ์ ฉันสนใจมากขึ้นเกี่ยวกับวิธีที่เราโต้ตอบและแลกเปลี่ยนความคิดเห็นกับสิ่งที่ถูกต้องและสิ่งที่ไม่ถูกต้อง อธิบายถึงตำแหน่งของคุณและ / หรืออธิบายเหตุผลที่อยู่เบื้องหลังและคุณแสดงให้เห็นว่าไม่เพียง แต่คุณมีความสามารถเท่านั้น แต่คุณยังเป็น "ผู้เล่นทีม" ด้วยเช่นกัน
มัมมี่

อีก 1: ผมคิดว่ามันเป็นสิ่งสำคัญที่จะจ้างคนที่สามารถยืนยันได้ดี หากการจ้างงานใหม่ไม่สามารถยืนหยัดเพื่อความคิดของเขาหรือเธอพวกเขาจะไม่ได้อยู่ไกลกับทีมงานกับคนที่เอาแต่ใจคนอื่น ๆ !
Zan Lynx

5

ฉันอยู่ในการสัมภาษณ์ที่ฉันรู้มากกว่าผู้สัมภาษณ์ อย่างไรก็ตามพวกเขาต้องการใครสักคนที่จะเติมบทบาทและมีไม่มีใคร (แน่นอน) ที่สามารถสัมภาษณ์ในระดับนั้น

ในกรณีของคุณคุณรู้สึกว่ามันเป็นความไม่รู้ที่มองไม่เห็นหรือความเข้าใจผิดที่แท้จริง? อาจเป็นอีเมลติดตามพร้อมตัวอย่างและข้อมูลอ้างอิง: ดูว่าพวกเขามีปฏิกิริยาอย่างไรก่อนตัดสินใจ

ฉันมักจะหันไปมอง "ไม่รู้ไม่รู้ตัว" โดยอิงจากคำถามของคุณและจะยังคงชัดเจน ...


ผู้สัมภาษณ์ถามคำถามนี้เท่านั้นและส่งฉันออกไป ฉันไม่สามารถติดต่อได้เนื่องจากฉันไม่มีรหัสอีเมล
bjskishore123

@ bjskishore123: ผ่านเอเจนซี่หรือไม่ แต่ผมต้องการอยู่ห่างว่านี้คือมัน ...
GBN

ใช่ผ่านการให้คำปรึกษา
bjskishore123

+1 มันเป็นประสบการณ์ทั่วไป ฉันเคยมีการสัมภาษณ์กับใครก็ตามที่รู้มากพอที่จะตรวจสอบความสามารถของฉันอย่างถูกต้อง
Orbling

3

ในสถานการณ์เช่นนี้ฉันจะเสนอให้เขียนคลาสง่าย ๆ ด้วยฟังก์ชันเสมือนกับเนื้อความและดูว่าคอมไพล์หรือไม่ อย่างน้อยที่สุดฉันก็ขอเสนอให้ google เป็นหัวข้อ

หากผู้สัมภาษณ์ทำการท้าทายยอมรับความพ่ายแพ้และดูเหมือนว่าเขากำลังจะบีบคอคุณหลังจากนั้นคุณก็ควรจะอยู่ในสภาพดี ไม่เช่นนั้นอาจไม่ใช่บุคคลที่คุณต้องการทำงานด้วย


3

ฉันไม่เห็นด้วยกับความคิดที่ว่าคุณควรเลิก บริษัท เพราะคนที่สัมภาษณ์คุณไม่รู้คำตอบสำหรับคำถามของเขา แม้ในขณะที่คุณกำลังทำงานคุณจะได้พบกับผู้คนที่ดื้อรั้นแม้ว่าจะผิด มันเป็นทักษะที่ดีในการจัดทำคนที่ตอบถูก

ในกรณีของฉันผู้สัมภาษณ์ถามวิธีคำนวณความแปรปรวนของตัวเลขจำนวนมากในหลาย ๆ เครื่อง ผมเริ่มด้วยการบอกว่าความแปรปรวนเป็นค่าเฉลี่ยของกำลังสองลบสแควร์ของค่าเฉลี่ย เขาอุทานว่า "ไม่มันE[(x - mu)²]"

ฉันพูดว่า "ใช่คุณพูดถูก แต่สูตรของคุณเหมือนกับของฉัน แล้วเราก็มารวมกัน

ในสถานการณ์ของคุณเมื่อคุณรับรู้ว่าผู้สัมภาษณ์ไม่น่าเชื่อคุณต้องเปลี่ยนแนวทางของคุณ บอกเขาว่ามันเป็นคุณสมบัติที่ไม่ค่อยมีคนรู้จัก (นี่คือการทำให้คุณฟังดูเหมือนรู้น้อยกว่า) และถ้าเขาต้องการคุณจะส่งตัวอย่างโปรแกรมหรือการอ้างอิงถึงหนังสือ C ++ หลังการสัมภาษณ์ (นี่คือ เพื่อให้การสัมภาษณ์สามารถเดินหน้าต่อไปได้อย่างสง่างาม)

ลองจินตนาการถึงสิ่งต่าง ๆ จากมุมมองของเขา คุณจะสัมภาษณ์คนหนึ่งวันและบางครั้งคุณอาจผิด คุณต้องการให้ผู้สมัครที่ส่องแสงตอบคำถามดังกล่าวอย่างไร


ค่าเฉลี่ยคือ E [(x - mu) ²] ถึงแม้ว่าคุณอาจหมายถึง ดังนั้นคุณสามารถประเมินว่า E [x² - 2xmu + mu²] = E [x²] - E [2xmu - 2mu²] - E [mu²] E [(x-mu)] เสมอ 0 และ E [mu²] = mu²เป็น mu เป็นค่าคงที่ที่พิสูจน์แล้ว
CashCow

2

ฉันคิดว่าคุณควรย้ายการสัมภาษณ์จากโต๊ะทำงานไปยังคอมพิวเตอร์ที่มีคอมไพเลอร์ ที่จะมีการแก้ไขปัญหา


1

แก้ไข: เห็นได้ชัดว่าฉันผิดทั้งหมดเห็นความคิดเห็นด้านล่างคำตอบนี้ ทิ้งคำตอบไว้ที่นี่เพื่อวัตถุประสงค์ทางการศึกษา

น่าเศร้าที่คุณเข้าใจผิด เสมือนฟังก์ชั่นอาจจะมีความหมาย; เสมือนบริสุทธิ์ฟังก์ชั่นอาจจะไม่ การขาดคำจำกัดความคือสิ่งที่ทำให้มันบริสุทธิ์


8
ไม่ขอโทษ เขาพูดถูก.
GManNickG

1
BZZT !!! ไม่ถูกต้อง! The = 0 คือสิ่งที่ทำให้มันบริสุทธิ์ ฟังก์ชั่นดังกล่าวสามารถมีคำจำกัดความ
Edward Strange

4
huh, สีฉันประหลาดใจ ฉันไม่เคยรู้เรื่องนี้
ฟิลิปพอตเตอร์

3
วิกิพีเดียอธิบายว่า "แม้ว่าโดยทั่วไปแล้ววิธีเสมือนบริสุทธิ์จะไม่มีการนำไปใช้ในชั้นเรียนที่ประกาศวิธีการเสมือนบริสุทธิ์ใน C ++ ได้รับอนุญาตให้มีการใช้งานในชั้นเรียนของพวกเขาประกาศให้ทางเลือกหรือพฤติกรรมเริ่มต้นที่คลาสที่ได้รับ " ดังนั้นแม้ว่ามันจะผิดปกติหรือผิดปกติสำหรับฟังก์ชั่นเสมือนที่บริสุทธิ์ในการกำหนดการใช้งานมันเป็นไปได้
Cody Grey

1

คุณรู้ว่าสิ่งที่คุณตอบถูกต้อง ในความคิดของฉันคุณทำงานได้ดีโดยทำตามคำตอบของคุณตั้งแต่คุณพูดถูก ไม่จำเป็นต้องโกหกเพราะถ้าไม่ใช่วันนี้ผู้สัมภาษณ์เวลาคนอื่น ๆ จะได้เรียนรู้เกี่ยวกับฟังก์ชั่นเสมือนจริง !!!! .. เขาอาจจะทดสอบคุณเช่นกันเพื่อตรวจสอบว่าคุณตัดสินใจแน่วแน่อย่างไร? คุณเป็นคนที่ถูกพาตัวไปอย่างง่ายดายหรือไม่ไม่จำเป็นต้องคลายความหวังเนื่องจากคุณรู้ว่าถูกต้อง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.