25 puan yazan xguru 2022-04-19 | 3 yorum | WhatsApp'ta paylaş
  • MemSQL'de (şimdi SingleStore) 2013'te aldığım veritabanı ile ilgili programlama görevi
    → "Memcached gibi bir anahtar-değer deposuna incr / decr benzeri bir mult komutu ekleyin. Size 1 saat vereceğim."
  • Bu soru, adayları üç tipe temiz bir şekilde ayırdığı için mükemmel bir teknik mülakat problemi
    • Tip 0: Gerçek kodla uğraşmaları gerektiğine şaşıranlar. Aslında bu aşamaya kadar gelemezlerdi ama yine de işe alınmamalılar
      → O dönemde MemSQL C++11 ile geliştiriliyordu, bu yüzden C ile yazılmış Memcached'e dokunmak amaçla gayet uyumluydu.
    • Tip 1: Sorunu görüp "Çarpma, toplamanın tekrarıdır; o zaman mevcut olanı tekrar ederim! Ama kilitleri de yönetmek gerekir..." diyenler
      → Uzun süre debelenip çalışan kod üretemeden başarısız olurlar. Yine işe alınmazlar
    • Tip 2: "Çarpma, toplamanın + yapılan yerde * yapılması dışında aynıdır" deyip Copy&Paste yaparak + işaretini hızla * ile değiştirenler
      → Bu gruptakilerin işe alınma olasılığı çok yüksektir
    • En iyi adaylar ise... hâlâ bolca zamanları kaldığı için çıktıyı cilalayabilir, biçimlendirmenin tutarlı olup olmadığını kontrol edebilir, unit test ekleyebilir ve hatta "tasarım kararları"nı yeniden gözden geçirebilirler

Sonuç

  • Bu programlama görevini sevmemin nedeni, gerçek programlamanın küçültülmüş bir modeli olması
  • Büyük bir kod tabanını bakımda tutarken, tam olarak anlamadığınız kodlar veya gereksiz deyimsel kalıplar mutlaka olur
  • Bu problem, tek bir doğru cevabı olduğu için mülakat için biçilmiş kaftan: bool incr değerini int opcode olarak değiştirmek
  • Şu anda iki aritmetik işlem komutu (incr/decr) var ve bunu üç komuta genişletiyorsunuz
  • Bu görev, yetersiz adayları elemek ve nitelikli adayları doğru yola yönlendirmek için çok iyi tasarlanmış bir problem

3 yorum

 
minhoryang 2022-04-20

İlgili kodu ne kadar hızlı bulabildiğinizin önemli bir belirleyici nokta olacağı anlaşılıyor.

 
hongminhee 2022-04-19

Sıfırdan bir programı baştan yazmak yerine, mevcut koda — üstelik zaten iyi bilinen ve yaygın olarak kullanılan bir açık kaynak projeye — özellik ekleme yaklaşımı olduğu için bunun daha iyi olduğunu düşünüyorum.

 
xguru 2022-04-19

HN'de de her zamanki gibi... orijinal mülakat sorusunu ortaya atan kişi çıkıp AMA yapıyor. https://news.ycombinator.com/item?id=31065143