Görüşmeci kendi sorusunun cevabını bilmediğinde ne yapabilirim? [kapalı]


48

Dün bir röportajda korkunç bir deneyim yaşadım.

Muhabir bana saf sanal işlev hakkında sorular sordu. Temel sınıfta tanımı olabilir veya olmayabilir, ancak türetilmiş sınıflar soyut sınıf olmak istemedikleri sürece tanım sağlamalıdırlar.

Ancak görüşmeci "Saf sanallığın tanımı olabilir mi? ???" diye sormaya devam etti ... Evet dedim.

Yine "Saf?" Dedi.

Evet dedim. İzin verilir, türetilmiş sınıflar, belirli bir davranışı isterlerse açıkça bu işlevi çağırabilir.

Beni dışarı gönderdi. Saf sanal fonksiyonun tanımı olabileceği gerçeğini bilmediğinden eminim.

Bu tür görüşmeci ile nasıl baş edilir?

2. kez sorduktan sonra, tanımı olamayacağı konusunda yalan söylemeli miyim? :)

Yoksa sözlerime bağlı kalmalıyım ve iş fırsatını mı bırakmalıyım?


51
Onlarla, tanımı olan saf bir sanal işlev örneği ile iletişime geçmelisiniz, bu yüzden onlar bilsin.
GManNickG

22
GMan'ın önerisi mükemmel bir fikir. Muhtemelen, size inanıp inanmadığını takip etmek için işle ilgili yeterince değer verdiğiniz kişiyi etkileyeceksiniz. Ve eğer ona bir şeyi mümkün olduğu kadar yüzleşmeyecek şekilde öğretirseniz , bu sadece sizi geliştirici olarak daha fazla düşünmesi için teşvik etmelidir. Yine de orada çalışmak isteyip istemediğinize karar vermek zor.
Cody Gray

47
Peki gerçekten böyle insanlar için çalışmak ister misiniz?

29
Görüşmecilerimden biri bana bu ifadeyi içeren bir soru sormuştu arr[++i] = i. Ve ben bunun tanımsız davranışı çağrıştırdığını ve sıra noktalarından bahsettiğini söylediğimde , bir an konuşmasızdı ve sonra yüz ifadesi ve ileriki soruları daha önce bu şartları bile duymadığına inanmamı sağladı!
Nawaz

10
Görüşmecilerin genellikle teknik becerileri için değil, görüşmecinin iletişim becerilerini değerlendirme yetenekleri için seçildiğini düşünün. Teknik beceri kolayca ölçülür, üretken ve takım halinde olma yeteneği değildir. Bana öyle geliyor ki görüşünüzü uyarlama ve ısrarınızı açıklamama, ancak ikisini de tamamlamama konusunda açıklama yapma şansınız var . Bu iyi gitmedi.
Hans Passant

Yanıtlar:


82

Hayır. Bu merminin kaçırdığı şanslı yıldızlara teşekkür etmelisin. Her şeyi bilmeyeceğini ve başkalarından öğrenmeyi reddettiklerini kabul etmeyi reddeden insanlar için çalışmak ÇOK hoş olmayan bir deneyimdir.


7
Daha doğrusu iş görüşmesi süreci her iki şekilde de çalışır. Şirket beni bir çalışan olarak değerlendirirken, onları bir işveren olarak görüyorum. Birçoğu istekli bulunur.
SADECE DOĞRU SEVİYİM

Aslında. Telefon görüşmem sırasında birkaç gün önce bir pozisyon için görüşmeci, kullandığı dile aşina birisinin bilgisini gösterecek bir şey için bir örnek istedi. Bununla ilgili bir soru son dakikada şahsen görüşmeye eklendi. Bu adamları tanıyorum ve harika devler olduklarını biliyorum, bu yüzden onlarla çalışmak istiyorum. :)
greyfade 19.01'de

49

Tanımlı saf sanal fonksiyon örneği:

// 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
Bu sadece tanımı olan saf bir sanal fonksiyon örneği değil, aslında nasıl faydalı olabileceğinin bir örneğidir. +1.
j_random_hacker 9:11

