Apa yang bisa saya lakukan ketika pewawancara tidak tahu jawaban untuk pertanyaannya sendiri? [Tutup]


48

Kemarin saya memiliki pengalaman yang mengerikan dalam sebuah wawancara.

Pewawancara bertanya kepada saya tentang fungsi virtual murni. Saya berkata, Ini mungkin atau mungkin tidak memiliki definisi di kelas dasar, tetapi kelas turunan harus memberikan definisi kecuali mereka juga ingin menjadi kelas abstrak.

Tetapi pewawancara terus bertanya bahwa "Bisakah virtual murni memiliki definisi !!! ???" ... Saya berkata ya.

Lagi-lagi dia berkata, "Murni?"

Saya bilang iya. Itu diperbolehkan, kelas turunan dapat secara eksplisit memanggil fungsi itu jika mereka menginginkan perilaku tertentu.

Dia mengirim saya keluar. Saya yakin dia tidak tahu fakta bahwa fungsi virtual murni dapat memiliki definisi.

Bagaimana cara menghadapi pewawancara semacam ini?

Setelah bertanya ke-2, haruskah saya berbohong bahwa itu tidak dapat memiliki definisi? :)

Atau saya harus berpegang pada kata-kata saya dan kehilangan peluang kerja?


51
Anda harus menghubungi mereka dengan contoh fungsi virtual murni dengan definisi, sehingga mereka tahu.
GManNickG

22
Saran GMan adalah ide yang bagus . Anda mungkin akan mengesankan pewawancara bahwa Anda cukup peduli dengan pekerjaan untuk menindaklanjuti apakah dia percaya atau tidak. Dan jika Anda mengajarinya sesuatu dengan cara yang tidak konfrontatif mungkin, maka itu hanya akan mendorongnya untuk berpikir lebih tinggi tentang Anda sebagai pengembang. Namun, masih merupakan keputusan yang sulit apakah Anda ingin bekerja di sana atau tidak.
Cody Grey

47
Tetapi apakah Anda benar-benar ingin bekerja untuk orang seperti itu?

29
Salah satu pewawancara saya mengajukan pertanyaan yang melibatkan ungkapan ini arr[++i] = i. Dan ketika saya mengatakan ini memunculkan perilaku yang tidak terdefinisi dan mengatakan kepadanya tentang titik-titik urutan , dia terdiam sesaat, dan kemudian ekspresi wajahnya dan pertanyaan-pertanyaan selanjutnya membuat saya percaya bahwa dia bahkan tidak pernah mendengar istilah-istilah ini sebelumnya!
Nawaz

10
Pertimbangkan bahwa pewawancara sering dipilih bukan karena keterampilan teknis mereka tetapi kemampuan mereka untuk menilai bakat komunikasi yang diwawancarai. Keterampilan teknis mudah diukur, kemampuan untuk menjadi produktif dan cocok dalam tim tidak. Bagi saya, Anda punya banyak kesempatan untuk mengadaptasi pandangan Anda dan menjelaskan desakan Anda untuk tidak melakukannya tetapi tidak berhasil. Itu tidak berjalan dengan baik.
Hans Passant

Jawaban:


82

Tidak. Dan Anda harus berterima kasih kepada bintang keberuntungan Anda bahwa Anda terlewat oleh peluru itu. Bekerja untuk orang yang menolak mengakui bahwa mereka mungkin tidak tahu segalanya, dan menolak untuk belajar dari orang lain, adalah pengalaman yang SANGAT tidak menyenangkan.


7
Lebih tepatnya proses wawancara kerja bekerja dua arah. Sementara perusahaan menilai saya sebagai karyawan, saya menilai mereka sebagai majikan. Banyak ditemukan keinginan.
HANYA SAYA PENDAPAT benar

Memang. Selama wawancara telepon saya untuk suatu posisi beberapa hari yang lalu, pewawancara meminta contoh sesuatu yang akan menunjukkan pengetahuan seseorang yang akrab dengan bahasa yang mereka gunakan. Pertanyaan tentang hal itu ditambahkan pada menit terakhir dari wawancara langsung. Saya kenal orang-orang ini dan saya tahu mereka adalah devs hebat, jadi saya pikir saya ingin bekerja dengan mereka. :)
greyfade

