Sampel Kode dan Wawancara? [Tutup]


23

Saya telah melihat sejumlah pertanyaan sejak saya berada di sini di mana, dalam jawabannya, seseorang telah menyatakan bahwa mereka tidak akan pernah menggunakan portofolio atau sampel kode yang dikodekan di luar proses wawancara untuk menilai seorang kandidat, karena ada kemungkinan bahwa kode telah ditulis oleh orang lain. Saya menemukan diri saya terkejut dengan ini.

Cara saya melihatnya, jika saya meminta seseorang untuk datang dan menyelesaikan masalah sederhana di tempat, sangat sedikit yang bisa saya pelajari darinya. Saya tidak bekerja untuk perusahaan seperti Google di mana pekerjaan dicari dan saya dapat menuntut waktu sehari seseorang. Tetapi sepotong besar kode hobi menulis bisa memberi tahu saya banyak.

Ya, ada kemungkinan plagiarisme, tetapi mereka harus dilatih dengan sangat baik untuk melalui diskusi selama satu jam tentang kode itu. Dan jika itu masalahnya, mereka harus menjadi pembelajar yang sangat cepat untuk melewati masa percobaan 3 bulan mereka (di mana saya dapat menyingkirkan mereka tanpa alasan dan tanpa pemberitahuan). Jika mereka menjadi programmer yang baik dengan cepat, cukup adil, saya telah ditipu, tetapi saya masih memiliki programmer yang baik.

Pada akhirnya, biaya untuk perusahaan kami dan manfaat bagi calon penjiplakan sangat minim.

Ini membuat saya berpikir tentang industri lain. Seniman, fotografer, desainer semua menggunakan portofolio dan tidak ada yang terlalu khawatir tentang plagiarisme di sana. Seorang penulis akan mendapatkan dana untuk sebuah buku berdasarkan bab-bab yang telah ia tulis pada masanya sendiri. Anda tidak akan meminta seorang arsitek untuk datang dan menggambar spesifikasi desain untuk sebuah rumah pada saat wawancara.

Jadi apa yang membuat kami berbeda? Mengapa begitu penting untuk menempatkan seseorang di depan komputer dan membuat mereka membuat kode penggabungan data atau kalkulator faktorial, kadang-kadang tanpa akses ke alat yang kita gunakan sehari-hari, seperti internet? Apa yang salah dengan gagasan portofolio kode?

Saya benar-benar tertarik untuk mengetahui, jika saya berpotensi membuat kesalahan besar yang belum membakar saya.

Jawaban:


14

Keberatan saya terhadap portofolio tidak ada hubungannya dengan risiko bahwa perusahaan ditipu oleh seseorang yang menyalin kode dari internet atau, lebih mungkin, menyampaikan kode yang ditulis oleh tim pengembang sebagai pekerjaan mereka. Seperti yang Anda tunjukkan dengan benar, Anda dapat belajar setidaknya sebanyak mungkin dengan membuat pengembang berbicara tentang proyek yang biasanya mereka kenal selama satu jam sebanyak yang Anda bisa dengan meminta mereka membuat kode kalkulator faktorial dari awal.

Keberatan saya terhadap portofolio adalah bahwa memerlukan portofolio menghilangkan banyak pengembang berbakat dari pertimbangan. Karena saya, tidak seperti artis atau fotografer, tidak memiliki hak cipta untuk kode yang saya hasilkan - itu milik majikan saya dan / atau perusahaan yang dikontrak oleh majikan saya - saya tidak bisa menunjukkan sebagian besar dari " kode "menarik saya tulis. Jika saya mengkode waktu saya sendiri, umumnya akan menjadi proyek sampingan di tempat kerja yang membuat hidup saya lebih mudah atau hanya mengganggu saya yang lagi-lagi saya tidak akan bisa tunjukkan dalam portofolio. Saya punya banyak posting di berbagai forum, tetapi sebagian besar, secara desain, relatif dangkal. Ada populasi yang cukup besar dari pengembang yang solid yang berada di posisi yang sama - kode mereka yang menarik dimiliki oleh orang lain. Dan jika kau'

