Membaca situs ini dan JADI, saya telah melihat banyak cerita tentang pertanyaan dan jawaban wawancara yang mengatakan seorang kandidat harus mengimplementasikan daftar yang ditautkan dari awal. Biasanya ini adalah latihan "beri" untuk memprogram kandidat peran seperti menulis FizzBuzz. Idenya adalah bahwa jika kandidat tidak dapat melakukan ini, mereka tidak dapat memprogram dan harus segera ditolak.
Namun, saya tidak bisa tidak berpikir ini bisa menjadi praktik yang buruk karena alasan berikut:
- Bahasa tingkat tinggi modern seperti C # dan Python asli menggunakan daftar secara luas; menulis objek daftar tertaut Anda sendiri hanya akan diperlukan dalam keadaan yang tidak biasa dan bahkan kemudian mungkin keliru.
- Bahasa tingkat bawah seperti C ++ memiliki pustaka standar dengan iterator / daftar kontainer dan objek.
- Mengingat dua poin pertama, coders dapat berjalan bertahun-tahun tanpa berpikir tentang mengimplementasikan daftar (terkait, dua kali lipat, dll) sendiri. Beberapa bahkan mungkin tidak benar-benar melihat hal-hal seperti itu sejak masa kuliah.
- Daya komputasi juga bukan merupakan faktornya bertahun-tahun yang lalu, jadi efisiensi melalui pointer bukanlah masalah yang dulu (secara umum).
- Pencarian web sederhana dari sesuatu seperti "contoh daftar tertaut" akan memunculkan banyak contoh kode yang bisa dihafalkan dan diludahkan kembali, tidak benar-benar menunjukkan kompetensi sebenarnya dari pemohon.
Saya harus mengatakan bahwa menggunakan linked list untuk menyebabkan terbuka pertanyaan / diskusi pemecahan masalah calon / kemampuan berpikir kritis adalah sebagian besar kemungkinan praktik wawancara benar-benar baik. Bagaimana pun pewawancara dapat benar-benar melihat seperti apa pelamar itu dan bagaimana menurut mereka bermanfaat besar-besaran.
Saya pikir pendekatan biner ini "tidak ada kode daftar tertaut, tidak ada pekerjaan" untuk programmer yang bekerja pada aplikasi desktop atau web agak ketinggalan jaman. Itu juga bisa sangat berbahaya; seorang kandidat yang tidak ingat bagaimana cara bekerja dengan baik dengan kepala daftar bisa menjadi pembuat kode yang baik dan rekan kerja dan tersesat dalam campuran. Pikiran?
EDIT : Ada banyak komentar (baik) yang menunjukkan bahwa apakah ini adalah pertanyaan yang baik atau buruk untuk ditanyakan tergantung pada konteks pekerjaan. Saya sangat setuju, jadi izinkan saya ulangi pertanyaan ini: Menerapkan daftar-tertaut adalah pertanyaan wawancara umum untuk berbagai pekerjaan koding, mirip dengan pertanyaan seperti FizzBuzz atau menulis fungsi rekursif untuk menghitung faktorial. Apakah pertanyaan ini memiliki cukup utilitas untuk digunakan secara umum untuk mengevaluasi kandidat pemrograman di seluruh papan? Atau harus dianggap pertanyaan buruk untuk ditanyakan kecuali untuk posisi "Pengembang Senior, Tim Tertaut Daftar Tertanam"?