Meskipun ini umumnya menjadi perhatian, saya pikir masalah ini tidak ada karena pengaturannya.
Pemohon mengirimi Anda beberapa kode sumber. Bagaimana atau mengapa itu terjadi?
Yah jelas hanya ada tiga kemungkinan:
- Anda memberi pelamar tugas untuk memecahkan masalah tertentu (yang didefinisikan dengan baik) untuk menilai keterampilannya.
- Pemohon ingin memamerkan sesuatu yang keren yang ditulisnya.
- Pemohon adalah orang brengsek atau mata-mata atau orang jahat dan sebenarnya tidak tertarik dipekerjakan. Yang ia harapkan hanyalah Anda cukup bodoh untuk menjalankan kodenya.
Tentang 2) dan 3)
Risiko utama adalah membedakan antara 2) dan 3). Kemungkinan besar bahwa jika apa pun yang ditulisnya layak untuk dilihat , itu adalah sesuatu yang bisa Anda dapatkan kode sumbernya untuk daring (dari sumber "netral") dan Anda bahkan mungkin sudah tidak asing lagi, atau itu adalah sesuatu yang sebenarnya tidak Anda ketahui. tidak ingin melihatnya karena Anda akan melanggar kekayaan intelektual pesaing (mantan majikan). Yang terakhir berarti Anda tidak akan mau mempekerjakan orang itu.
Jika Anda bisa mendapatkan sumbernya secara online, lakukanlah. Jika Anda dapat memverifikasi kontribusi pemohon ke perangkat lunak terkenal (termasuk perangkat lunak berpemilik) dengan namanya di suatu tempat dalam kredit, lakukanlah.
Dalam setiap kasus lainnya, abaikan saja apa yang dia kirimkan kepada Anda. Entah itu tidak layak dilihat, atau ilegal, atau berisiko tinggi.
Sekitar 1)
Pemohon mengirimi Anda sesuatu karena Anda memberinya tugas. Jika Anda memiliki setiap kompetensi (yang saya asumsikan Anda lakukan!), Maka untuk tugas pemrograman khas (... bahwa Anda bahkan memilih sendiri!), Anda akan dapat mengatakan apakah itu solusi yang masuk akal bahwa penampilan seolah-olah itu mungkin bekerja dengan melihat kode sumber kurang dari 30 detik (lebih mungkin 10 detik).
Jika Anda tidak dapat mengatakan bahwa program itu mungkin akan berfungsi (atau apa yang dilakukannya) dalam 30 detik, orang yang menulisnya bukan tipe orang yang ingin Anda pekerjakan, bekerja penuh. Anda ingin orang yang menulis kode yang dapat dipahami dan dipelihara manusia lain. Anda tidak ingin seseorang yang mencoba untuk menjadi pintar pada Anda, atau seseorang yang secara teratur memenangkan kontes C yang dikaburkan. Bahkan tidak masalah apakah program itu bekerja. Begitu orang lain tidak dapat memahami kode itu, kode itu tidak pernah "berfungsi".
Jika program terlihat seperti itu mungkin akan berfungsi, tetapi Anda menemukan sesuatu yang tampak "aneh" (katakanlah, urutan pelepasan unicode Java, C ++ string string literal, hal-hal yang terlihat seperti trigraph, apa pun), perlakukan tugas sebagai "gagal", pindahkan ke pelamar berikutnya. Tidak perlu memasukkan hal seperti itu di 99% dari semua program (dan, tentu saja, tidak dalam tugas Anda - saya harap). Jadi jika Anda menemukan sesuatu yang "aneh" seperti itu, pelamar bukanlah seseorang yang ingin Anda sewa.
Jika kode melewati triase pertama, Anda mungkin ingin menghabiskan 2-3 menit untuk melihatnya lebih teliti. Jika Anda masih senang dengan apa yang Anda lihat setelah itu, Anda dapat menjalankannya melalui penganalisa statis dan mengompilasinya dalam mesin virtual pada tingkat peringatan tinggi.
Itu akan memunculkan masalah yang mungkin Anda lewatkan saat membaca sumbernya (seperti menjalankan perilaku yang tidak jelas atau mempersempit konversi).
Kompilasi pertama-tama dan terutama akan memberi tahu Anda apakah pelamar memiliki ketekunan dan perhatian terhadap perincian yang diperlukan, tidak begitu banyak apakah ia memiliki keterampilan pemrograman. Sama seperti menuliskan nama majikan dengan benar pada aplikasi Anda dan memeriksa ejaan CV Anda sebelum menyerahkannya, adalah praktik terbaik bahwa Anda memastikan kode sumber apa pun yang Anda serahkan kompilasi tanpa kesalahan (dan lebih disukai tanpa peringatan). Jika seseorang gagal melakukan itu, Anda tidak ingin mempekerjakannya.
Risiko hal-hal jahat yang terjadi pada saat ini (mengeksploitasi kompiler dan keluar dari VM) dapat diabaikan, melihat bagaimana Anda telah menjalankan pemeriksaan masuk akal atas kode. Tidak akan terjadi.