Wawancara teknis di mana semua kandidat diminta untuk membuat kode sesuatu dari awal setidaknya menyediakan lapangan permainan yang setara. Dengan asumsi bahwa Anda melakukan pekerjaan yang wajar untuk melakukan layar ponsel dan bahwa Anda dapat mempersempit kandidat ke daftar yang masuk akal, saya lebih suka sebagai kandidat diberikan masalah untuk menyelesaikannya yang Anda tahu akan membutuhkan waktu 8 jam usaha daripada datang dengan portofolio aplikasi mainan yang koheren yang tidak memiliki masalah hak cipta.


1
+1 Jawaban yang bagus. Pertanyaan tindak lanjut: jika saya meminta sampel kode, apa yang mencegah kandidat yang Anda sebutkan memilih untuk menghabiskan 8 jam memecahkan masalah yang dibuat sendiri, bukan masalah yang saya pilih sendiri? Saya akan sangat menghormati itu.
pdr

3
Masalah umum yang dibuat-buat seperti masalah Project Euler tertentu harus memberi Anda hasil yang lebih baik dan lebih mempertimbangkan kandidat daripada meminta kandidat mengajukan masalah mereka sendiri. Ini baik untuk para kandidat karena ada titik pemberhentian yang jelas - tidak ada yang akan merasakan tekanan untuk menghabiskan banyak waktu memoles UI atau menambahkan "satu fitur lagi". Lebih baik bagi Anda karena jauh lebih mudah untuk membandingkan kandidat ketika mereka memecahkan masalah yang sama. Kalau tidak, sulit untuk tidak dipengaruhi oleh siapa yang memiliki ide paling keren atau yang visualnya terbaik.
Justin Cave

Memang, memiliki sampel kode adalah harapan yang lebih masuk akal bagi pengembang web sisi klien, tetapi format wawancara terbaik yang pernah saya temui adalah duduk dan melihat kode yang saya tulis, berbagi pemikiran tentang hal-hal yang saya sukai, berharap Saya telah melakukan yang lebih baik, dll ... dan kemudian melihat kode yang ditulis oleh para dev yang diwawancarai dan melakukan hal yang sama. Nilai lebih bagi kedua belah pihak daripada wawancara gaya tembak, IMO. Pendekatan Google yang dapat diterima-salah-negatif adalah alasan saya tidak ingin bekerja untuk mereka. Ini kikuk, tidak elegan dan boros. Sama seperti JavaScript mereka.
Erik Reppen

6

Pertama-tama, kami adalah insinyur, bukan seniman. Kami bekerja dalam tim, jadi dalam pengalaman kerja kami yang sebenarnya, kode "kami" sering kali merupakan hasil kerja tim, karena itulah cara kerja nyata biasanya dilakukan. Tidak ada banyak kode profesional yang bisa saya klaim untuk kepemilikan tunggal

Kedua, sebagian besar kode dalam portofolio hipotetis saya adalah kode yang tidak dapat saya tunjukkan kepada siapa pun, karena ini bersifat rahasia. Kode yang saya buat untuk proyek hewan peliharaan pribadi saya tidak mencerminkan semua keterampilan dan perilaku kerja saya yang khas.


4

Saya telah mewawancarai banyak orang selama saya menjadi praktisi perangkat lunak. Saya telah mencapai titik di mana saya percaya bahwa kuis dan tugas pemrograman mainan adalah pemborosan bandwidth yang berharga. Kuis dan tugas pemrograman mainan hanya berfungsi untuk menguji apa yang diketahui pewawancara. Mereka bukan cara yang akurat untuk mengukur apa yang diketahui seorang kandidat. Pada titik ini dalam karier saya, saya hanya menerima omong kosong jenis ini jika, dan hanya jika, saya diberi kesempatan untuk mengelola tes saya sendiri di akhir wawancara.

