Başarısız bir röportaj kodlama alıştırmasına cevap vermeli miyim? [kapalı]


14

Üst düzey bir görüşme adayı FizzBuzz soru 1 2 bir nüans başarısız oldu .
Yani, gerçekten, tamamen, tamamen, soru bile başarısız oldu - hatta yakın değil.
Hatta ona koçluk bir döngü kullanımı hakkında ve bu düşünce üzerine 3ve 5vardı gerçekten özel durumlarda olarak dikkate değer.

O patladı.

Sadece KG amacıyla üç soruya da aynı soruyu verdim; onlara 5 dakika verdi; sonra sahte kodlarını toplamak için geri döndüler. Hepsi çivilenmiş ve soruyu daha önce görmemişti. İki hilenin ne olduğunu sordu ...

Farklı bir mantık alıştırmasında, aday kullanmayı seçtiği dilde mevcut olan bazı özellikleri (C #) anladı. Yani sanki hiç bir kod satırı yazmamış gibi değil . Ama mantığı hala stunk.

Benim sorum, ona mantık sorularına cevap verip vermemem gerektiğidir.

Onları patlattığını biliyordu ve daha sonra röportajda kabul etti.
Öte yandan, hiçbir zaman cevap ya da ne görmeyi beklediğimi sormadı.

Kodlama egzersizlerinin adayları başarısızlığa ayarlamak için kullanılabileceğini biliyorum (yine ikinci linke bakın). Ve gerçekten sorunun özünü cevaplamak için evine yardım etmeye çalıştım. Ama bu üst düzey bir adaydı ve Fizz-Buzz, röportaj titremelerini hesaba kattıktan sonra bile gülünç derecede kolay.

En azından tecrübeden öğrenebilmesi için ona sorunu çözmenin bir yolunu göstermiş olmalıydım. Ama yine sormadı.

Bu durumla başa çıkmanın doğru yolu nedir?


1 Tamam, bu gerçek FizzBuzz sorusunun bağlantısı değil, ancak FizzBuzz hakkında iyi bir P.SE tartışması ve bunun çeşitli yönlerine bağlantılar.

2 Açıklığa kavuşturmaya yardımcı olmak için, sorduğum Fizz-Buzz'ın nüansı ve Project Euler'in ilk probleminden . Yedek baskı Fizz | Sayıları toplamak için vızıltı ve aynı temel soru var.
If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23. Write a function that finds the sum of all the multiples of 3 or 5 below 1000.

3 Bu soru beklediğimden daha fazla ilgi gördü ve tüm yanıtları takdir ediyorum. Daha sonraki cevaplardan bazıları sorumun özüne gerçekten ulaştı, bu yüzden topluluğun "" yanıtını atamadan önce gözden geçirmesine ve oy vermesine izin vereceğim.

4 O zamanki topluluk oylarına dayanarak "" cevabını seçtim. Ve bence Yannis'in cevabı daha yeni geliştiricilerle yapılan röportajlar için uygun. Bence cevap istememeye odaklanan kolektif tepki de yerinde.


34
Onları gevşetin ve gününüze geçin. Bildiğim kadarıyla, "üst düzey" FizzBuzz başarısız bilerek ve kötü niyetli zamanımı boşa harcıyor.
Steven Evers

6
Yakın zamanda bölgemdeki çeşitli pozisyonlar için röportaj yaptım ve kod isteyenler bana kendi "FizzBuzz" testlerini geçebilecek üst düzey adayları bulmakta zorlandıklarını belirttiler. Her durumda tepkim "ciddi olamazsın" idi. Görünüşe göre orada bile yakın olmayan üst düzey olarak maskeli korkunç programcılar var.
Joel Etherton

6
@JoelEtherton - Buralarda da aynı şey. Gittiğim her yerde telefon ekranları için zorladım. C # kullanarak Kıdemli olmak için başvuruda bulunuyorsanız ve bize bir değer türü ile referans türü arasındaki farkı söyleyemiyorsanız, röportaj almazsınız.
Telastyn

3
@ 0A0D, bir takıma liderlik etmek, iyi bir geliştirici olmaktan farklı bir beceri. Kötü geliştiriciler olan takım liderleri de gördüm.
Kyralessa

4
@JoelEtherton, şaşırma. Ben aslında ekrana yardım edip adaylarla mülakat yapmaya başlayana kadar "200 başvurudan 199'unun kod yazamadığını" düşündüm. Yıllar sürdüğü (iddia edildiği gibi) deneyimin önemi yoktur. İş unvanları önemli değil. Çoğu başvuran, bilseler de bilmeseler de, inanılmaz derecede gençtir.
Anthony Pegram

Yanıtlar:


15

Röportajlarımın çoğu, staj pozisyonu arayan öğrencilerle yapıldı ve çoğu zaman basit (?) Egzersizleri bitirmediler. Hatalarını iletmenin kolay ve samimi bir yolunu istedim ve ortaya koyduğum şey oldukça basitti: Egzersizleri kendim çözdüm ve çözümlerini kendileriyle bitirdikten sonra gösterdim.

Aynı sorunu çözmek için farklı yaklaşımlarımızı karşılaştırarak başlayan adaylarla son derece ilginç ve açıklayıcı tartışmalar yaptım. Bir süre sonra, sadece adayın hangi okula gittiğini kontrol ederek bazı hataları tahmin ettim (bazı "profesörler" ... salaklar). Ve, bir adayın herhangi bir çözüm bulamadığı birkaç durumda, bir dahaki sefere onlara bir tane vermiştim.


Mantıklı; Son zamanlarda yeni bir iş arıyordum ve çoğu röportajcının sorularına yanlış cevaplar verdiğimde (ya da hafifçe "nokta cevapları") aynı şeyi yaptığını gördüm. Bu gerçekten iyi bir uygulamadır. Çoğunlukla adayı açar (örneğin ben) ve röportajın kendisini her iki taraftan da daha ilgi çekici hale getirir. Ama elbette C ++ 'da şablonlar, RAII ve çoklu iş parçacığı tartışıyorduk. Soru, fizzbuzz'ı çözemeyen bir kişiye ne diyorsunuz?
Chani

11
@RitwikG Dürüst olmak gerekirse, eğer aday bir programlama pozisyonu için röportaj yapıyorsa ve fizzbuzz ile baş edemiyorsa, muhtemelen ... gülerdim (hey, iyi bir röportajcı olduğumu hiç söylemedim ;). Bununla birlikte, birkaç ay önce, kodumda son derece önemsiz bir OBOE'ye dönüşen kavgadan birkaç gün kaybettim . Hepimizin kapalı anları var ve adayın bir egzersizi berbat etmesine gerçekten sabit olmazdım, muhtemelen bir sonrakine çabucak geçirdim. Bir sonrakinde başarısız oldularsa, muhtemelen zamanlarından dolayı teşekkür eder ve devam ederdim.
yannis

1
@YannisRizos Bu muhtemelen iyi bir yaklaşım; kişinin röportaj durumlarında iyi bir şey yapmama veya işlerinde modulo operasyonundan bir şekilde kaçınma ihtimali vardır (her ne kadar iyi bir şekilde işaret olmasa da, en azından söylemek gerekirse). Deneyimlerime göre, üst düzey pozisyonlar için bile, herhangi bir basit döngü (istedikleri herhangi bir dilde) yazmaları istendiğinde, önemli sayıda başvuru toplanıyor. Şimdi , haklı göstermek tamamen imkansız buldum.
Daniel B

Bu da sürece ilişkin iyi bir fikir. Aday anlaşılır bir şekilde gergindi ve ben buna biraz izin vermeye hazırdım. Sonunda bir çözüm girişimi ile konuşmaya başladığında, sadece kıvrıldı ve kaçırdığı sınır koşulları yarattı.

15

Cevabı Vermek

Aday soru soracak kadar ilgilenmezse, nefesimi boşa harcamazdım ama @Yannis_Rizos cevabının çok daha iyi olduğunu söyleyecektim .

Röportajlar oldukça hızlı. Bir röportajdan sonraki günler boyunca sık sık aradığımı biliyorum.

FizzBuzz Classic'i Kodlayamayan Kişiler

Büyük bir yapışma noktasının% operatörünün farkında olduğunu hayal ediyorum. Birinin karşılaştırmayı düşünebileceğini umuyorsunuz (myInt / 3) == (myDouble / 3.0)ama belki de bir röportajın stresiyle ... FizzBuzz Classic, kaba bir yaklaşımı zorlar ve çözmesi en kolay algoritma sorunları kategorisine sokar. Bir ipucu olarak, insanlardan sadece "Fizz" i yarı krediye kodlamalarını ve daha sonra bir geliştirme olarak "Buzz" ı eklemelerini istediniz mi?

Bence sorunuzun nihai cevabı iyi adaylar bulmak gerçekten zor.

Genel Mülakat Soruları

Sıklıkla adaylardan heyecan duydukları son programlama projesini açıklamalarını istemek daha kolay ve daha verimli buldum. Bu soru ile% 100 başarı elde ettim, yani bir programlama projesi hakkında animasyonla konuşan ve bununla ilgili teknik soruları cevaplayabilen insanlar büyük işe alımlardı ve yapamayanlar değildi. Bu, adayı rahatlatmanın ve açık uçlu tartışmayı teşvik etmenin güzel yan etkilerine sahiptir. Bu soru ile aday aslında size en uygun olanı söyleyecektir.

Belki bir think tank algoritması soruları da gereklidir, ama ben onları "favori proje" sorusu lehine terk ettim.

FizzBuzz toplamı (Oğlu)

Röportaj sorunuz FizzBuzz ile eşdeğer değil:

10'un altında 3 veya 5'in katları olan tüm doğal sayıları listelersek, 3, 5, 6 ve 9'u alırız. Bu katların toplamı 23'tür. 3 veya 5'in katlarının toplamını bulan bir işlev yazın. 1000'in altında.

FizzBuzz Classic sizi n yinelemelere (her sayıyı veya Fizz / Buzz'ı yazdırmak için) gitmeye zorladığında , sorununuz n / 5 + n / 3 + n / 15 yinelemelerinde veya hatta hiçbir yinelemede yapılabilir - doğrudan sabit- nokta hesaplaması mümkündür. Aşağıdaki program bu üç yöntemi karşılaştırır:

public static void main(String[] args) {
  long n = Long.valueOf(args[0]).longValue();
  long sum = 0;
  long ms = System.currentTimeMillis();
  // Brute force method  Performance: cn
  for (long i = 1; i <= n; i++) {
    if ((i % 3) == 0) { sum += i;
    } else if ((i % 5) == 0) { sum += i; }
  }
  System.out.print("Brute force sum:    " + sum);
  System.out.println(" time: " + (System.currentTimeMillis() - ms));
  ms = System.currentTimeMillis();

  // Second solution: iterate through only numbers we are
  // interested in.  Performance: c * (n/3 + n/5 + n/15)
  // We counted multiples of 15 twice, so subtract one of them
  sum = countSum(n, 3) + countSum(n, 5) - countSum(n, 15);
  System.out.print("Only multiples sum: " + sum);
  System.out.println(" time: " + (System.currentTimeMillis() - ms));
  ms = System.currentTimeMillis();

  // Third solution: Use high school algebra.  Performance: c
  sum = sumSeries(n, 3) + sumSeries(n, 5) - sumSeries(n, 15);
  System.out.print("Sum of series:      " + sum);
  System.out.println(" time: " + (System.currentTimeMillis() - ms));
}

// Iteravely sum all multiples of skip
private static long countSum(long n, long skip) {
  long skipTotal = skip;
  long grandTotal = 0;
  while (skipTotal <= n) {
    grandTotal += skipTotal; skipTotal += skip;
  }
  return grandTotal;
}

// Thanks to @Caleb for pointing this out!  High school algebra
// tells us that the sum of a series is: (n * (a1 + an)) / 2
// where a1 is the first term and an is the nth term.  E.g. The
// sum of a series of 3 is: (n/3 * (3 + n - (n % 3))) / 2
// Since we are thinking about performance here, we'll shift
// right one instead of dividing by 2 for style points.  ;-D
private static long sumSeries(long n, long skip) {
  return (n/skip * (skip + n - (n % skip))) >> 1;
}

Çıktı (FizzBuzz <1000 toplamı):

$JDK_HOME/bin/java FizzBuzzNot 999
Brute force sum:    233168 time: 0
Only multiples sum: 233168 time: 0
Sum of series:      233168 time: 0

Performans karşılaştırması için daha büyük bir n ile:

$JDK_HOME/bin/java FizzBuzzNot 1000000000
Brute force sum:    233333334166666668 time: 4744
Only multiples sum: 233333334166666668 time: 818
Sum of series:      233333334166666668 time: 0

Bunu konu dışı olarak oy kullananlara not

Bu soruya bir çözüm sunmanın amacı, FizzBuzz Sum'a kaba kuvvet çözümünün FizzBuzz Classic'e benzemekle birlikte, Sum problemine daha iyi çözümlerin mevcut olduğunu ve bu da onu temelde farklı bir problem haline getirdiğini göstermektir. Bir dizinin toplamı için uygun formülü hatırlamıyorsanız veya 3 veya 5 adım attığında geçerli olduğunu bilmiyorsanız, FizzBuzz'ın toplamı son derece zordur.

Diziyi ikiye bölerek, yarısını tersine çevirip eşleştirerek bir dizinin toplamı için formülü yeniden türetirseniz, sizi gerçekten dağınık bir yola indirebilecek (n + 1) (n / 2) elde edersiniz tamsayı bölümü ve kesik kalanlar söz konusu olduğunda. Bu formülün (n (a1 + an)) / 2 sürümü, n'nin tüm değerleri için basit bir cevap için kesinlikle önemlidir.


3
Bu doğrudan hesaplanabilir (Ruby):t = { |i| (i * (i+1)) / 2 }; fizzbuzz = { |n| 3 * t((n-1)/3) + 5 * t((n-1)/5) }
kevin cline


1
@ GlenH7 Evet, buzzkill olduğu için yorumumu sildim. Glen o ALL AT soruya cevap olmasa bile, onun analiz için sahne hak: D (Ayrıca, ben tamamen kodlu ve kendi çözüm dakika önce denedik)
Andres F.

2
Bir serinin toplamını arıyorsunuz, bu serinin modulo = 0 olduğu göz önüne alındığında, n / 2 * (m + nm) formülü kullanılabilir. Burada m = modulo numarası ve n = serideki eleman sayısı (aka kat (x / m). Bundan sonra kolay, S (3) + S (5) - S (3 * 5) [böylece bazı sayılar iki kez sayılmaz]
jmoreno

3
Bir sorun yaşamanızın bir nedeni, bazı sayıları iki kez saymanızdır (15'e bölünebilir). Örnek bir program için bkz. İdeone.com
clone/

8

En azından tecrübeden öğrenebilmesi için ona sorunu çözmenin bir yolunu göstermiş olmalıydım. Ama yine sormadı. Bu durumla başa çıkmanın doğru yolu nedir?

Röportajın ne düzeyde olduğu umurumda değil, hatta gerçekten "FizzBuzz" düzeyindeki bir soru veya ileri bir soru olsa bile. Bir adaydan bir soruyu çözmesini isterseniz ve yapamazlar, ancak doğru cevabı sormaya bile zahmet etmeyin, o zaman zamanınıza değmez. Dünyada nasıl bu kadar entelektüel tembel olabilirsiniz?!?

Ve tamamen bir programcı olarak kokuyorsanız ve sadece bir işe girmeye çalışıyor olsanız bile, neden en azından şimdi doğru cevabı almak için bu kadar pragmatik olmuyorsunuz, böylece bir sonraki röportaj için bunu biliyorsunuz?

Yani hayır, cevabı "vermek" olmamalı, ancak gereken aday çıkarabilmesi beklemek onlar başarısız sonra doğru cevabı işitme konusunda ısrar ediyor. Eğer yapmazlarsa, bu benim kitabımda büyük bir kırmızı bayrak.

Birisi FizzBuzz'ı gençlik düzeyindeki bir Dev röportajında ​​patlattı, çünkü modül operatörünü hatırlayamadılar ve onsuz devam etmeyi başaramadılar, ancak doğru cevabı açıkladıktan sonra yeniden yapma konusunda tutkulu oldular, ya da en azından sizinle doğru kod üzerinden konuşmak, o zaman neredeyse doğru cevaplamak kadar iyidir.


1
Neden? Cevabı daha sonra Google'a gönderebilirsiniz. FizzBuzz oldukça popüler. Birisi modül bölünmesini bilmiyorsa dürüstçe endişelenirim.
Brian

Modül operatörü yerine bir şey bulmaya çalıştığı için ona kredi verirdim, ama o noktaya bile gelmedi. Cevabını istememe konusuna odaklanmakta iyi bir noktanız olduğunu düşünüyorum. Gözleminiz, görüşme sırasında ortaya çıkan diğer zorluklarla uyumludur.

FizzBuzz hakkında gerçekten fikir sahibi oluyorum ... ama bu doğru cevap. Aday cevap istemezse, cevap vermeyin.
James P. Wright

@ JamesP.Wright - Bir dereceye kadar katılıyorum ve röportaja girerken, bunu baştaki kodlama sorusu olarak kullanmaktan biraz utandım. Bu edilmiş sözde gülünç kolay olması ve hatta soru aşırı okuyamaz için bir uyarı ile prefaced. Kolay olması gereken bir takibim vardı ve daha sonra daha üst düzey geliştirme / tasarım becerileri göstermesine izin verecek bir üçüncüm vardı. Üçüncü soruya hiç

1
@ 0A0D, FizzBuzz ile ilgili "matematik" basitçe belirli bir değişkenin 3 ve / veya 5 ile bölünebilir olup olmadığını kontrol ediyor. Bu matematik seviyesi yazdığınız hemen hemen her uygulamada mevcuttur. Benim gibi aynı seviyedeki projeleri bu matematiği tekrar tekrar kullanan "iş geliştiricileri" bile. GlenH7, FizzBuzz'da özyineleme kullanmanın beni etkilediğinden veya korkutup çekmeyeceğinden bile emin değilim ... Kesinlikle tehlikeli bir aşırı silah gibi görünüyor.
Graham

4

Bir ön ekran sırasında görüşmeciyle telefonda konuşurken fizzbuzz'ı yazdım. Bu, herkes duymamış olsa bile, bir dönem ders çalışmasından sonra ama kesinlikle "kıdemli" statüsü kazandıktan sonra birlikte Arnavut kaldırmanız gerekir.

Bunu yapamamaktan gerçekten iyileşme yok. Her ihtimale karşı yoldan çekmeniz gereken gerekli sıkıntılardan biri.

Ön ekran olarak yayınlamanın mantıklı olduğunu söyleyebilirim, böylece onları bir röportaj için siteye getirmekle herkesin zamanını boşa harcamazsınız.


Ön ekran için, sağlanan bazı örnek kod istemişti. Bu kod bazı orta-ileri C # dil özellikleri vardı, bu yüzden onun sadece bir ya da iki dakika içinde mantık soruları ile darbe bekledi.

7
Verilen örnek kod bir röportajda gösterilen bilgiyle eşleşmediğinde, beynim derhal örnek koddan şüphelenir.
Graham

@Graham: Onu 6 ay boyunca geçici olarak kiralayın ..
Brian

@ 0A0D Maalesef bu tür esnekliğe izin veren bir yerde hiç çalışmadım. Reklamı yapılan pozisyon tam zamanlı bir konserse, bu kişiye sunabileceğimiz TÜM.
Graham

3
Bu senaryoda çit yok. "Örnek kodu" güçlü bir bilgi gösteriyorsa ve fizzbuzz'ı kodlayamıyorsa, örneği çıkarın ve ona ayrıntılar sorun. Eğer destekleyemezse, o zaman en sevdiğim çizgi "hala incelememiz gereken bazı adaylarımız var, size geri döneceğiz."
Michael Brown

4

Hatta bir döngü kullanmayı düşünmesi için ona koçluk yaptım ve 3 ve 5'in gerçekten özel durumlar olarak görülmeye değer olduğunu.

FizzBuzz-ish sorunuzun "doğru" cevabının ne olduğunu düşündüğünüzü bilmek ilginç olurdu . Oturduğum yerden, sorunuzun harfine yazılmış iyi bir (C):

int f(void) {
    // sum the multiples of 3 and of 5 and subtract multiples of 15 so we don't count them twice
    return ((1000/3)/2)*(999+3) + ((1000/5)/2)*(995+5) - ((1000/15)/2)*(990+15);
}

Daha iyisi şunlar olabilir:

Doğrudan hesaplayabildiğinizde neden bunu yapmak için bir program yazasınız ki?

Mesele şu ki, bir kediyi yüzmek için birden fazla yol var ve söz konusu adayın hemen fordöngüler ve modoperatörler yazmaya başlamaması onun aptal olduğu anlamına gelmiyor. Adayın ne bildiğini bilmek istiyorsanız , sorunu tartışın - ne düşündüğünü öğrenin. Eğer sıkışmış veya kafası karışmışsa, nerede ve neden olduğunu öğrenin. Sizi hiç düşünmediğiniz bir yaklaşıma yönlendirebilir.

Benim sorum, ona mantık sorularına cevap verip vermemem gerektiğidir.

Görüşmeci olarak, adaya bir ders vermek sizin yeriniz değil . Kod yazmayı gerçekten bilmiyorlarsa, ne kadar bilmediklerine odaklanarak onları utandırmaya kesinlikle gerek yoktur. Sormak için yeterince ilgileniyorlarsa, elbette paylaşmaktan çekinmeyin. Aksi takdirde, röportajı bitirin, zamanları için teşekkür edin ve bir sonraki adaya geçin.


Son paragrafınızdaki kesin yanıt için +1. Ve iyi bir noktaya değindin, "cevap" yerine "cevap" demeliydim. Bu sorunu çözmenin birkaç yolu vardır. Gelince discuss the problem, bu öğe görüşme sırasında diğer sorular ortaya attı. Maalesef, aday ... cevap vermede beklenenden daha azdı. "İyi öznel" için P.SE yönergelerini gerçekten tutmaya çalıştığım için bu soruyu orijinal soruya eklemedim.

1
"adaya bir ders vermek için senin yer değil" - katılmıyorum. İyi bir programcı her zaman öğrenir. Yeni bir şeyler öğrenmek için minnettar davranarak dersinize cevap veriyorlarsa, bu onların iyi bir programcı olduklarının bir işaretidir. Eğer dersinizi silkiyorlarsa, büyük ihtimalle boktan bir programcıdırlar.
nbv4

Eğer röportajcınız olsaydım ve bana bu tür bir cevap verseydiniz, sizi cebir öğretmenlerine ihtiyaç duyan bir okul bölgesine yönlendirirdim. FizzBuzz, görüşmecinin sizi temel olarak iyi programcılardan ayıracak sorulara geçebilmesi için temel bir programlama bilgisi göstermekle ilgilidir. Yanıtlarınız zekidir, ancak döngü, modüler aritmetik vb. ve devam et (daha olası).
user1172763

@ user1172763 Mesele bu - FizzBuzz'dan farklı olarak, OP'nin röportaj sorusu tek bir hesaplama ile cevaplanabilir. Dolayısıyla, adayın bir döngü yazıp yazamayacağını görmek kötü bir seçimdir. Bir adayın, soruyu belirli (ve dengesiz) bir nedenden dolayı sorduğunuz varsayımı üzerine daha yavaş, çok daha ayrıntılı bir çözüm seçmesini bekleyemezsiniz. Gerçekten, görüşmeci adayın döngünün tamamen gereksiz olduğunu fark edip etmediğini görmek için kolayca bir "hile" sorusu olabilir. Zihninizi okumak adayın sorumluluğunda değildir.
Caleb

2

Sizin "probleminiz", empatik bir insan olmanızdır, bu nedenle birisinin cevabını bildiğiniz bir problemle mücadele ettiğini izlemek zordur (kullanılabilirlik çalışmaları yürütüyorsanız bu da bir sorundur). Görüşmeci olarak görevler açısından, hiçbir şekilde görüşmeciye nasıl programlayacağını veya problem çözeceğini ya da sorduğunuz bir sorunun çözümünü öğretmek zorunda değilsiniz.

Bir röportaj yapılan kişiye koçluk yaptığınızda, doğru cevabı alabilmeleri bu değildir. Sorunu gerçekten çözüp çözemediklerini veya sadece bir veya iki hataya veya yanlış anlamalara asıldıklarını görebilirsiniz.

Bu nedenle, görüşme yapılan bir kişiye gerçekten sonra çözüm vermek istiyorsanız, bunu tamamen kendiniz için yapıyorsunuz. Genel olarak, o zaman görüşmeyi yapan kişinin başka bir problemi denemesine izin vermek için kullanmayı tercih ederim. Ancak FizzBuzz'a cevap veremeyen "kıdemli" bir programcı muhtemelen listenin dışında. Çözümler vermeye karar verirseniz, röportajın olduğundan daha iyi gittiğini düşünmek için kendinizi kandırmamaya dikkat edin (eğer kendinizi “sorunu çözemez, ama açıkladığımda iyi anladı” diye düşünürseniz, tehlikeli bir yoldasın).

Ve evet, başının üstünde olan ve bir röportaj problemini çözmek için ilk denemeyi bile başaramayan bir görüşmeci oldum. Bu, o alanda bir iş bulmak için çok daha fazla şey öğrenmem gerektiği anlamına geliyordu.


2

Doğru cevabı almak bu testin önemli bir parçası değildir. Ölçtüğünüz şey, birinin problem çözme yaklaşımı, soruyla nasıl etkileşime geçtiği, yol boyunca ortaya çıkan yaratıcı veya ilginç her şey; bu tür şeyler. Yanlış cevap alsalar bile yine de bu kriterlere uygun olabilirler.

Tamam, mod operatörünün kaçınılmaz olduğunu bilmemek ve verdiğim metriklerle bu aday hala bir yazım olarak görünüyor, ancak bu adaya doğru cevabı vermenin herhangi bir şey olacağına inanmıyorum yarar.

Bu buradan kişisel görüşünüze gelir. Adayın gelecekteki görüşmelerde daha iyisini yapmasına yardımcı olmak için görüşme geri bildirimi vermek istiyor musunuz (ve gelecekteki görüşmeciler daha önce yaşadıklarınız için acı çekmek zorunda kalmıyor)? Öyleyse, görüşlerinizi yukarıda özetlediğim terimlerle belirtin: Onlara bunun sadece doğru cevapla ilgili olmadığını, yanıta nasıl ulaştıklarının kritik bir faktör olduğunu söyleyin.


Bir yorum için 1 how they work to arrive at the answer is a critical factor. nasıl sadece o en çünkü kullanılacak bir modül operatörü beklenen iken, işte ben bunu çözmüş olacaktır. Göze batan sınır koşulu hataları oluşturmadan sorunu çözen başka bir yaklaşımı görmeye çok açıktım (özyineleme ile yaklaşım hakkında çeşitli yorumlarıma bakın ....).

2

En azından tecrübeden öğrenebilmesi için ona sorunu çözmenin bir yolunu göstermiş olmalıydım. Ama yine sormadı. Bu durumla başa çıkmanın doğru yolu nedir?

Gördüğüm gibi, idare edecek bir durum yok. Başvurusunu reddettiğinizi varsayarsak, adayın (görünürdeki) ilgi eksikliği kendinizi endişelendirmeniz gereken bir şey değildir.

Gerçekten de, o bile vermedi sormak, sen yok borçlu ona bir açıklama. Bu konuda İK millet konuştum eğer, onlar olabilir adayı ile daha ileri tartışmalar yasal nedenlerle yýkýcýda olduğunu öneriyoruz.


Ayrıca, FizzBuzz sorununun nasıl sorduğunuza bağlı olarak farklı "en iyi" yanıtlara sahip olduğunu da belirtmek gerekir. "En basit" çözümü ve "en verimli" çözümü sorarsanız, en iyi yanıtlar tamamen farklıdır. Ve bu renklendirebilirsiniz senin sen soru soruldu bu şekilde belirsiz olsaydı ... haksız hüküm. (Öte yandan, iyi / deneyimli bir aday kodlamaya başlamadan önce bunu açıklığa kavuşturmak için öngörüde bulunacaktır ...)


2

Sorunuzu cevaplamak için hayır, cevabı vermem. Kişi daha iyi bir yazılım mühendisi olmak istiyorsa, cevabı bulacaklardır. Onlara cevap verirseniz, bu fırsatı soyuyorsunuz.

Daha alakalı soru, kendinize ne zaman kıdemli bir geliştirici diyebilirsiniz? Bu, kuruluşlar ve ülkeler arasında değişiklik gösterir. Örneğin, birlikte çalıştığım bir şirket, yaşlılar olarak 5 yıllık deneyime sahip Yazılım Mühendisleri olarak kabul edildi. Deneyimin kalitesine, sadece uzunluğuna vurgu yapılmadı.

Diline bakılmaksızın tüm Yazılım Mühendislerini kategorize edecek bir standart geliştirene kadar, becerilerinin seviyesine karar veren bireye bırakılırız. Ve en temel beceri testini geçemeyen "Kıdemli Mühendisler" i duymaya devam edeceğiz.

Söz önce Birkaç hafta istendi "Kendinize Kıdemli Geliştirici çağırmalıdır zaman" . Ayrıca konuyla ilgili bir blog yazısı da yazdım .


Blog bağlantınızı gözden geçirir misiniz?
André

@ André bağlantısı güncellendi.
Chuck Conway
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.