Saya perlu cara untuk memfilter resume dari orang-orang yang hanya menyalin dan menempelkan kode lalu berharap itu berfungsi, dan memeriksanya jika ada. Semua ini terjadi tanpa memiliki pemahaman (atau perhatian) untuk memahami sisa kode dalam sistem.
Tentu saya tahu bahwa menyalin dan menempelkan kode adalah bagian dari belajar objek baru, kontrol, dll ... tetapi bagaimana kita bisa tahu apakah itu menyumbang 70% (atau lebih) dari karir pengembangan mereka?
Saya telah menemukan beberapa orang senior tingkat mungkin keterampilan yang sangat usang atau tidak relevan untuk proyek tersebut, bahwa semua yang mereka lakukan adalah google, salin-tempel-tempelkan beberapa kode tanpa memikirkan solusinya secara keseluruhan. Sebagai hasilnya kami memiliki mismash JSON, AJAX, callback, ASMX, WCF dan postback dalam proyek yang sama. Jelas tidak ada konsistensi atau logika di mana masing-masing teknologi digunakan.
Dalam kasus terburuk, pengembang jenis ini menciptakan masalah keamanan dan vektor untuk serangan.
Pertanyaan
Bagaimana Anda merekomendasikan saya menyaring orang-orang yang memiliki latar belakang pemrograman yang buruk? Bisakah saya melakukannya di tingkat resume? Jika tidak, bagaimana saya melakukan ini selama wawancara.
sumber
Jawaban:
Saya tidak berpikir keterampilan pengembang Anda adalah masalahnya. Masalah Anda ada di tempat lain, mungkin pemimpin tim atau arsitek yang tidak memiliki kepercayaan diri untuk "mendorong" disiplin kode yang lebih baik, atau tim manajemen yang tidak memahami pentingnya mengelola utang teknis, dan tidak memberikannya pengembang waktu dan sumber daya untuk melakukannya. Apakah perusahaan Anda menerima ulasan kode?
Kepemimpinan mungkin masalahnya, bukan pengembang salin-tempel.
sumber
Leadership may be the problem, not copy-paste developers.
Itulah tepatnya interpretasi saya.Cara untuk menyingkirkan programmer yang tidak dapat memprogram adalah dengan membuat mereka latihan pemrograman praktis sebagai bagian dari fase penyaringan atau fase wawancara. (Yang terakhir mungkin lebih baik karena Anda dapat mengendalikan lingkungan untuk mencegah kecurangan.)
Tapi saya tidak berpikir itu akan mengatasi masalah Anda.
IMO, masalah sebenarnya di sini adalah bahwa tim Anda tidak melakukan tinjauan kode internal yang cukup, dan tidak mengembangkan "buku pedoman" dari solusi pilihan untuk masalah yang diketahui. Ini sebagian adalah masalah budaya, sebagian masalah komunikasi, dan (mungkin) sebagian masalah dengan tenggat waktu proyek.
Masalah lainnya adalah bahwa proyek biasanya memiliki umur yang panjang, dan selama umur itu, teknologi / teknik baru akan muncul, dan yang lama cenderung tidak disukai. Jika Anda ingin menghindari penggunaan "anjing sarapan" teknologi / teknik, Anda perlu:
sumber
Pekerjakan orang dalam masa percobaan 3 bulan. Memecat mereka jika mereka payah.
Jika Anda tidak INSPEKSI, Anda tidak dapat MENGHARAPKAN. Ulasan kode, alat audit. Server CI dapat menjalankan ini secara otomatis.
Ajukan pertanyaan nyata dalam wawancara Anda, seperti dalam pertanyaan dari kode nyata.
Buat mereka untuk menulis kode di papan tulis.
Jika Anda seorang manajer non-teknis, Anda tidak memenuhi syarat untuk menilai ini.
Jika Anda tidak memenuhi syarat, dapatkan konsultan profesional senior terkemuka untuk melakukan pengujian. Tanyakan orang yang ada, dan pesaing bisnis jika mereka mengenal orang yang 100x produktif. Bayar mereka untuk melakukan wawancara.
Jika Anda ingin menjalankan rumah sakit tanpa kepala operasi, silakan saja.
sumber
Saya telah menghabiskan beberapa tahun terakhir mewawancarai orang-orang dan menemukan bahwa 90% kandidat tidak dapat memprogram. Teknik wawancara saya untuk menentukan pemrograman adalah untuk memberi kandidat brief yang terlalu sederhana dan membiarkan kandidat menyelesaikannya menggunakan spidol dan papan tulis.
Mode kegagalan meliputi:
datang dengan desain dan kemudian mengimplementasikan sesuatu yang berbeda. Kandidat ini ditolak karena berbahaya bagi tim. tidak mengikuti spesifikasi, menulis bug dll ...
Tidak dapat menemukan desain. Sejumlah kandidat "berpengalaman" yang mengejutkan membutuhkan spesifikasi untuk memasukkan desain implementasi.
tidak tahu bahasa pemrograman, meskipun CV mengklaim pengalaman.
Tidak mengajukan pertanyaan tambahan untuk mengekstrak spesifikasi yang lebih lengkap.
Tidak bisa menjelaskan keputusan desain. Yang ini utama. Jika seseorang tidak dapat menjelaskan mengapa, maka setiap kali mereka akan melakukannya secara berbeda, dan konsistensi hilang.
Hasil akhirnya adalah saya menghabiskan banyak waktu untuk wawancara, dan tidak sering merekrut. Namun, tim pengembangan sangat baik, dan memiliki rasa hormat penuh dari seluruh perusahaan dan disampaikan!
sumber
Saya akan menyarankan FizzBuzz bahwa Jeff Atwood menyebutkan dalam posting di http://www.codinghorror.com/blog/2007/02/why-cant-programmers-program.html .
sumber
Saya mengajukan tiga pertanyaan wawancara
Saya telah melihat orang menyelesaikan ini dalam 5 menit dan melihat orang berjuang selama 30 menit sebelum menyerah.
sumber
java.util.LinkedList l = new java.util.LinkedList()
tidak mengimpor apa pun, tetapi tentu saja menggunakan koleksi bawaan.Anda tidak dapat melakukan ini di tingkat resume karena mereka pada dasarnya memiliki waktu tak terbatas untuk menuliskannya, tetapi Anda dapat melakukannya melalui wawancara telepon jika Anda mengajukan beberapa pertanyaan yang memerlukan wawasan teknis tentang apa yang mereka lakukan. Ini memberi Anda jawaban (baik atau buruk) dan berapa lama mereka sampai di sana.
Saat wawancara, buat mereka menulis kode. Ini adalah satu-satunya cara Anda mengetahui apakah mereka dapat memprogram secara nyata. Sederhanakan masalahnya, berikan mereka komputer dengan koneksi internet, dan IDE yang Anda gunakan terpasang, biarkan mereka mengajukan pertanyaan (kecuali beri-hte-codez) dan perhatikan cara kerjanya.
EDIT: Untuk analisis post-mortem tampak bahwa PMD memiliki copy / paste detector untuk menemukannya: http://pmd.sourceforge.net/cpd.html
sumber
Sederhana
Edit:
Seperti yang dikatakan pembuat7, secara praktis orang dapat melakukan pengambilan video (tangkapan layar).
sumber
Jika Anda ingin "menyingkirkan" coders yang buruk, Anda dapat mencoba, misalnya Matriks Kompetensi Programmer (berguna tetapi tidak berlaku untuk semua area yang mungkin - tentu saja Anda dapat membuatnya sendiri) atau codility.com (tugasnya sangat bagus dan ini menghemat banyak waktu).
Secara umum, mempekerjakan coders yang baik sulit dan sering membutuhkan bertahun-tahun latihan. Anda dapat memulai database pertanyaan wawancara sendiri, tidak hanya bertanya tentang pengkodean tetapi juga dengan matematika, logika, belum lagi pertanyaan motivasi.
sumber
Saya akan mengatakan bahwa masalah dengan kandidat Anda bukanlah bahwa mereka tidak dapat memprogram sama sekali, tetapi bahwa mereka tidak memiliki perasaan untuk menggunakan alat yang tepat untuk pekerjaan itu. Saran saya adalah pertanyaan esai di mana mereka akan diberikan persyaratan tingkat tinggi untuk sistem baru dan diminta untuk memberikan arsitektur dan membenarkan pilihan komponen mereka. Tapi simpan FizzBuzz untuk kandidat yang tidak bisa kode sama sekali tanpa browser.
sumber