Steve Ballmer’ın hatalı Binary Search mülakat sorusu
(blog.jgc.org)- Microsoft mülakat bilmecesi olarak tanıtılan sayı tahmin oyunu binary search ve beklenen değer kavramlarını soruyor; ancak sayının rastgele seçildiği koşulda “katılımcının aleyhine” sonucu yanlış
- Kurallar, 1 ile 100 arasındaki bir sayıyı ipuçlarıyla daraltarak bulma şeklinde; doğru cevabı bulmak için gereken tahmin sayısı arttıkça $5’tan başlayan ödül azalıyor ve daha sonra katılımcı para ödüyor
- Ballmer’ın kasıtlı olarak zor sayılar seçebileceği itirazı doğru; binary search stratejisinde bile belirli 37 sayı ancak 7. tahminde bulunuyor ve katılımcı $1 ödüyor
- Sayı rastgele seçilirse hem Perl kodu hem de olasılık hesabı oyunun beklenen değerini $0.20 olarak veriyor; bu da katılımcı için pozitif beklenen değer demek
- $0 ödül aralığı olmadan, 6. tahminden itibaren doğrudan katılımcının para ödemesi kuralı olsaydı beklenen değer -$0.49 olurdu ve Ballmer’ın sonucuyla uyuşurdu
Sayı tahmin bilmecesinin kuralları
- Steve Ballmer, kısa bir videoda Microsoft mülakat adaylarına sorduğunu söylediği bir bilmeceyi tanıtıyor
- Bir kişi 1 ile 100 arasında bir sayı düşünüyor; aday her tahmininde “yüksek” veya “düşük” ipucu alarak aralığı daraltıyor
- Ödül, doğru cevabı bulduğu tahmin sayısına göre değişiyor
-
- tahmin: $5
- 2.: $4
- 3.: $3
- 4.: $2
- 5.: $1
- 6.: $0
- 7.: katılımcı $1 öder
- 8.: katılımcı $2 öder
- 9.: katılımcı $3 öder
-
- Temel soru şu: “Bu oyunu kabul etmeli misiniz?”
- Ballmer’ın sonucu “Hayır”dı ve bunun iki nedeni vardı
- Kendisi bulunması en zor sayıyı seçebilir
- Kendisi sayıyı rastgele seçse bile beklenen değer negatif olduğundan katılımcı Ballmer’a para öder
Ballmer’ın haklı olduğu kısım: sayıyı karşı taraf olarak seçebilir
- Ballmer’ın zor bir sayı seçebileceği şeklindeki ilk gerekçesi doğru
- Sayının rastgele seçildiği koşulda binary search stratejisi optimaldir
- Binary search kullanılsa bile Ballmer belirli bir sayıyı seçerse katılımcı $1 ödemek zorunda kalır
- Bu sayılar şunlardır: 2, 5, 8, 11, 14, 17, 20, 22, 24, 27, 30, 33, 36, 39, 42, 45, 47, 49, 52, 55, 58, 61, 64, 67, 70, 72, 74, 77, 80, 83, 85, 87, 90, 93, 96, 98, 100
- Diğer sayılarda $0 alınır ya da pozitif ödül kazanılır
- $0 getiren sayılar: 1, 4, 7, 10, 13, 16, 19, 23, 26, 29, 32, 35, 38, 41, 44, 48, 51, 54, 57, 60, 63, 66, 69, 73, 76, 79, 82, 86, 89, 92, 95, 99
- Bunların dışındaki sayılarda katılımcı Ballmer’ın parasının bir kısmını alır
59 sayısı örneği
- Ballmer videoda 59’u seçiyor
- Binary search stratejisiyle 50, 75, 62, 56, 59 sırasıyla 5 tahminde bulunabilir
- Bu durumda görüşmeci Emily Chang $1 alır
- Emily Chang’in gerçek tahminleri 50, 75, 60, 55, 57, 58, 59’du ve binary search’ün 5 adımlı çözümüne oldukça yakındı
Rastgele seçimde beklenen değer pozitiftir
- Ballmer’ın sayıyı rastgele seçtiği varsayılırsa beklenen değerin negatif olduğu sonucu yanlıştır
- Perl kodu, 1–100 arasındaki her sayı için binary search ile kaç tahminde bulunduğunu hesaplar, ödülleri toplar ve ortalamasını alır
- Hesap sonucunda oyunun beklenen değeri $0.20 çıkar
- Aynı sonuç olasılık açısından da doğrulanabilir
-
- tahminde 50 seçilir, başarı olasılığı 1/100’dür ve ödül $5’tır
-
- tahminde 25 veya 75 seçilir, başarı olasılığı 2/100’dür ve ödül $4’tır
-
- tahminde 12, 37, 62, 88 seçilir, başarı olasılığı 4/100’dür ve ödül $3’tür
-
- tahminde 6, 18, 31, 43, 56, 68, 81, 94 seçilir, başarı olasılığı 8/100’dür ve ödül $2’dir
- Sonrasında da aynı şekilde devam eder
-
- Beklenen değer formülü
5 * 1/100 + 4 * 2/100 + 3 * 4/100 + 2 * 8/100 + 1 * 16/100 + 0 * 32/100 + -1 * 37/100olup sonuç 0.2’dir - Sondaki
-1 * 37/100terimi, binary search’ün sonuna ulaştıktan sonra kalan olası sayıları temsil eder
Hatanın ortaya çıkmış olabileceği nokta
- Bir olasılık, Ballmer’ın $0 ödül aralığını kastetmemiş olmasıdır
- Kural “$5, $4, $3, $2, $1; ardından katılımcı $1, $2, $3 öder” olsaydı beklenen değer -$0.49 olurdu
- Bu varyasyonda Ballmer’ın “beklenen değer negatif” sonucu ile uyum sağlanır
1 yorum
Hacker News yorumları
Yazı, görüşülen kişinin sayının rastgele seçildiğini varsaydığını ima ediyor, ancak gerçekte Ballmer düşmanca da seçebilir
Ancak görüşülen kişi Ballmer’ın düşmanca seçim yaptığını varsayarsa, ilk tahminini farklı belirleyerek olasılığı değiştirebilir. Orijinal yazar da 50’den başlanacağını düşünüyor, ama ikili aramanın doğası gereği 50’den sapmış bir başlangıç değerini her seferinde rastgele bir ofsetle seçmek, heuristikleri hedefleyen basit bir düşmanca saldırıyı engellerken ikili aramanın avantajlarının çoğunu koruyabilir
Böyle basit bir düşmanca seçime karşılık veren optimum rastgele ofset seçme algoritmasının analizini görmek isterdim
Ballmer’ın “Hayır, ilk tahmin 50’den başlamalı. Herkes böyle bilir” dediğini gözümde canlandırabiliyorum
Yani ilk tahminin iki tarafında da en fazla 64 sayı olması yeterli. Dediğiniz gibi bu ofset rastgele seçilirse, ikili aramanın boşluğunu hedefleyen düşmanca örneklerin çoğu etkisizleşir ve belki de düşmanca seçimin avantajını tamamen ortadan kaldırabilir. Ancak bu durumda ofsete uygun bir dağılım gerekebilir
Ben de böyle bir analiz görmek isterdim
Asıl mesele, Ballmer rastgele seçse ve görüşülen kişi buna göre optimum oynasa bile oyunun beklenen değerinin hâlâ negatif olması; bu tek başına oyunun görüşülen kişi için zararlı olduğuna emin olmak için yeterli
Yazı, “öyleyse gerçek beklenen değer nedir” şeklindeki daha zor soruya cevap vermiyor. Ama görüşülen kişi ilk tahminini 40~60 arasında rastgele seçip ardından oradan ikili arama yaparsa, Ballmer’ın başlangıçtaki sayıyı rastgele seçmesine kıyasla belirgin şekilde daha avantajlı hale gelmesi zor görünüyor
Simülasyonun bulduğu bir Nash dengesinde Ballmer tarafı aralığın iki ucuna yakın değerleri karıştırarak seçiyor. Her zaman 1 ya da 100 değil ama onların civarı. Ballmer oyuncusunun tur başına yaklaşık 0,85~1,00 dolar beklenen değerle kazandığı sonucu çıktı
Sonuç olarak tahmin eden tarafın stratejisi de ikili aramayı aralığın uçlarından başlatıp, hangi tarafı tutturmayı umduğuna dönüşüyor. Futboldaki penaltılarda şutör ve kalecinin birbirine karşı yön seçmesine benziyor. Kaleci aynı tarafı seçmek ister, şutör ise ters tarafı ister. Ama seçenek 100 tane olunca kale fazla genişmiş gibi geliyor
Artık kalan seçimleri ikili arama desenine bağlamazsak dengenin tamamen değişeceğini ve oyuncunun sonucunun iyileşeceğini düşünüyorum. Ancak her aralık için strateji seçimi ortaya çıktığından hesaplama çok daha ağırlaşıyor. Üstelik bunu yaparak 2 saat boyunca işten kaçmış oldum, yani iyi değil. Yine de ikili arama kısıtını kaldırınca ne olacağını merak ediyorum
Yakın zamanda karmaşık bir alan olan ödemeler konusunda kıdemli bir rol için mülakata girdim; bu alanda 10 yılı aşkın süredir çalışıyorum.
Yalnızca ABD’de değil, Birleşik Krallık ve AB’deki çoğu yargı alanında ödemeleri en ince ayrıntısına kadar bildiğim için mülakat kusursuz geçti. Kıdemli bir rol olduğu için konu uzmanlığından çok etki yaratma, yumuşak iletişim ve çatışma yönetimi daha önemliydi; o kısımda da iyi iş çıkardım. Bilerek sürekli sözümü kesen berbat bir kıdemli yönetici koymuşlardı; sonrasındaki geri bildirim, çatışma yönetimi konusunda adeta bir masterclass verdiğim yönündeydi.
Son tur, kendini fiilen alan uzmanı olarak gören bir iş birimi temsilcisiyle yapıldı; ödemelerle ilgili sürekli ıvır zıvır bilgi soruları sordu. Mümkün olduğunca çok genel kültür kırıntısını tarayıp reddetmek için tek bir gerekçe bulmaya çalışıyor gibiydi.
Son soru, gerçek zamanlı ödemeleri fiilen yapmış deneyimim olup olmadığıydı; birkaç ülkede bunu yapmıştım. ABD’deki FedNow çok yakın zamanda devreye girdiği için spesifikasyonunu okumuş, kurmak mı satın almak mı gerektiğine karar vermek üzere birkaç tedarikçiyi değerlendirmiştim. Bunu dayanak gösterip gerçek zamanlı ödeme deneyimim yok diyerek olumsuz tavsiye verdi.
Açıkçası böyle bir ortamda çalışmak istemem. Büyük bir ABD bankasıydı ve en büyük sorun ürün inovasyonu ya da müşteri odağı değil, operasyonel kesintilerdi. Ödeme uzmanlığımdan bağımsız olarak, bu benim çeşitli büyük şirketlerde kurtardığım bir alandı; bunu da net biçimde aktardım. Yine de şanslıysanız böyle bir yerin tatsız olduğunu acı çekerek öğrenmek zorunda kalmazsınız.
Şirketin yalnızca toksik bir kültüre sahip olduğunu değil, bu kültürü benimsediğini de gösterir. Böyle yerler çatışmayı seven insanları çeker; bu insanlardan yeterince çoğu bir araya gelince kültürü onlar oluşturur.
Sık söylenmez ama çatışma bir liderlik başarısızlığıdır. Çok üst düzey bir liderin parmağını şıklatıp “İkiniz bunu hayata geçirin lütfen” demesi bile çoğu zaman çatışmayı çözer. Ama liderlik sahadan o kadar kopuktur ki ekipleri hizalayamaz; ya da rekabet adı altında ekip içi çatışmayı yapısal olarak destekler. Her iki durumda da böyle yerler çalışmak için cehennem gibi olabilir.
Sonunda adayın o anda cevabı bilemeyeceği bir noktaya kadar giderdim. Bunu düşmanca ya da kaba yapmak istemezdim; “Bilmiyorum” diyebiliyor mu görmek isterdim. Bilmemek teknik işlerin gündelik bir parçasıdır, ama bunu rahatça söyleyememek büyük sorun olabilir.
Genel olarak en yetkin adaylar “Bilmiyorum” cevabını en rahat verenlerdi. Savunmacı davranmayı her zaman tehlike işareti saydım.
Toksik yöneticiler, çok daha az para alan iç çalışanlardan ziyade aşırı ücret alan dış danışmanları ve danışmanlık verenleri daha çok sever.
Tamamen hazır ve fazlasıyla niteliklisinizdir ama süreç teknik beceri ve deneyimin gerçek bir değerlendirmesi değil de ıvır zıvır bilgi yarışması gibi hissettirirse bu gerçekten sinir bozucudur. Başkalarının da söylediği gibi bu davranış toksik kültürün açık bir işaretidir.
Daha da saçma olan, normalde tam tersinin olması gerektiğidir. Bir ekibi büyütüyor ya da birinin yerine birini alıyorsanız, eldeki herkesten daha iyi birini bulmaya çalışmalısınız.
Reddetmek için önemsiz noktalara takılıyor ya da alakasız ayrıntıların dibine iniyorlarsa bu dev bir tehlike işaretidir. İnovasyonla ya da gerçek problem çözmeyle ilgilenmedikleri anlamına gelir. Bizim başka şirketlerde zaten çözdüğümüz bitmek bilmeyen operasyonel kesinti sorunları da buna dahildir.
Böyle bir durumda zamanlarını boşa harcadığınız için özür dileyip ayrılmak en iyisidir. Ama o bölgede o iş varsa saçmalıklara katlanmak istemeyi de anlarım. Yine de bazen o kurşundan kaçmış olmak kılık değiştirmiş bir lütuf olur. O sırada benim gibi işsiz ve parası tükenmek üzere olan biri olsanız bile böyle olabilir.
Cevap “çiftçi” olana kadar ataları sorgulamak gibi.
“Bu oyunu kabul etmeli miyim?”
Elbette evet. Oyunları severim ve oyunların amacı eğlencedir. İlk 20 dolar civarıysa, 10 dakika keyifli bir oyun oynamanın maliyeti olarak karşılanabilir.
Bittikten sonra “Steve Ballmer ile binary search oynarken 20 dolar kaybetmişliğim var” diyebilirsiniz; bu da yemek masasında kullanılacak iyi bir cümle olduğundan benim için 20 dolardan daha değerlidir.
Muhtemelen Ballmer döneminde Microsoft’un etkisini kaybetmesinin nedeni de biraz buydu. Teknik taraflara bakarken insani yönü çok fazla gözden kaçırmak.
Mülakatta böyle cevap verseydiniz sizi kesinlikle işe almazdım. Gerçekten bir kez böyle bir adayı mülakata almıştım. “Bunu nasıl yapardınız?” diye sorduğumda “Bunu yapmamak gerekir, bence başka bir şey yapmak gerekir” diye cevap veriyordu. İşe alınmadı.
Yıllar içinde yavaş yavaş fark ettim ki ikili arama, özellikle çok büyük ve karmaşık olduğu için debug etmesi zor sistemlerde şaşırtıcı derecede iyi bir sorun çözme aracı.
Yakın zamanda bir iş arkadaşım, kaynak kodu olmayan bir Figma render aracında sorun yaşadı. Belirli bir tasarımı dışa aktarmak çok uzun sürüyordu; arkadaşım günlerce rastgele bir şeyleri değiştirip durdu ama işe yaramadı. Her deneme birkaç saat sürüyor, bazen tarayıcı da çöküyordu.
Benim önerdiğim çözüm, öğelerin yarısını kaldırıp bunun dışa aktarma süresine etkisine bakmaktı. Sonra hâlâ başarısız olan grup üzerinde bunu tekrarladık. Birkaç saat içinde fiilen sonsuz döngüye yol açan öğeyi bulduk.
Uç cihazdan, örneğin bir iş istasyonundan her bir adım uzaklaştığımızda ağ hiyerarşisinde iki adım yukarı çıkardık. Böylece kapsamı kolayca genişletirken “buraya kadar normal, bozuk olan yer burası” noktasını çok hızlı daraltabiliyorduk.
Yönetici, sorumlu aboneyi hızlıca yakalamak için ikili arama kullandı ve mesajın bir yerine fazladan boşluk karakteri ekleyerek içeriği seçici biçimde değiştirdi.
Kodun bir kısmını kaldırır, hâlâ bozulup bozulmadığına bakar, sonra daha fazlasını kaldırırdım.
Hayattaki başarısını kendi zekâsına bağlayıp, bu yüzden herkesten daha zeki olduğunu ve her konuda haklı olduğunu varsayma hatasının bir adı var mı?
Bir tür impostor sendromunun karşı ucu gibi.
“Ben üstünüm ve her şeyi bilirim” şeklindeki ikinci kısım ise düpedüz eski usul kötü karakter denebilir.
https://en.wikipedia.org/w/index.php?title=Luciferianism&old...
Zekiyseniz dünyanın koruyucusu olmanız gerektiği ayartısı. Kendi öğreniminize ve nihai hakikate dayalı bir dünya kurma; bu tür hakikatleri sıradan insanlardan daha kolay ve hızlı bulduğunuzu düşünme ayartısı. Böylece ahlaka bir tür ruhsat verilir ve amaç araçları meşrulaştırır. Şu anda yapılan kötü şeylerin ileride iki kat iyilikle telafi edileceğine inanmak gibi.
Temel atıf hatası ve Dunning-Kruger etkisi de var. Davranış tarafında yanıltıcı üstünlük hissi ahlaki ruhsatlandırmayla birleşiyor; ayrıca büyük başarı elde etmiş kişilerin daha büyük riskler almasına yol açan bir disinhibisyon etkisi de işin içine giriyor. Bu risklere başkalarını olumsuz etkilemek de dahil.
Bu etkilerin hepsi bir ölçüde birleşiyor gibi. Mesele illa zekâ değil; en azından bireyin algıladığı güç sorun gibi görünüyor. Örneğin X konusunda doğuştan daha iyi olduğuna inanan biri daha büyük bir güç hisseder; üstünlük ifade etme ya da başkalarına hükmetme konusunda engellenmesi azalır.
Geçmişteki ihtişamına tutunup artık zirve döneminde olmadığını anlamayan, artık sahip olmadığı bir gücü kullanmaya çalışan insanları hepimiz görmüşüzdür. Bana göre impostor sendromunun gerçek karşıtı bu. Kişinin kendisine ve toplumsal dinamiklere dair algısının zamanın değişimiyle birlikte hareket etmemesi.
Narsistik kişilik bozukluğu
Antisosyallik
Eskiden sevdiği bir mülakat sorusu olan bir iş arkadaşım vardı. Grafik veri yapısıyla ilgili bir soruydu; adaylar yanıt verdikçe elenip duruyordu.
Garip biçimde, zaman içinde o soruyu yanıtlayan adayların hepsi elenmişti. Bu yüzden hepimiz toplanıp onun nasıl bir soru sorduğuna baktık; soruyu birlikte çözmeye çalışırken kendi çözümünün yanlış olduğunu fark ettik.
Meğer kariyeri boyunca insanları bu tek soruyla eliyormuş.
Hepimiz için alçakgönüllü kılan bir deneyimdi ve soru sormadan önce her şeyi yeniden kontrol etmek gerektiğini öğretti. Mülakata giren adayların çoğu işe alınmaya gayet uygun insanlardır. Bazen yanlış olan siz olabilirsiniz.
Hata yapınca doğrudan eleniyor musunuz? Neredeyse herkesi eleyecek kadar kusursuz aday gerçekten o kadar çok muydu?
Mülakata giren kişi olsam ilk sorum şu olurdu: “Adil oynayacak mısınız ve bunu nasıl doğrulayabilirim?”
“İkincisi, anlamlı miktarda para söz konusu olduğunda girdileri doğrularım. Bu size kişisel olarak güvenmediğim anlamına gelmez; duruma güvenmediğim anlamına gelir. Bunu nasıl doğrulayabiliriz, yoksa doğrulanmış sayıp devam etmemi mi istersiniz?”
Bunlar iyi sorular ama nasıl sorduğunuz da önemli. Yazılım mühendisliği yalnızca saf mühendislik değildir; iletişim çok önemlidir.
Çoğu mülakat sorusunda olduğu gibi, bunun da düşüncenizi nasıl geliştirdiğinizi ve çözüm sürecinizi nasıl gösterdiğinizi görmek için sorulmuş bir soru olmasını beklerim.
Mülakatçı bu soruyu sorduysa ve siz hatayı bulduysanız, bu işe alınmanıza yardımcı bile olabilir.
Burada başka ilginç bir nokta daha var. Ballmer, Chang’in bu soruya açıkça ikili arama ve beklenen değer üzerinden yaklaşmadığı belli olunca, bu spesifik soru tartışmasından uzaklaşmak için epey çaba gösterip diplomatik biçimde yön değiştirdi.
Şaşırtıcı değil. O profesyonel bir gazeteci. Asıl şaşırtıcı olan, Ballmer’ın birçok teknik mülakatçı gibi bu soruyu o kadar sevmiş olması ki Chang’in sorusuyla pek ilgisi olmamasına rağmen yine de gündeme getirmeden duramamış olması.
Nash dengesi çözümünü gerçekten merak ediyorum
Bir yorumda söylendiği gibi, tahmin eden tarafın ikili arama yakınlarında rastgele bir sayı döndüren bir biçimde olacağını düşünüyorum. Ama seçen tarafın eşit bir başlangıç dağılımı mı, yoksa eşit olmayan bir dağılım mı kullandığını merak ediyorum. HN’de birileri kesin biliyordur ya da açıklayabilir gibi geliyor
5 sayılı oyun ile 100 sayılı oyun arasında doğal olarak büyük bir uçurum var. Seçenek sayısı arttıkça optimal karma strateji istikrara kavuşabilir de; bildiğim kadarıyla giderek daha da tuhaflaşabilir de. Birisi 6, 7 vb. sayılı oyunları düzgünce araştırırsa mutlaka haber versin
Diğer stratejilerde aday için “hileli sayıyı” tahmin etme stratejisi, Ballmer içinse “hileli sayıyı seçmeme” stratejisi var
Aday, Ballmer’ı hile yapmaya zorlayamaz