Sebuah perusahaan tempat saya bekerja telah meminta saya untuk melakukan pemeriksaan telepon kandidat untuk memastikan mereka tidak sepenuhnya malu ketika mengirim seseorang ke klien potensial.
Ternyata cukup banyak orang ditempatkan untuk peran pengembang C ++. Saya tidak menghabiskan banyak waktu di C ++, tetapi saya telah melakukan beberapa proyek sepele dan non-sepele dalam bahasa ini. Saya pikir "Jelaskan idiom RAII" akan menjadi pertanyaan softball yang bagus yang bisa dijawab oleh pengembang C ++ paling serius saat setengah tertidur, dan akan memungkinkan saya untuk beralih ke pertanyaan yang lebih menarik tentang pengalaman. Tetapi ternyata orang yang memiliki pengalaman C ++ 10+ tahun tidak mengenali istilah tersebut, bahkan jika saya memperluas akronim menjadi "Akuisisi Sumber Daya adalah Inisialisasi." Salah satu kandidat mengatakan bahwa dia merasa tidak selalu praktis untuk menerapkan teknik dalam pengembangan Windows, yang saya pikir merupakan sentimen aneh, tetapi saya dapat melihat beberapa contoh yang bisa mendukung garis pemikiran itu.).
Bahkan beberapa pengembang C ++ saya tahu cukup baik untuk menilai kompetensi mereka mengatakan mereka tidak mengenali istilah tersebut, tetapi setelah membaca ringkasan teknik, mengatakan "Oh, ya, saya tidak tahu yang punya nama. Saya hanya memikirkan hal-hal itu sebagai sesuatu yang harus Anda lakukan . " Saya ingat istilah dari buku Stroustrup edisi kedua, meskipun dampak sepenuhnya tidak meresap pada saat itu.
Jadi, apakah "Bisakah Anda menjelaskan idiom RAII kepada saya?" pertanyaan penyaringan yang adil? Apakah masuk akal untuk mengharapkan semua pengembang C ++ yang kompeten untuk memahaminya? Apakah istilah ini lebih esoteris daripada yang saya pikirkan? Dengan asumsi seorang kandidat tidak tahu istilah itu, apakah ada pertanyaan lanjutan yang dapat membantu saya menggoda apakah mereka setidaknya telah menginternalisasi praktik-praktik yang membuat RAII berfungsi? Apakah ada pertanyaan "weeder" alternatif yang lebih baik yang memberikan kandidat sedikit kebebasan dalam menjawab, dan membantu kandidat menunjukkan pemahaman mereka tentang pengembangan C ++?
Mengedit untuk menambahkan : Untuk memperjelas, saya bukan jenis pewawancara yang mendiskualifikasi orang karena mereka tidak tahu kata kunci dan akronim. Namun, saya pikir masuk akal untuk berharap bahwa seorang programmer C ++ yang berpengalaman telah menginternalisasi praktik-praktik yang baik untuk manajemen sumber daya. Saya juga berpikir bahwa penting untuk memverifikasi bahwa seorang kandidat memahami beberapa "dasar" tentang teknologi yang mereka klaim keahliannya sebelum beralih ke pertanyaan yang lebih menarik tentang desain, pemecahan masalah, dll. Saya pikir apa yang saya cari adalah cara yang baik untuk mengajukan pertanyaan terbuka, cocok untuk digunakan dalam penyaringan telepon singkat, yang dapat saya gunakan untuk menilai pemahaman dasar seorang kandidat tentang praktik manajemen sumber daya yang baik di C ++, sebelum saya mengajukan pertanyaan "sulit".
Jawaban:
Anda tampaknya telah menemukan bahwa pengembang C ++ yang Anda kenal dari pengalaman kompeten tidak terbiasa dengan akronim itu atau bahkan ekspresi penuh. Itu saja tampaknya menunjukkan bahwa pertanyaan itu tidak cocok sebagai pertanyaan penyaringan selama panggilan telepon.
Di sisi lain, Anda bisa mencapai titik yang sama melalui cara yang lebih bundaran dengan mengajukan skenario. Sesuatu seperti: "Anda menerapkan kelas Log yang akan menulis informasi logging ke file. Jelas, Anda harus memiliki variabel anggota yang merupakan file handle (std :: FILE *). Di mana Anda mengalokasikan dan membebaskan file ini menangani?" Jika kandidat mulai berbicara tentang membuat metode open () dan close () daripada mengalokasikan file handle di konstruktor dan membatalkan alokasi handle di destructor, Anda bisa menindaklanjuti dengan menanyakan hal-hal seperti bagaimana kelas mereka akan berperilaku jika kode panggilan menimbulkan pengecualian, dll.
sumber
Saya tidak berpikir itu adalah pertanyaan praktis seperti yang diusulkan. Saya pikir Anda akan menemukan banyak pengembang akan jatuh ke dalam kamp "oh, ya, saya tidak tahu yang punya nama". Saya menyarankan agar Anda menguji kandidat pada konsep dan bukan nama konsep. Berikan mereka contoh kode dan tanyakan mengapa itu tidak lengkap atau minta mereka menunjukkan bahwa mereka tahu konsepnya.
sumber
Saya pikir itu adalah pertanyaan yang valid. Meskipun saya tidak tahu seberapa populer istilah RAII (di tim saya, kami memang menggunakan istilah RAII sepanjang waktu) tetapi konsep penanganan sumber daya adalah penting terutama jika Anda ingin pengecualian-aman dan multi-threaded-safety juga .
sumber
Yah, saya tahu bahwa ketika saya ingin tahu apakah seseorang kompeten, hal pertama yang saya lakukan adalah memeriksa pengetahuan mereka tentang akronim. Setelah itu didirikan, saya memastikan mereka tahu nama-nama teknologi lain yang menurut saya terdengar keren. Jika mereka masih ada di sana setelah itu, maka saya meminta mereka daftar warna favorit mereka.
Saya tidak tahan dengan hal semacam ini. Maksudku, di akhir wawancara, ini sirene dan lonceng peringatan. Saya tidak ingin bekerja di tempat yang sebenarnya penting bagi saya untuk mengetahui mnemonik aneh yang menurut atasan saya "mendasar". Saya tidak dapat diganggu untuk mempelajari nama-nama orang yang telah saya tangani selama bertahun-tahun, jadi saya yakin tidak menyia-nyiakan ruang otak dengan akronim lucu yang menggambarkan praktik terbaik.
Lihatlah kode saya. Tanya saya bagaimana saya akan melakukan sesuatu. Saya akan mencorat-coret papan tulis sampai sapi pulang. Saya akan memberi kode aplikasi kepada Anda. Jangan beri aku pertanyaan sepele omong kosong. Trivia selalu hit atau miss, dan itu tidak pernah mendasar.
sumber
Jika tujuan Anda adalah untuk menyaring total yang tidak kompeten dengan cepat, coba sesuatu seperti ini:
Tes FizzBuzz
Kemudian Anda dapat meninggalkan konsep dan praktik C ++ kepada mereka yang berada di posisi yang lebih baik untuk mengevaluasi keahlian C ++.
sumber
Ini pertanyaan yang valid, tetapi tidak untuk skrining. Saya menggunakannya sebagai pertanyaan tertulis, untuk didiskusikan saat wawancara. Anda bisa mendapatkan banyak wawasan tentang pola berpikir yang diberikan pemberitahuan sebelumnya. Sebagai pertanyaan pemutaran, itu hanyalah jebakan yang tidak menyenangkan.
sumber