49

Contoh fungsi virtual murni dengan definisi:

// 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
Ini bukan hanya contoh fungsi virtual murni dengan definisi, tetapi contoh bagaimana sebenarnya itu bisa berguna. +1.
j_random_hacker

3
Tidak tahu kamu bisa melakukan itu. Keren! = D
gablin

2
Ini adalah cara untuk membuat objek polimorfik dasar. Anda kemudian dapat menggunakannya untuk dynamic_cast ke bawah hierarki. Berguna dalam beberapa keadaan, misalnya plugin, untuk memeriksa apakah plugin tersebut dari tipe yang diharapkan (dengan asumsi itu pasti akan berasal dari kelas dasar Anda). Ngomong-ngomong, destruktor virtual murni HARUS diberi definisi.
CashCow

Sekarang kalau saja itu masih sepele juga, itu akan menyenangkan.
Deduplicator

42

Masalah yang dihadapi bukanlah kebenaran teknis, tetapi keterampilan sosial / komunikasi. Berdirilah teguh, tetapi akui sudut pandang pewawancara dan biarkan mereka menyelamatkan muka.

Setelah Anda dapat melihat apa yang dia tangkap ("murni?" Adalah petunjuk yang baik), jawaban yang bagus mungkin:

Secara umum dianggap bahwa fungsi virtual murni tidak dapat memiliki definisi. Namun, secara teknis, fungsi virtual harus murni, harus ada =0dalam deklarasi. Masih dapat memiliki definisi (coba, itu akan dikompilasi!). Tentu saja, ini jarang digunakan, dan dalam praktiknya ketika kebanyakan orang mengatakan "virtual murni" mereka menyiratkan definisi tersebut tidak ada.


3
Anda pada dasarnya menyalin komentar saya 25 menit. sebelum saya menulisnya! Bagaimana? - +1 dan komentar bertema serupa dihapus.
Steve314

3
Itu poin bagus lainnya. Saya pernah berdebat nilai saya pada tes karena saya menunjukkan kepada profesor saya bahwa kode saya menulis pada tes akan dikompilasi. Kompiler tidak berbohong ... pernah ...
jmort253

3
Ini persis pikiran saya. Dengan hanya mengatakan "ya itu bisa", tanpa klarifikasi, tampak jelas bagi saya bahwa pewawancara berpikir dia tidak mengerti pertanyaan itu. Dengan memperluas jawaban, Anda memperjelas bahwa a) Anda memahami pertanyaan dan b) Anda benar-benar tahu jawabannya. Saya tidak berpikir pewawancara itu salah untuk mencoba menekan titik, baik, itu jelas kesalahpahaman yang cukup umum bahwa orang berpikir fungsi virtual murni tidak dapat memiliki definisi.
Dean Harding

10
@Steve Anda mendapatkan perjalanan waktu dari 500 rep dan seterusnya, Anda harus melewatkan pemberitahuan
Pekka mendukung GoFundMonica

Saya melakukan beberapa tahun yang sama pada wawancara C ++ (untuk sistem kinerja tinggi) di mana saya menjelaskan bahwa menggunakan objek fungsi dapat memiliki kinerja yang lebih baik daripada menggunakan pointer fungsi karena inlining dan menjelaskan ini kepadanya. Saya juga mengutip buku "Effective C ++". Dia benar-benar bangun untuk memeriksa buku itu dan berkata dia tidak tahu ini dan terkesan. Baik untuk menjelaskan jawaban Anda.
softveda

10

Anda bisa menjelaskan cara mendeklarasikan fungsi virtual murni yang memiliki implementasi.

Sebenarnya, saya berharap Anda akan di sini karena saya juga tidak terbiasa dengan cara melakukannya.


5
Anda cukup mendeklarasikan fungsi virtual murni dan kemudian memberikan implementasi. Ini adalah praktik yang tidak biasa untuk melakukan ini, tetapi dalam "C ++ Efektif, Edisi 3" Scott Meyers menjelaskan beberapa skenario di mana itu berguna. Secara khusus, karena fungsinya adalah virtual murni, kelas yang dideklarasikan adalah abstrak, tetapi karena memiliki implementasi, itu memberikan subclass implementasi default yang mereka dapat secara eksplisit memilih untuk menggunakan jika mereka mau.

