Saya bukan perekrut untuk perusahaan besar, tetapi saya memiliki banyak pengalaman dengan perusahaan kecil dan sedikit akal sehat.
Kembali pada tahun 2013, saya menjalankan kampanye perekrutan yang sangat sukses di AboutEcho.com yang menghasilkan perekrutan sembilan insinyur senior. Pembaca saya yang berbahasa Rusia bisa membacanya di sini .
Semua ini memberi saya kepercayaan diri untuk mengkritik metode yang digunakan raksasa Internet untuk mempekerjakan insinyur hingga hari ini.
Jangan mencari solusi terbaik
Saat Anda datang untuk wawancara, pewawancara mengajukan masalah kepada Anda dan mengharapkan solusi dalam 0–2 menit. Jika Anda meluangkan lebih banyak waktu, mereka akan sangat bersemangat dan meminta mereka untuk mengatakan sesuatu.
Ini bisa dimaklumi - lagipula, mereka hanya punya waktu 45 menit dan mereka ingin berdiskusi banyak hal dengan Anda.
Saya tidak dapat memahami bagaimana Anda dinilai dari kualitas solusi yang Anda hasilkan dalam dua menit. Karena bukan itu cara kerja kreativitas manusia. Sangat mudah untuk mendapatkan banyak ide, tetapi aneh mengharapkan yang terbaik untuk selalu didahulukan. Bahkan para genius tidak dapat diprediksi menghasilkan ide-ide terbaik dunia dalam waktu singkat.
Kreativitas adalah kemampuan untuk mengevaluasi dan menyaring aliran ide yang Anda hasilkan. Jika Anda benar-benar tertarik dengan hal ini, mengapa tidak meminta orang lain untuk membandingkan dan mengevaluasi beberapa gagasan? Periksa apakah seseorang dapat mengevaluasi sifat dari solusi yang diusulkan? Jika dia dengan jelas melihat pro dan kontra?
Dan jika Anda meminta solusi terbaik dalam dua menit, maka Anda sedang menguji keberuntungan Anda, tidak lebih. Apakah Anda dalam bisnis mempekerjakan karyawan yang sukses? Atau mampu?
Jangan tanya teka-teki
Bagaimana cara memeriksa apakah daftar tertaut memiliki loop? Apakah satu kotak dimensi-N cocok dengan kotak dimensi-N lainnya? Bisakah Anda menukar dua variabel tanpa yang ketiga? Bagaimana menemukan jarak terpendek antara dua kapal yang bergerak? Temukan semua permutasi elemen N dengan hanya melakukan permutasi N-1?
Teka-teki ini menyenangkan untuk dibicarakan, dan solusinya bisa sangat membantu. Sebagai seorang anak, saya senang memiliki banyak dari mereka yang membaca Matematika Menyenangkan dan Esai . Jangan salah paham, mereka lucu.
Namun, betapapun lucunya mereka, ini hanyalah anekdot. Properti teka-teki adalah Anda tahu jawabannya atau tidak. Ini tidak memberi tahu Anda hal lain. Itu tidak ada hubungannya dengan kinerja, keterampilan, kemampuan, atau apa pun di masa depan. Mengetahui jawaban spesifik tidak berarti Anda memiliki alat untuk memecahkan masalah nyata secara umum dan dapat diprediksi. Satu-satunya hal yang diberitahukan kepada Anda adalah bahwa orang tersebut berada dalam situasi ini dan seseorang berbagi solusi dengannya. Tidak lebih, tidak kurang. Berhenti saja.
Bagaimana cara diselamatkan sebelum lilin membakar tali?
Bersikaplah terbuka terhadap alternatif
Ini agak diharapkan, tetapi perusahaan besar tampaknya masih jatuh untuk itu. Jika orang yang diwawancara menawarkan solusi alternatif, Anda, sebagai pewawancara, memiliki kesempatan untuk mempelajari sesuatu. Ini juga merupakan kesempatan bagus untuk diskusi yang lebih dalam jika solusi yang diusulkan ternyata tidak mungkin atau buruk.
Namun, saya pernah dipecat karena pernah mengusulkan solusi alternatif dengan kompleksitas yang sama (dan dibebani dengan ceramah tentang "satu-satunya pendekatan yang benar untuk masalah ini"), dan pada kesempatan lain saya dengan tegas mengarahkan pada solusi spesifik. Dalam kasus terakhir, pewawancara benar-benar ingin mengabaikan semua kekhawatiran saya dan hanya ingin mendiskusikan apa yang dia lihat sebagai solusi untuk masalah tersebut, dan kemudian meninggalkan ulasan yang "tidak mengesankan" tentang saya.
Tidak ada yang tahu segalanya. Terbukalah. Mendengarkan. Merenungkan. Ya, meskipun Anda sedang mewawancarai seseorang.
Bersikaplah toleran terhadap kekurangan
Kesalahan tunggal secara luas diakui sebagai salah satu masalah tersulit dalam Ilmu Komputer karena suatu alasan - semua orang membuatnya. Kesalahan adalah bagian dari kehidupan programmer, bukan sesuatu yang harus disingkirkan. Seorang programmer yang baik hanya tahu apa yang harus dilakukan. Kualitas seorang programmer TIDAK ditentukan oleh seberapa sedikit kesalahan yang mereka buat.
Sekarang, jika Anda hanya memilih orang yang tidak membuat kesalahan selama wawancara, Anda secara ajaib tidak mendapatkan tim programmer yang selalu menulis kode tanpa cela. Anda hanya tidak tahu bagaimana mereka akan berperilaku ketika mereka pasti membuat kesalahan.
Jadi kesalahan sebenarnya bagus, karena Anda akan belajar bagaimana orang ini mengoreksinya. Jangan menilai kesalahan, evaluasi bagaimana lawan bicara menanganinya:
- kode sederhana,
- membagi dan memerintah,
- tes mandiri,
- invarian,
- pernyataan,
- menyusun dan menjalankan,
- pengujian.
Oh, maaf tentang dua yang terakhir. Saya lupa bahwa Anda tidak mengizinkan mereka menjalankan program mereka. Jadi, apa yang Anda harapkan?
Biar saya cek!
Serius, apa itu menulis program di papan tulis?
Maksud saya, saya senang membahas algoritme - karena membahas hal-hal abstrak lebih efisien.
Tapi menulis program untuk programmer sungguhan di notebook? Tanpa menjalankannya? Apa gunanya? Mendapatkan draf kode pertama hanya sepersepuluh dari keseluruhan proses, diikuti oleh kompilasi, validasi, tuning, pengujian, validasi, dan lain sebagainya. Ini adalah bagian penting dari alur kerja programmer mana pun. Berguna untuk melihat kode hanya jika sudah melalui semua ini, dan bukan sebelumnya.
Ini seperti meminta seniman untuk menggambar kuda dan kemudian menghentikannya di tengah sketsa pertama, ketika Anda melihat empat garis vertikal kaki dan menilainya. Berapa banyak yang Anda pelajari tentang dia?
Jelajahi lebih dalam
Lima wawancara singkat? Atau dua yang panjang?
Dengan lima, Anda mendapatkan lima pendapat independen, yang lebih baik daripada dua. Tapi seberapa dalam Anda bisa menyelam dalam 45 menit? Latihan menunjukkan bahwa cukup menulis 20-30 baris kode dan mengajukan beberapa pertanyaan yang sangat sederhana (apa kesulitannya? Bagaimana cara mengujinya?).
Pewawancara berikutnya hanya mengulangi proses yang sama sampai yang sebelumnya. Itu tidak akan bertahan lama. Tidak lama.
Mengapa tidak menjadikannya dua dan membuatnya benar-benar kokoh? Misalnya, sebelum makan siang dan setelahnya? Tiga jam juga tidak banyak, tetapi setidaknya Anda memiliki kesempatan untuk melihat bagaimana seseorang menguji kode, bagaimana dia mengubahnya, bagaimana dia bekerja dengan persyaratan - semua dalam konteks yang telah ditetapkan, tanpa menyetel ulang dan memulai dari awal setiap 45 menit ...
Dengan begitu banyak waktu, Anda bahkan dapat memintanya untuk menulis kode seolah-olah itu adalah bagian dari sistem, bukan hanya masalah algoritmik abstrak dalam ruang hampa, dan mempelajari satu atau dua hal lagi tentang karakteristik sebenarnya.
Dan jika Anda ingin lebih banyak pendapat? Minta beberapa pewawancara di ruangan itu agar mereka berdebat nanti.
Jelajahi latar belakang
Saya memiliki empat belas tahun pengalaman (pada saat penulisan, 2019). Saya akan senang berbicara tentang pemrograman fungsional, sistem terdistribusi, konsensus, replikasi, penulisan bersama, CRDT, arsitektur paralel, kerangka kerja antarmuka pengguna, proses tim, desain produk, pengalaman pengguna. Saya memiliki pengalaman praktis dan penelitian di semua bidang ini. Semuanya memiliki minat langsung kepada lebih atau kurang raksasa Internet mana pun yang telah saya wawancarai.
Apakah saya pernah ditanya tentang ini? Tidak.
Saya mendapatkan "Bayangkan Anda memiliki fungsi yang mengambil daftar ..." lima kali berturut-turut. Lima tugas tingkat sekolah seharusnya memberi Anda gambaran yang memadai tentang apa? Seberapa dekat saya membaca Cormen et al.? Sejujurnya, mereka juga jarang ditanyai tentang mereka.
Sebagai gantinya, sesuaikan wawancara Anda berdasarkan pengalaman kandidat. Bicaralah tentang apa yang dia kuasai. Anda akan memiliki kesempatan untuk mengajukan pertanyaan mendalam dan mempelajari lebih lanjut tentang tingkat pengalaman dan manfaat yang akan diberikannya bagi perusahaan Anda.
Buat prosesnya lancar
Arah yang salah? Tiket tertunda? Formulir aplikasi yang memerlukan penginstalan Adobe Reader asli secara khusus? Ultrabook murah dengan tata letak keyboard yang tidak biasa dan editor web yang buruk tanpa jalan pintas yang melambat bahkan di mesin lokal? Maaf, saya sedang berada di kantor perusahaan IT paling mumpuni di dunia, bukan?
Dalam kasus saya, seorang perekrut melakukan lima wawancara sehari. Lima orang setiap hari. Dikalikan dengan jumlah perekrut di perusahaan ini. Bayangkan semua kandidat ini sedikit frustrasi dengan prosesnya. Setiap hari. Tahun demi tahun.
Anda mungkin berpikir itu tidak masalah. Tergantung. Ada episode acara TV "Louis" di mana nama komiknya tertulis di pintunya. Oleh karena itu, menurutnya: ya, kesalahan ini mudah dilakukan, tetapi juga mudah diperbaiki. Tidak masalah, ini hanya untuk satu hari, jika Anda sedikit khawatir, lakukan dengan benar.
Ya, saya yakin setiap orang bisa melakukan yang lebih baik.
Akhirnya
Jika Anda mempekerjakan insinyur perangkat lunak, maka praktisi perusahaan besar bukanlah teman Anda. Akal sehat, keadilan, toleransi, minat nyata dan keterbukaan pikiran adalah teman.
Perekrutan yang bagus!