sebagian besar perusahaan teknologi biggie seperti Microsoft fokus terutama pada struktur data. Tampaknya struktur data adalah satu-satunya hal yang mereka harapkan dari seorang lulusan.
Tidak, masih ada lagi. Misalnya, kami juga berharap Anda menjadi pembelajar cepat yang dapat mempelajari kerangka kerja baru, API, atau bahkan bahasa pemrograman dalam waktu singkat. Itu bar minimum yang telanjang. Seseorang yang membutuhkan waktu lama untuk mempelajari kerangka kerja baru, API atau bahasa tidak akan menjadi pengembang yang sukses di sebagian besar tim di Microsoft.
Dan tentu saja ada lebih banyak aspek yang kita fokuskan dalam wawancara selain hanya pengetahuan mentah tentang struktur data. Kemampuan untuk berurusan dengan spesifikasi yang ambigu, misalnya, atau kemampuan untuk mengenali pola pengkodean yang menghasilkan kode tidak aman, atau selusin hal lainnya. Tetapi kemampuan untuk memahami struktur data tentu saja sangat besar.
Hal ini terutama terjadi bahwa wawancara bias terhadap pengujian pengetahuan tentang struktur data untuk lulusan CS baru-baru ini. Lulusan baru-baru ini, kebanyakan dari mereka tidak memiliki banyak pengalaman di dunia nyata, tidak diharapkan untuk menjadi baik dalam hal-hal yang sama dengan seseorang yang memiliki pengalaman industri selama lima belas tahun.
Saya harus mengakui bahwa saya tidak begitu kuat dalam struktur data
Adalah baik bahwa Anda mengetahui hal itu tentang diri Anda sendiri. Jika Anda tidak dapat atau tidak mau mengubah itu tentang diri Anda maka rekomendasi saya adalah Anda tidak melamar pekerjaan yang membutuhkan fasilitas dengan struktur data.
ada perspektif umum ini bahwa seorang programmer yang baik tentu saja adalah seorang yang memiliki pengetahuan yang baik tentang struktur data.
Ini tautologis bahwa seorang programmer yang baik adalah seorang programmer yang pandai membangun jenis-jenis program yang perlu dibangun. Banyak programmer bekerja pada tugas-tugas yang tidak memerlukan pengetahuan mendalam tentang struktur data. Beberapa dari mereka mengerjakan tugas yang membutuhkan pengetahuan mendalam tentang desain antarmuka pengguna, misalnya. Atau normalisasi basis data. Atau terserah. Orang-orang itu masih bisa menjadi "programmer yang baik" di domain mereka.
mengapa semua ini menekankan pada Struktur Data?
Saya mengajukan pertanyaan wawancara tentang struktur data karena di tim saya pengembang mendesain, mengimplementasikan dan memanipulasi struktur data yang kompleks setiap hari setiap hari. Kemarin kami memiliki empat jam pertemuan di mana setengah lusin pengembang berpendapat pro dan kontra menambahkan bidang Boolean tunggal ke simpul pohon tertentu. Mungkin tidak ada keahlian di tim saya yang lebih penting daripada kemampuan untuk memahami struktur data pada level yang dalam. Sungguh bodoh untuk tidak menanyakan pertanyaan wawancara tentang hal itu, karena itulah yang kami lakukan.
Apakah tidak memiliki pengetahuan dalam Struktur Data benar-benar memengaruhi karier seseorang dalam pemrograman?
Yah itu pasti akan mencegah Anda mendapatkan pekerjaan di tim saya. Tapi seperti yang saya katakan sebelumnya, pemrograman adalah bidang yang sangat besar . Ada banyak jenis pemrograman komputer yang tidak memerlukan pengetahuan tentang struktur data.
Apakah pengetahuan dalam subjek ini benar-benar merupakan dasar yang cukup untuk membedakan programmer yang baik dan yang buruk?
Tidak. Tetapi hampir selalu cukup untuk mendeteksi pengembang yang tidak mungkin berhasil di Microsoft. Karena itulah yang saya terutama tertarik untuk mendeteksi, pengetahuan tentang struktur data adalah salah satu faktor yang saya uji dalam wawancara.