Baru-baru ini saya melakukan wawancara telepon dengan perusahaan. Setelah wawancara telepon itu, saya diberitahu untuk menyelesaikan tugas pemrograman pendek (program kecil; tidak boleh lebih dari tiga jam).
Saya akan melanjutkan dengan hati-hati. Mengevaluasi relevansi tantangan dengan pekerjaan, dan pastikan penggantian di masa depan dari majikan akan membuat 3 jam waktu Anda berharga.
Saya mempertanyakan nilai dalam jenis tes ini, dan lebih suka menilai seseorang atas prestasi mereka di masa lalu. Tugas singkat yang sudah ditentukan sebelumnya tidak dapat memberi tahu majikan apa pun tentang apa yang dapat Anda lakukan. Hanya apa yang tidak dapat Anda lakukan, dan itu dapat dengan cepat ditentukan dengan beberapa pertanyaan melalui telepon.
Pengujian memang memiliki tempatnya. Tanyakan kepada diri Anda pertanyaan-pertanyaan berikut tentang tes ini, dan berikan respons yang sesuai.
- Apakah tes ini adil mengingat tingkat karier Anda saat ini?
- Apakah tes memiliki jawaban yang benar dan jelas?
- Apakah pewawancara memiliki minat pada potensi Anda sebagai seseorang atau mereka lebih tertarik pada hasil tes (yaitu agen perekrutan sangat buruk untuk ini).
- Apakah tes tersebut mewakili jenis pekerjaan yang akan Anda sukai atau apakah itu verifikasi keterampilan yang ambigu (yaitu tes jika Anda tahu sintaks Java).
Saya hanya diinstruksikan secara langsung untuk menyelesaikan tugas dan menyerahkan kode.
Anda baru saja menjawab pertanyaan Anda sendiri.
Segera saya berencana untuk melemparkannya ke Github, menulis test suite untuknya, menggunakan Travis-CI (integrasi berkesinambungan gratis untuk repositori Github publik) untuk menjalankan suite tes, dan menggunakan CMake untuk membangun file Linux untuk Travis-CI.
Tidak, bukan itu yang mereka minta Anda lakukan.
Dengan begitu, saya tidak hanya dapat menunjukkan bahwa saya memahami cara menggunakan Git, CMake, Travis-CI, dan cara menulis tes, tetapi saya juga dapat dengan mudah menautkan ke halaman Travis-CI sehingga mereka dapat melihat output dari tes tersebut. Saya pikir itu akan membuatnya sedikit lebih nyaman bagi pewawancara.
Saya akan menunjukkan keterampilan terlalu dini atau terlambat dalam proses wawancara. Jika Anda merasa tidak berhasil dengan baik dalam wawancara, dan sekarang mencoba untuk memberikan kompensasi maka itu tidak akan berhasil. Di sisi lain, melakukan terlalu banyak saat tidak diminta juga menunjukkan keinginan yang berlebihan. Ini bisa mengakibatkan majikan membalas dengan tawaran upah yang lebih rendah dari yang Anda harapkan.
Namun, saya agak khawatir bahwa melakukan semua ini untuk tugas yang relatif sederhana akan terlihat buruk.
Ya itu terlihat buruk. Menyelesaikan tantangan mereka dengan satu baris kode akan jauh lebih mengesankan daripada proyek penuh flushed out.
Dari pengalaman saya, ini bukan bagaimana Anda memenangkan wawancara pekerjaan, tapi itu salah satu cara untuk kehilangan pekerjaan. Tes kode adalah masalah kontrol kualitas. Setiap perusahaan yang menggunakan tes kode ketika merekrut orang melakukannya, karena sebelumnya mereka tidak menggunakan tes kode. Mereka memiliki pengalaman buruk seseorang tergelincir melalui celah-celah proses wawancara yang seharusnya tidak.
Mereka akan mengambil kode sumber Anda dan menyebarkannya di kantor. Orang-orang akan berkomentar tentang hal itu, dan apa yang Anda tidak ingin mereka katakan adalah "Dia membuat kesalahan ini? Tetapi menghabiskan waktu menggunakan Git, CMake dan Travis-CI. Betapa bodohnya melewatkan kesalahan ini."
Itu dia. Anda tersesat.
Mereka ingin tahu Anda bisa kode, karena mereka tidak bisa mengajari Anda itu. Git, CMake dan Travis-CI dapat dengan mudah diajarkan.