25 poin oleh xguru 2022-04-19 | 3 komentar | Bagikan ke WhatsApp
  • Tugas pemrograman terkait DB yang saya terima pada 2013 di MemSQL(sekarang SingleStore)
    → "Tambahkan perintah mult ke Memcached, sebuah penyimpanan key-value, dalam bentuk yang mirip dengan incr / decr. Saya beri waktu 1 jam."
  • Pertanyaan ini adalah soal wawancara teknis yang hebat karena membagi kandidat dengan rapi ke dalam 3 tipe
    • Tipe 0: Orang-orang yang terkejut karena harus benar-benar menyentuh kode. Sebenarnya mereka mungkin tidak akan sampai sejauh ini, tetapi jangan direkrut
      → Saat itu MemSQL dikembangkan dengan C++11, jadi menyentuh Memcached yang ditulis dalam C sangat sesuai dengan tujuannya.
    • Tipe 1: Orang-orang yang melihat masalah ini lalu berkata, "Perkalian adalah pengulangan penjumlahan, jadi sepertinya cukup mengulang yang sudah ada! Tapi harus menangani lock juga..."
      → Setelah lama kebingungan, mereka gagal membuat kode yang berjalan. Tentu saja tidak direkrut juga
    • Tipe 2: Orang-orang yang berkata, "Perkalian itu sama saja, selain bagian yang melakukan + harus menjadi *" lalu cepat-cepat melakukan Copy&Paste dan mengganti + menjadi *
      → Orang-orang dalam grup ini sangat mungkin direkrut
    • Kandidat terbaik... karena masih punya banyak waktu tersisa, bisa merapikan hasil kerja, memeriksa konsistensi format, menambahkan unit test, atau meninjau kembali "keputusan desain"

Kesimpulan

  • Saya menyukai tugas pemrograman ini karena merupakan miniatur dari pemrograman nyata
  • Saat memelihara codebase berskala besar, pasti ada kode yang tidak sepenuhnya dipahami atau idiom-idiom yang tidak perlu
  • Soal ini sangat cocok untuk wawancara karena hanya ada satu jawaban yang benar, yaitu mengubah bool incr menjadi int opcode
  • Saat ini ada dua perintah operasi aritmetika (incr/decr), dan ini memperluasnya menjadi tiga perintah
  • Tugas ini adalah soal yang dirancang dengan baik untuk menyaring kandidat yang tidak memenuhi syarat dan mengarahkan kandidat yang memenuhi syarat ke jalur yang menyenangkan

3 komentar

 
minhoryang 2022-04-20

Tampaknya, poin penting yang menarik adalah seberapa cepat seseorang bisa menemukan kode yang relevan.

 
hongminhee 2022-04-19

Menurut saya ini lebih baik karena caranya bukan menulis ulang sebuah program dari nol, melainkan menambahkan fitur ke kode yang sudah ada (dan itu pun proyek open source yang sudah dikenal luas dan banyak digunakan).

 
xguru 2022-04-19

Seperti yang diduga di HN.. orang yang awalnya mengajukan pertanyaan wawancara itu muncul dan sedang mengadakan AMA.
https://news.ycombinator.com/item?id=31065143