Ceritanya
Suatu hari, saya daftar kerja. Nah dapetlah saya undangan online test, terus lanjut pasti karena jago katanya. Lanjut ke HR interview. Intinya lolos deh itu HR interviewnya.
Terus lanjut ke tahap berikutnya, yaitu techincal interview yang live coding. Dikasihlah problem yang musti dikerjain. Problemnya tentang binary tree.
Kemudian dikirim gambar seperti ini:
Intinya kita perlu cari jumlah dari tiap-tiap path atau cabang, lalu dibandingkan dengan target sumnya yang berupa angka. Kalo sama, kita append pathnya ke result.
Coping
Singkat cerita, saya udah ngerjain sekitar 1 jam. Saya hampir bisa nyelesainnya (blud sedang coping), tapi ya hasilnya nihil. Sebenarnya ngga terlalu sulit harusnya, tapi saya terlalu nervous dan keliru cara pikirnya. Saya udah tau kalo harusnya pake DFS, tapi keliru cara implementasinya. Dan ya ujung-ujungnya udah tau juga pasti gagal interviewnya.
Jadinya ya perasaan saya yang awalnya percaya diri malah amblas dan rungkad, terus mikir ngapain ngelakuin ini semua? Kenapa harus habiskan waktu untuk ini? Kayaknya saya yang udah kerja di industri ini juga gapernah tuh ngerjain binary tree dan tetek bengeknya. Berani taruhan nih kalopun saya join di sana, ga bakal ngerjain binary tree atau sejenisnya sama sekali. Palingan ngerjain ya API endpoint sama query DB aja. Ya ga perlu tuh DFS atau BFS atau apapun itu.
Terus suatu waktu, saya memutuskan bolehlah ngerjain leetcode, dah lama juga ngga ngerjain. Nyari problem yang berkaitan dengan binary tree. Irois sekali karena saya udah berusaha menghindari si binary tree binary tree ini, tapi malah dicari.
Yaa mungkin saya ngerjain sekitar 3 atau 4 problem, terus ketemu tuh problem yang sama persis dengan yang ada di interview. Andai kalo saya kerjain ini lebih awal, udah pasti bisa ngerjainnya. Tapi kemudian saya mikir, bro kalo saya ngga pernah kerjain DFS di kerjaan saya sebelumnya, kenapa industri ini minta saya kerjain ini?
Tapi kalo dipikir-pikir, mungkin kalo mereka ngga pake problem jenis ini, bakal susah buat filter kandidat. In this economy di mana banyak banget orang apply pekerjaan yang sama, mereka perlu cara buat filter kandidat. Dan ini salah satu cara yang cukup oke. Atau mungkin perusahaan itu ngga mau hire kamu.
Eits jangan salah, saya juga beranggapan kalo grinding leetcode ini mungkin ada manfaatnya, karena bisa ngembangin skill problem solving. Wong saya juga dulu grinding kok. Tapi kalo sekarang ya udah dikit waktu untuk bisa diluangkan, dan jadi malas juga kalau ngerjainnya berlama-lama. (Bro bersikeras kalo ini bukan karena skill issue). Jenis problem atau pertanyaan favorit saya waktu technical interview adalah yang berkaitan dengan real life problem, kayak menemukan issue di code, mengoptimasi code, atau bagaimana cara merancang sistem untuk menyelesaikan suatu masalah. Problem jenis ini nih yang AI akan kesulitan untuk ngerjain, dan butuh kreativitas manusia asli buat ngerjain. Setidaknya buat sekarang ya...
Kesimpulan
Kesimulannya adalah, interview coding itu ya mungkin semi anjing. Kalo ini memang L take ya sudahlah bodo amat.
Buat yang penasaran soal problem leetcode yang saya bicarakan, ini linknya: Problem LeetCode Sekian terima gaji.