3
Bunu yapabileceğini bilmiyordum. Güzel! = D
gablin

2
Bu, baz polimorfik bir nesne yaratmanın bir yoludur. Daha sonra hiyerarşide dynamic_cast yazmak için kullanabilirsiniz. Bazı durumlarda, örneğin eklentilerde beklenen türden olup olmadığını kontrol etmek için kullanışlıdır (kesinlikle temel sınıfınızdan kaynaklanacağı varsayımıyla). Bu arada, saf bir sanal yıkıcıya bir tanım verilmelidir.
CashCow

Şimdi, sadece hala önemsiz de olsa, bu iyi olurdu.
Deduplicator

42

Eldeki sorun teknik doğruluk değil, sosyal / iletişim becerileridir. Sağlam durun, ancak görüşmecinin bakış açısını kabul edin ve yüzlerini korumalarına izin verin.

Ne için balık tuttuğunu gördükten sonra ("saf mı?" İyi bir ipucu), iyi bir cevap:

Genel olarak saf sanal fonksiyonların bir tanımının bulunamayacağı düşünülmektedir. Ancak, teknik olarak konuşursak, a sanal fonksiyonun saf olması için =0, bildirgede olması gerekir . Hala bir tanımı olabilir (deneyin, derleyecektir!). Tabii ki, bu nadiren kullanılır ve pratikte çoğu insan "saf sanal" dediğinde, tanımın olmadığı anlamına gelir.


3
Yorumumu 25 dakika kopyaladınız. ben yazmadan önce! Nasıl? - +1 ve benzer temalı yorum silindi.
Steve314

3
Bu da iyi bir nokta. Bir keresinde notumun bir sınava girdiğini savundum çünkü profesörüme sınavda yazdığım kodu derleyeceğini gösterdim. Derleyici yalan söylemez ... hiç ...
jmort253

3
Bu tam olarak benim düşüncemdi. Sadece "evet yapabilir" diyerek, açıklama yapmadan, görüşmecinin soruyu anlamadığını düşündüğü açıkça görülüyor. Cevabı genişleterek, a) soruyu anladığınızı ve b) cevabı gerçekten bildiğinizi açıkça belirtirsiniz. Görüşme yapan kişinin, o noktaya basmaya çalışmak için mutlaka yanlış olduğunu sanmıyorum, ya da insanların saf sanal işlevlerin bir tanımı olamayacağını düşündüğü oldukça yaygın bir yanlış anlaşılma olduğu açıkça görülüyor .
Dean Harding

10
@Steve 500 temsilciden daha fazla zaman yolculuğu alıyorsanız, bildirimi kaçırmış olmalısınız
Pekka GoFundMonica'yı

Aynı birkaç yıl boyunca bir C ++ röportajında ​​(yüksek performanslı bir sistem için) yaptım, burada bir işlev nesnesi kullanmanın satır içi olması nedeniyle bir işlev işaretçisi kullanmaktan daha iyi bir performansa sahip olabileceğini ve bunu ona açıkladım. Ayrıca "Etkili C ++" kitabını da alıntı yaptım. Aslında kitabı kontrol etmeye kalktı ve bunu bilmediğini ve etkilendiğini söyledi. Cevabınızı açıklamak iyidir.
softveda

10

Uygulaması olan saf bir sanal işlevi nasıl ilan edeceğinizi açıklayabilirdiniz.

Aslında, burada olmanı isterdim çünkü bunun nasıl yapıldığını da bilemiyorum.


5
Siz sadece işlevi tamamen sanal olarak ilan ettiniz ve sonra bir uygulama sundunuz. Bunu yapmak oldukça nadir bir uygulamadır, ancak "Etkili C ++, 3. Baskı" Scott Meyers, yararlı olduğu birkaç senaryoyu açıklar. Özellikle, işlev tamamen sanal olduğundan, bildirdiği sınıf soyutdur, ancak bir uygulaması olduğu için, alt sınıflara isterlerse kullanmayı seçebilecekleri varsayılan bir uygulama sunar.

