Apakah buffer overflows dapat diterima dari pengembang lulusan? Apakah kita menyetel bilah terlalu tinggi? Apa kemampuan yang diharapkan dari insinyur lulusan / junior?
Konteks:
Kami saat ini merekrut untuk posisi Pengembang Junior yang bekerja terutama di C di Linux.
Sebagai bagian dari proses, kami meminta kandidat untuk menyelesaikan tes kode di waktu luang mereka di C.
Sejauh ini kami telah menolak dua kandidat dengan alasan bahwa kode mereka, meskipun dapat dibaca dan dalam satu kasus agak idiomatis, menderita kesalahan buffer overflow karena penulisan buffer tanpa batas.
[Sunting]:
- Kami secara eksplisit meminta kode kualitas produksi yang diperiksa kesalahan.
- Kami menyediakan kerangka kerja uji & pembangunan untuk para kandidat
[Memperbarui]:
Sebagai hasil dari utas ini, dan percakapan kami dengan pengembang lain secara langsung, kami mengubah cara kami melakukan tes kode dan siapa yang kami targetkan dengan perekrutan kami.
Kami memutuskan bahwa seorang kandidat yang tidak dapat memperbaiki atau memahami buffer overflow berarti bahwa ia tidak akan cocok untuk pekerjaan yang kami lakukan, khususnya dia akan mengambil lebih banyak pendampingan daripada yang kami nyaman. Karenanya, kami masih akan menolak kandidat yang pada akhirnya tidak dapat mengirimkan sampel kode yang kuat.
Namun, kami telah menerapkan beberapa langkah untuk membuat proses rekrutmen lebih produktif bagi kami dan para kandidat.
Khususnya:
- Kami membuat ekspektasi kami lebih eksplisit, dengan penjelasan yang jelas tentang apa yang kami maksud dengan kualitas produksi, dan peringatan bahwa kode diharapkan kuat sehubungan dengan input dan kesalahan.
- Kami sekarang menautkan kandidat ke sumber daya pada pemrograman defensif dan pustaka standar C dalam deskripsi tes kode.
- Kami mengubah target audiens kami dari pengembang dan lulusan Junior untuk menargetkan orang-orang dengan pengalaman yang relevan.
- Seandainya kode yang diajukan gagal dalam beberapa cara tetapi sebaliknya akan diterima, kami sekarang menyediakan kasus uji minimum yang menyebabkan kondisi kesalahan dan memberikan kandidat kesempatan untuk memperbaiki kesalahan mereka (kecuali jika kode ditolak karena alasan lain). Kami juga akan menunjukkan jalur / fungsi yang bermasalah jika sesuai.
- Tujuan dari tes itu sendiri sekarang telah sedikit berubah dari filter ujung depan ke kesempatan untuk membangun gambaran yang lebih baik dari kandidat, khususnya itu akan menginformasikan diskusi telepon kami. Karena itu, kami masih bersedia menolak hanya berdasarkan kode.
[Pembaruan 2015-07-09]: Andy Davis dari Nujob telah menulis artikel yang menarik dan relevan tentang penggunaan tes kode dari sudut pandang kandidat, dan artikel tersebut layak untuk dilihat. Temukan di sini .