1
Nah, itu tidak menjelaskan BAGAIMANA itu dilakukan. Jika ada yang tertarik, lihat en.wikipedia.org/wiki/… . Bagaimanapun, saya masih berpikir menjelaskan bagaimana melakukan itu akan menjadi respons terbaik.

1
+1 - dan saya kedua baris kedua Anda. Lebih buruk lagi, kecuali saya berada dalam suasana hati yang "sangat luar biasa" tetapi kadang-kadang salah, saya akan memihak pewawancara. Masalahnya adalah Anda hanya bisa menebak keyakinan Anda sampai tingkat tertentu, atau Anda akhirnya tidak tahu apa-apa.
Steve314

1
@ Steve314: Heh, saya menemukan semakin tua saya, semakin saya terbuka untuk salah. Selalu ada seseorang yang tahu lebih banyak dari saya. :-)

@ Jonathon - ya, tetapi tanpa indikasi 100% akurat tentang seberapa percaya diri saya tentang semua berbagai pendapat saya, bagaimana saya tahu yang mana yang perlu ditanyakan? Dan terbuka untuk menjadi salah, apakah itu berarti saya harus selalu menganggap orang lain benar dan saya salah? Kita semua kadang-kadang bisa percaya diri namun salah, tetapi apakah itu berarti kita seharusnya tidak pernah menyatakan keyakinan kita? Dan jika tingkat kepercayaan diri saya seharusnya tidak menjadi panduan saya untuk tetap berpegang pada senjata saya sampai saya melihat bukti kuat, apa yang harus saya lakukan?
Steve314

6

Sering kali ketika saya mewawancarai seorang kandidat, saya mencari tahu bagaimana orang itu menangani ketidakpastian, atau menghadapi konfrontasi. Lain kali Anda akan mewawancarai, peka terhadap hal ini, dan cobalah untuk secara konstruktif menjawab pertanyaan atau menjelaskan posisi Anda. Itu mungkin lebih penting daripada jawaban yang benar.


Ini jawaban yang bagus.
Neil G

+1: Ini adalah cara saya mewawancarai. Saya lebih peduli tentang bagaimana kita berinteraksi dan bertukar pikiran lebih banyak tentang apa yang benar dan apa yang tidak. Rumuskan posisi Anda dan / atau jelaskan alasan di baliknya dan Anda menunjukkan bahwa Anda tidak hanya kompeten, tetapi Anda juga seorang "pemain tim".
mummey

+1 lainnya: Saya pikir penting untuk mempekerjakan orang yang bisa berdebat dengan baik . Jika seorang karyawan baru tidak dapat membela ide-idenya, mereka tidak akan berhasil dalam tim dengan orang-orang berkemauan keras lainnya!
Zan Lynx

5

Saya sudah dalam wawancara di mana saya tahu lebih banyak dari pewawancara saya. Namun, mereka ingin seseorang mengisi peran dan tidak ada seorang pun (tentu saja) yang bisa mewawancarai di tingkat itu.

Dalam kasus Anda, apakah Anda merasa itu adalah ketidaktahuan buta, atau kesalahpahaman yang tulus? Mungkin email tindak lanjut dengan contoh dan referensi: lihat bagaimana mereka bereaksi sebelum memutuskan.

Saya cenderung ke arah "ketidaktahuan buta" meskipun didasarkan pada pertanyaan Anda dan akan tetap jelas ...


Pewawancara hanya menanyakan pertanyaan ini dan mengirim saya keluar. Saya tidak dapat menghubungi mereka karena saya tidak memiliki id email.
bjskishore123

@ bjskishore123: via agen? Namun, saya akan menjauh jika ini adalah ...
gbn

ya, melalui konsultasi.
bjskishore123

+1 Ini adalah pengalaman umum. Saya hanya pernah melakukan wawancara dengan siapa pun yang cukup tahu untuk memeriksa keahlian saya dengan benar.
Orbling

3

Dalam situasi seperti ini saya akan mengusulkan untuk menulis kelas sederhana dengan fungsi virtual dengan tubuh dan melihat apakah ia mengkompilasi. Paling tidak, saya akan mengusulkan untuk google topik.