1
Peki, bu NASIL yapıldığını açıklamıyor. Eğer ilgilenen varsa, en.wikipedia.org/wiki/… adresini ziyaret edin . Her halükarda, nasıl yapıldığını açıklamanın en iyi cevap olacağını düşünüyorum.

1
+1 - ve ikinci satırınızı ikinci. Daha da kötüsü, istisnai olarak "ama bazen yanlış" bir ruh hali içinde olmasaydım, görüşmeci ile görüşebilirdim. Sorun, inançlarınızı yalnızca ikinci bir dereceye kadar tahmin edebilmeniz veya başka hiçbir şeyi bilemeyebilmeniz.
Steve314

1
@ Steve314: Heh, yaşlandıkça daha fazlasını buluyorum, daha çok yanlış olmaya açığım. Her zaman benden daha fazla bilen biri vardır. :-)

@Jonathon - evet, ancak% 100 doğru bir gösterge olmadan, tüm çeşitli görüşlerim konusunda kendime ne kadar güvenmem gerektiğini, hangilerini sorgulayacağımı nasıl bilebilirim? Ve yanlış olmaya açık olmak, bu diğer insanların her zaman haklı olduğunu ve yanıldığımı varsaymam gerektiği anlamına mı geliyor? Hepimiz ara sıra kendimize güvenebiliriz, ancak yanlış olabiliriz, ancak bu, güvenimizi asla korumamamız gerektiği anlamına mı geliyor? Ve eğer güven düzeyim, güçlü kanıtlar görene kadar silahlarıma sadık olup olmadığımı gösteren rehber olmamalıysa, ne yapmalı?
Steve314

6

Bir adayla röportaj yaparken, çoğu zaman kişinin belirsizliği nasıl ele aldığını veya yüzleşmeyle nasıl ilgilendiğini görmek istiyorum. Bir dahaki sefere röportaj yaparken, buna duyarlı olun ve soruyu yapıcı bir şekilde cevaplamaya veya pozisyonunuzu açıklamaya çalışın. Doğru cevaptan daha önemli olabilir.


Bu harika bir cevap.
Neil G,

+1: Bu şekilde röportaj yapıyorum. Nasıl etkileşimde bulunduğumuz ve düşünce alışverişinde doğru ve neyin doğru olmadığından daha fazla önemsiyorum. Konumunuzu detaylandırın ve / veya arkasındaki gerekçeyi açıklayın ve sadece yetkin olduğunuzu değil, aynı zamanda bir "takım oyuncusu" olduğunuzu kanıtlayın.
mummey

Başka bir +1: İyi tartışabilecek kişileri işe almanın önemli olduğunu düşünüyorum . Eğer yeni bir işe alım fikirleri için ayağa kalkamazsa, diğer güçlü iradeli kişilerle bir ekipten uzaklaşamazlar!
Zan Lynx

5

Görüşmecimden daha fazla şey bildiğim röportajlarda bulundum. Bununla birlikte, birisinin rolünü doldurmasını istediler ve bu düzeyde görüşebilecek kimse (elbette) yoktu.

Sizin durumunuzda bunun kör bir cehalet veya gerçek bir yanlış anlama olduğunu mu düşünüyorsunuz? Belki örnekler ve referanslar içeren bir takip e-postası: karar vermeden önce nasıl tepki verdiklerini görün.

Sorunuza dayanarak olsa da "kör cehalet" e eğilimindeyim ve ...


Muhabir yalnızca bu soruyu sordu ve beni gönderdi. E-posta kimliğim olmadığı için onlarla iletişim kuramıyorum.
bjskishore123

@ bjskishore123: ajans aracılığıyla? Ancak, bu olsaydı uzak
dururdum

evet, danışmanlık yoluyla.
bjskishore123

+1 Bu ortak bir deneyimdir. Beceri setimi doğru kontrol etmek için yeterli bilgiyi bilen biriyle sadece bir kez röportaj yaptım.
Orbling

3

Böyle bir durumda, bir bedene sahip, sanal işlevi olan basit bir sınıf yazmayı ve derlenip derlenmeyeceğini görmeyi öneriyorum. En azından, konuyu google önerebilirim.