Cara terbaik untuk menilai kemampuan praktisi perangkat lunak adalah berbicara dengannya dengan suara yang tenang dan menenangkan. Minta kandidat untuk membahas apa yang dibutuhkan posisi saat ini. Ketika kandidat mengemukakan suatu bidang yang diminati, minta dia untuk menguraikan bidang itu. Tujuannya di sini adalah untuk mendapatkan kandidat untuk menurunkan pengawalnya. Tidak ada jumlah pembinaan yang dapat mempersiapkan calon untuk interogasi "sentuhan lembut". Cepat atau lambat, jerat akan mengencang di leher calon yang mencoba untuk BS jalannya melalui wawancara.


2

Saya memang meminta sampel kode untuk pelamar dan mendapatkan referensi selama wawancara. Namun saya biasanya memberi bobot lebih pada pengkodean papan tulis yang dilakukan selama wawancara.

Setiap wawancara pengembang yang saya lakukan melibatkan pergi ke papan tulis untuk mengimplementasikan solusi untuk masalah sederhana. Namun, ada aturannya:

Pemohon harus berbicara melalui implementasi saat mereka melakukannya.

  • Saya bisa mengukur bagaimana mereka mendekati suatu masalah.
  • Saya bisa melihat seberapa baik komunikasi itu.
  • Saya bisa mengukur seberapa cepat mereka dengan target yang jelas.

Saya memiliki tiga masalah yang implementasinya mirip dan saya beri tahu mereka bahwa mereka dapat menggunakan kembali atau memperbaiki kode yang telah mereka tulis.

  • Saya bisa melihat apakah mereka dapat menarik kembali untuk melihat gambar yang lebih besar.
  • Saya bisa melihat apakah mereka menerapkan dan refactor, atau melompat ke generalisasi.
  • Saya bisa mendapatkan gagasan yang lebih tegas tentang seberapa baik urutan pemikiran mereka.

Inti dari semua ini, dari setiap wawancara adalah untuk mencoba dan mendapatkan ide bagus tentang kemampuan pelamar dan bagaimana mereka dapat cocok dengan pekerjaan. Bagian "praktis" dari wawancara dalam pengalaman saya telah membantu sedikit dalam hal itu. Ini juga membantu saya mengevaluasi kode sampel karena saya tahu lebih banyak tentang cara program.


1

Contoh kode adalah cara yang cukup efisien untuk menyingkirkan calon - saya dapat menilai sampel kode dalam 5 - 10 menit, tetapi bahkan layar ponsel membutuhkan waktu 15 menit dan perlu penjadwalan (dan tidak terlalu berguna dalam menyapu apa pun kecuali sangat bawah tumpukan dalam pengalaman saya).

Saya pikir keberatan utama untuk sampel kode dua kali lipat, dan mudah diatasi:

  • yang membutuhkan sampel kode menempatkan penghalang buatan untuk beberapa pengembang berbakat

Jelas, ini benar. Setiap penghalang dalam aplikasi atau proses perekrutan berpotensi menghilangkan kandidat yang diinginkan. Yang penting di sini adalah untuk mengetahui audiens Anda - jika Anda memiliki 1000 resume untuk satu pembukaan Anda, Anda dapat membeli beberapa negatif palsu dalam pelayanan efisiensi. Jika Anda memiliki lima resume, Anda dapat memperoleh beberapa ketidakefisienan dalam proses penyaringan.