Jika pewawancara menerima tantangan, mengakui kekalahan, dan sepertinya dia tidak akan mencekik Anda setelah itu, maka Anda harus dalam kondisi yang baik. Kalau tidak, ini mungkin bukan orang yang ingin Anda ajak kerja sama.


3

Saya sangat tidak setuju dengan ide bahwa Anda harus menyerah pada perusahaan karena orang yang mewawancarai Anda tidak tahu jawaban untuk pertanyaannya. Bahkan ketika Anda sedang bekerja, Anda akan bertemu orang-orang yang keras kepala bahkan ketika salah. Ini adalah keterampilan yang baik untuk mengarahkan orang ke jawaban yang benar.

Dalam kasus saya, pewawancara bertanya bagaimana menghitung varians dari banyak angka pada banyak mesin. Saya mulai dengan mengatakan bahwa varians adalah rata-rata dari kuadrat dikurangi kuadrat dari rata-rata. Dia menyela, "tidak, ini E[(x - mu)²]."

Saya berkata, "Ya, Anda benar. Tetapi formula Anda sama dengan formula saya. Mari kita kumpulkan bersama." Dan kemudian kita kumpulkan bersama.

Dalam situasi Anda ketika Anda menyadari bahwa pewawancara tidak percaya, Anda perlu mengubah pendekatan Anda. Katakan kepadanya bahwa ini adalah fitur yang jarang diketahui (ini membuat Anda terdengar seperti kurang tahu segalanya) dan jika dia mau, Anda akan mengirimnya contoh program atau referensi ke buku C ++ setelah wawancara (ini adalah sehingga wawancara dapat bergerak maju dengan anggun.)

Cobalah untuk membayangkan hal-hal dari sudut pandangnya. Suatu hari Anda akan mewawancarai orang-orang dan terkadang Anda salah. Bagaimana Anda menginginkan kandidat yang bersinar untuk menjawab pertanyaan seperti itu?


Mean adalah E [(x - mu) ²] meskipun Anda mungkin bersungguh-sungguh. Jadi Anda dapat mengevaluasi bahwa menjadi E [x² - 2xmu + mu²] = E [x²] - E [2xmu - 2mu²] - E [mu²] E [(x-mu)] selalu 0 dan E [mu²] = mu² sebagai mu adalah konstanta yang terbukti.
CashCow

2

Saya pikir Anda harus memindahkan wawancara dari meja ke komputer dengan kompiler. Itu akan menyelesaikan masalah.


1

EDIT: ternyata saya salah total, lihat komentar di bawah ini. Meninggalkan jawabannya di sini untuk tujuan pendidikan.

Sayangnya, Anda salah. Sebuah maya fungsi mungkin memiliki definisi; sebuah virtual murni fungsi mungkin tidak. Kurangnya definisi adalah apa yang membuatnya murni.


8
Tidak maaf. Dia benar.
GManNickG

1
BZZT !!! Salah! = 0 adalah apa yang membuatnya murni. Fungsi tersebut dapat memiliki definisi.
Edward Strange

4
ya, warnai aku kaget. Saya tidak pernah tahu ini.
Philip Potter

3
Wikipedia menjelaskan bahwa "Meskipun metode virtual murni biasanya tidak memiliki implementasi di kelas yang mendeklarasikannya, metode virtual murni dalam C ++ diizinkan untuk berisi implementasi di kelas deklarasinya, memberikan fallback atau perilaku default yang dapat didelegasikan oleh kelas turunan jika perlu. " Jadi meskipun tidak biasa atau tidak lazim untuk fungsi virtual murni untuk mendefinisikan implementasinya, itu mungkin.
Cody Grey

1

Anda tahu bahwa apa pun yang Anda jawab benar. Menurut pendapat saya, Anda melakukan pekerjaan dengan baik dengan tetap berpegang pada jawaban Anda karena Anda benar. Tidak perlu berbohong karena jika tidak hari ini pewawancara waktu lain akan belajar tentang fungsi virtual murni !!!! .. Dia mungkin menguji Anda juga untuk memeriksa seberapa teguh Anda dalam keputusan Anda? Apakah Anda orang yang terbawa dengan mudah? Tidak perlu kehilangan harapan, karena Anda tahu benar

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.