Saya mencari beberapa proyek pemrograman kecil yang bisa saya berikan kepada karyawan potensial untuk mengukur kemampuan pemrograman mereka. Ini akan menjadi programmer langsung dari perguruan tinggi. Saya mencari proyek yang akan memakan waktu beberapa jam bagi seseorang dan mereka akan mengirim kembali email jawaban mereka setelah wawancara.
Salah satu contohnya adalah mengambil paragraf teks ini dan mengembalikan daftar kata-kata unik yang diabjadkan. Setelah setiap kata beri tahu saya berapa kali kata itu muncul dan dalam kalimat apa kata itu diterima.
Adakah yang punya saran bagus?
Jawaban:
Saya sudah lama menyimpulkan bahwa tidak ada yang bisa dilakukan seseorang dalam waktu singkat yang bisa memberi tahu saya apa pun yang berguna tentang orang itu. Tetapi setiap kandidat yang baik memiliki proyek pribadi yang sudah ditulis yang dapat memberi tahu Anda banyak hal. Jadi saya telah mengganti tantangan spesifik dengan "beri saya sepotong kode yang Anda banggakan dan senang mencap nama Anda."
Mereka pilihan proyek memberitahu Anda lebih dari tugas selama satu jam. Dan kemudian Anda dapat menghabiskan satu jam membahasnya untuk belajar lebih banyak lagi.
sumber
Aku bosan dengan omong kosong yang memalukan ini. Saya telah berada di tempat-tempat yang meminta saya untuk sampel kode, memisahkan mereka, dan kemudian meminta saya untuk menjelaskan kode contoh dari sistem mereka yang sepertinya ditulis oleh anak-anak berusia 2 tahun yang retak. Saya telah diminta untuk mengimplementasikan algorythms sort yang tidak jelas, layanan jaringan, guis, struktur data (selalu berupa pohon atau daftar yang ditautkan). Setiap rasa mengutak-atik pertanyaan yang mengganggu tentang apa pun yang menurut pewawancara adalah bagian terpenting dari pemrograman.
Pada akhirnya itu semua sangat tidak berguna. Cara terbaik untuk mengevaluasi karyawan adalah dengan mempekerjakannya selama 30 hari, dan lihat seberapa baik dia melakukan pekerjaan itu. Luangkan semua waktu yang Anda inginkan untuk mengembangkan tes, dan itu tidak akan memberi tahu Anda apa-apa tentang bagaimana seseorang bekerja setiap hari.
sumber
Mengizinkan seseorang melakukan proyek praktis pada waktu mereka sendiri tidak berarti mereka yang melakukannya.
Semua orang datang lebih awal untuk wawancara (well, setidaknya harus). Kami memiliki lembar 'selagi Anda menunggu' untuk mereka kerjakan sampai kami siap untuk melihatnya. Ini memiliki delapan (8) pertanyaan yang menguji pengetahuan pelamar dalam bahasa yang terutama kami gunakan.
Kami tidak mencari jawaban untuk semua yang benar, karena siapa pun dapat memperbaikinya dengan komputer di depannya. Kami sedang mencari proses, apakah mereka bahkan mencoba pertanyaan, bagaimana mereka sampai pada jawaban mereka.
Ketika kita memasuki wawancara, kita membahasnya bersama mereka dan menjawab pertanyaan apa pun yang mungkin mereka miliki yang juga dapat mengarahkan mereka untuk mendapatkan jawaban yang benar. Itu juga memungkinkan kita untuk bertanya bagaimana mereka mendapatkan jawaban yang mereka dapatkan.
Ini dikombinasikan dengan pekerjaan sebelumnya, kami temukan, adalah cara terbaik untuk menyaring kandidat.
UPDATE 2016/06/15
Kami telah mengubah proses kami secara signifikan dalam cara kami mempekerjakan pengembang.
Fase 1: Wawancara telepon 15 menit di mana kami mengajukan 7 pertanyaan. 2 yang pertama adalah "Apa hal paling menyenangkan yang pernah Anda kerjakan?" (tidak harus terkait pemrograman) dan "Apa kode Anda untuk bersenang-senang di waktu luang Anda?".
Fase 2: Proyek mini yang mereka selesaikan sendiri. Kami kemudian melakukan pembagian layar dengan mereka dan mereka menunjukkan kepada kami apa yang telah mereka buat. Selama berbagi layar, kami juga membuat mereka melakukan dua perubahan pada proyek mereka dan kemudian menonton mereka mengerjakannya dan membuatnya bekerja.
Fase 3: Wawancara langsung.
Proses ini memungkinkan kita untuk mengetahui budaya yang cocok segera (fase 1). Jika mereka dapat melakukan pekerjaan dan benar-benar menjalankan pembicaraan mereka (tahap 2) Akhirnya, pastikan nilainya sesuai dengan apa yang kita cari (fase 3).
sumber
Anda mungkin ingin melihat Cyber-Dojo Jon Jagger yang fantastis .
Ini adalah lingkungan terintegrasi berbasis web yang dirancang untuk melakukan praktik yang disengaja dari Test Driven Development dan belajar tentang dinamika tim. Ini memiliki banyak tugas pemrograman kecil (kata) dan mendukung berbagai bahasa, dari Python dan Ruby ke Java dan C ++.
Tidak seperti IDE yang dirancang untuk produktivitas, tidak ada penyelesaian kode, penyorotan sintaksis atau auto-refactoring, sehingga Anda bisa melihat apa yang dapat dilakukan oleh orang yang diwawancarai tanpa ini.
Yang terbaik adalah, setelah melakukan kata, Anda kemudian dapat kembali dan melihat perkembangan merah / hijau (atau mungkin tidak jika mereka tidak melakukan TDD * 8 ') dari masing-masing kata. Setiap kompilasi / tes melakukan perubahan pada repositori git bersama dengan hasil tes.
Saya pikir menggunakan ini untuk wawancara tes pengkodean bisa memberi tahu Anda banyak tentang tidak hanya kemampuan kandidat untuk memecahkan masalah, tetapi juga pendekatan mereka untuk pemecahan masalah dan proses yang mereka gunakan ketika tidak dibatasi oleh faktor-faktor eksternal, cukup pilih kata yang sesuai dengan waktu yang Anda inginkan kandidat habiskan untuk itu.
Jika Anda ingin server CyberDojo Anda sendiri, seluruh proyek dapat ditemukan di github dan bahkan ada mesin virtual alat Turnkey Linux yang ditautkan dari sana, yang berarti bahwa dengan asumsi Anda sudah menginstal VMware player atau VirtualBox , Anda dapat menjalankan dan menjalankannya di dalam beberapa menit mengunduh alat!
sumber
Saya hanya mewawancarai perusahaan yang pernah melakukan ini. Mereka memberikan lembar pertanyaan 6 atau 7 masalah. Instruksi adalah membuat metode untuk menyelesaikan setiap masalah.
Salah satu bagian dari tugas adalah untuk menyadari bahwa Anda dapat menggunakan kembali kode. Masalah dapat menggunakan kode dari solusi lain. Itu juga tidak berurutan. Misalnya, pertanyaan 3 dapat ditulis menggunakan metode yang digunakan untuk pertanyaan 5.
Saya sarankan mencoba sesuatu seperti itu.
Adapun pertanyaannya? Beberapa pertanyaan awal di situs Project Euler bagus.
Anda juga bisa mencoba permainan sederhana jika Anda ingin melihat bagaimana mereka dapat menyatukan proyek.
Atau, jika Anda tidak ingin membuat sesuatu, minta mereka mengirimi Anda beberapa kode dari tugas akhir.
sumber
Untuk meminta orang menyelesaikan proyek, Anda harus memiliki serangkaian keterampilan khusus yang ingin Anda evaluasi dalam pikiran dan merancang proyek untuk menguji keterampilan tersebut.
Apa yang kamu cari dengan pertanyaan ini? Berapa banyak cara yang ada untuk menyelesaikannya, dan apa yang masing-masing pendekatan katakan kepada Anda tentang orang yang menulis jawabannya? Apakah keterampilan yang ditunjukkan oleh jawaban yang efektif untuk pertanyaan ini adalah keterampilan yang sama yang paling penting bagi bisnis Anda?
Saya tidak ingin jawaban atas pertanyaan ini; Saya hanya ingin Anda memikirkan jawaban sebelum Anda mengajukan sekelompok kandidat ke proses Anda. Jika Anda tahu keterampilan apa yang Anda cari, membuat pertanyaan untuk mencari keterampilan itu tidak sulit. Jika Anda menggunakan pertanyaan orang lain tanpa pemahaman menyeluruh tentang apa yang dirancang untuk dievaluasi (jika ada), Anda benar-benar hanya membodohi diri sendiri dan membuang-buang waktu semua orang.
sumber
Dalam bahasa apa mereka menulis ini? Jika mereka keluar dari sekolah yang sangat berfokus pada C, ini tidak akan secepat menulis seperti yang mengajarkan Python / Perl / Ruby dll ... Atau bahkan Java atau C #. Meskipun demikian, ini adalah ujian kecil yang bagus.
Saya menyarankan beberapa yang lebih mudah sebenarnya selama wawancara. Tidak ada pertanyaan jebakan. Saya dengan TMN untuk yang ini. Beri mereka beberapa fungsi yang melakukan tugas-tugas dasar dan tanyakan apa yang mereka lakukan (membaca kode orang lain). Kemudian beri mereka beberapa tugas dasar (<20 baris) untuk menulis dalam bahasa pilihan mereka. Itu harus cukup untuk entry level untuk mengetahui apakah mereka dapat kode atau tidak (pada posisi entry level). Itu bersama dengan wawancara dan IPK harus memberi Anda ide yang baik tentang apa yang perlu Anda ketahui.
sumber
Mintalah mereka menerapkan Permainan Kehidupan Conway untuk bahasa apa pun yang Anda lihat, menggunakan paradigma desain bahasa itu.
Game of Life Java atau C # Conway harus berorientasi objek, LISP atau F # akan berfungsi, dll.
sumber