Eğer görüşmeci meydan okumayı kabul ederse, yenilgiyi kabul eder ve ondan sonra sizi boğacak gibi görünmüyorsa, o zaman iyi durumda olmalısınız. Aksi takdirde, bu muhtemelen kişi değil sen çalışmak istiyorum.


3

Bir şirketten vazgeçmeniz gerektiği fikrine kesinlikle katılmıyorum, çünkü görüşen adam sorusunun cevabını bilmiyor. Çalışırken bile, yanlış olsa bile engel olan insanlarla tanışacaksınız. İnsanları doğru cevaba yönlendirmek iyi bir beceridir.

Benim durumumda görüşmeci, birçok makinede çok sayıda sayının varyansını nasıl hesaplayacağını sordu. Varyansın, eksi araçların kareleri eksi kareler ortalaması olduğunu söyleyerek başladım. "Hayır, öyle" diye sorguladı E[(x - mu)²].

Dedim ki, "Evet, haklısın. Ama formülün benimkiyle aynı. Birlikte alalım." Ve sonra birlikte elde ettik.

Durumunuzda, görüşmecinin inanılmaz olduğunu anladığınızda, yaklaşımınızı değiştirmelisiniz. Ona nadiren bilinen bir özellik olduğunu söyleyin (bu sizi daha az şey biliyor gibi görünmesini sağlar) ve eğer isterse görüşmeden sonra ona bir örnek program veya bir C ++ kitabına referans göndermenizi ister (bu böylece görüşme zarif bir şekilde ileri gidebilir.)

Perspektifinden bir şeyler hayal etmeye çalışın. Bir gün insanlarla röportaj yapacaksın ve bazen yanılıyorsun. Parlayan bir adayın böyle bir soruyu cevaplamasını nasıl istersiniz?


Ortalama muhtemelen E [(x - mu) ²], muhtemelen öyle olsa da. Böylece E [x² - 2xmu + mu²] = E [x²] - E [2xmu - 2mu²] - E [mu²] E [(x-mu)] 'nin her zaman 0 ve E [mu²] = mu² olarak değerlendirebilirsiniz. mu sabittir, bu yüzden kanıtlanmış.
CashCow

2

Bence röportajı masadan derleyicili bir bilgisayara taşımalıydın. Bu sorunu çözebilirdi.


1

EDIT: görünüşe göre tamamen yanılmışım, bu cevabın altındaki yorumları görün. Cevapları eğitim amaçlı burada bırakmak.

Ne yazık ki yanılıyorsun. Bir sanal fonksiyonun bir tanımı olabilir; Bir saf sanal fonksiyon olmayabilir. Tanımın eksikliği onu saf kılan şeydir.


8
Hayır üzgünüm. O haklı.
GManNickG

1
BZZT !!! Yanlış! = 0, onu saf kılan şeydir. Bu işlevlerin tanımları olabilir.
Edward Strange

4
Beni şaşırttı renkli. Bunu asla bilemedim.
Philip Potter

3
Vikipedi , "Saf sanal yöntemlerin genellikle sınıfta kendilerini ilan eden bir uygulaması olmamasına rağmen, C ++ 'da saf sanal yöntemlerin, sınıflarında bir uygulamanın, uygun olduğunda türetilmiş bir sınıfın temsil edebileceği geri dönüş veya varsayılan davranışı sağlayarak, ilan eden sınıflarında bir uygulama içermesine izin verildiğini açıklar. " Dolayısıyla, saf bir sanal fonksiyonun uygulanmasını tanımlaması alışılmadık ya da atipik olsa da mümkündür.
Cody Gray

1

Cevap verdiğin şeyin doğru olduğunu biliyorsun. Bence haklıydın, cevabına sadık kalarak iyi bir iş çıkardın. Yalan söylemeye gerek yok çünkü bugün olmasa da başka bir zaman görüşmeci saf sanal işlevler hakkında bilgi edinecek !!!! .. Kararlarınızda ne kadar katı olduğunuzu kontrol etmek için sizi de test ediyor olabilir? Kolayca taşınan kişi siz misiniz? Doğru düştüğünüzden beri, umudunuzu kaybetmenize gerek yok.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.