Apa yang saya pikir kebanyakan orang lewatkan, adalah bahwa wawancara dan perekrutan pada dasarnya adalah permainan "menemukan alasan untuk tidak mempekerjakan orang ini". Untuk pekerjaan apa pun yang layak, ada banyak pelamar yang memenuhi syarat - yang terakhir berdiri biasanya yang tidak memicu bendera merah di sepanjang jalan. Sangat mudah untuk melihat yang terbaik dari orang lain atau tidak berkomitmen, tetapi itu tidak ada gunanya bagi Anda dalam merekrut karena Anda akan mendapatkan 10 kandidat berbeda yang membuat Anda nyaman. Itu tidak membuat Anda semakin dekat dengan suatu keputusan.

Setiap berita gembira yang Anda kumpulkan sepanjang proses peninjauan, penyaringan, wawancara, dll. Berpotensi memicu keputusan tidak mempekerjakan. Anda harus menyeimbangkan sensitivitas pemicu tidak-mempekerjakan Anda dengan prospek Anda saat ini (dan masa depan yang potensial). Jika Anda berada dalam industri yang membosankan, dengan banyak kode lawas, birokrasi, dan gaji yang buruk (seringkali hal-hal di luar kendali Anda) maka pemicu Anda harus kurang sensitif daripada mengatakan, Google. Jika tidak, Anda akan menghadapi risiko tidak pernah mempekerjakan orang.

Secara pribadi, saya menemukan kompromi termudah bagi saya adalah meminta tetapi tidak mengharuskancontoh kode. Jika saya mendapatkannya, itu hanya titik data tambahan untuk mengevaluasi kandidat. Demikian pula, jika saya memiliki seorang kenalan yang pernah bekerja dengan kandidat di masa lalu, saya akan memberikan sedikit pertimbangan pada pendapat-pendapat kenalan itu. Tidak pernah bekerja dengan siapa pun yang saya tahu tentu saja tidak mendiskualifikasi kandidat mana pun - itu hanya berarti bahwa pekerjaan saya dalam mengevaluasi mereka sedikit lebih sulit (dan mungkin akan mencakup latihan pengkodean jika mereka melakukan wawancara). Jika sampel Anda buruk (atau kenalan saya membuat Anda marah), itu cukup tidak mempekerjakan. Mereka yang memberikan sampel mungkin atau mungkin tidak memiliki kaki kecil pada mereka yang tidak dalam penyaringan awal - tergantung pada kualitas dan kuantitas tumpukan resume dan sampel, lebih banyak informasi mungkin lebih baik atau lebih buruk daripada tidak ada informasi.

  • bahwa sampel mudah dipalsukan

Yah begitulah. Demikian juga resume - tetapi kami masih mengumpulkannya. Mengapa? Karena tiga alasan utama - resume atau sampel yang buruk tidak mudah disewa, ketahuan memalsukan resume atau sampel adalah tidak mudah disewa, dan mereka adalah topik percakapan yang baik dalam sebuah wawancara. Semakin cepat saya bisa mengetahui kandidat adalah orang bodoh, semakin baik untuk semua orang.

Jika Anda cukup pintar untuk menjiplak sampel yang bagus tanpa ketahuan, bicarakan dengan cerdas tentang hal itu, dan selesaikan wawancara - saya tidak terlalu memiliki masalah dengan bagaimana Anda bisa melewati penyaringan. Mungkin ada beberapa masalah etika di sini, tapi itu bukan bidang keahlian saya, jadi saya tidak akan keluar dari cara saya untuk mengevaluasi karakter moral selama wawancara. Bagi saya, ini hampir sama dengan bos saya yang meminta saya untuk mewawancarai seseorang yang tidak melalui proses penyaringan sebagai bantuan. Begitu Anda berada di tahap wawancara, tidak masalah bagaimana Anda sampai di sana karena ada begitu banyak informasi yang lebih baik dan akan keluar selama wawancara.

TL; DR - contoh kode adalah alat skrining yang hebat, tetapi Anda harus berpikir dengan hati-hati apakah Anda bisa memerlukannya atau tidak. Setelah penapisan yang lalu, bobot wawancara jauh lebih tinggi dari sampel.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.