Pertanyaan Interview Web Programmer

Saya akan mengasumsikan backend engineer di pertanyaan ini adalah engineer yang tugas utamanya menyediakan API untuk dikonsumsi oleh bagian frontend baik mobile atau pun web dalam sebuah sistem.

interview programmer

Soal Tes Programmer Dan Jawaban

Secara prinsip, ada 5 hal yang saya ingin tahu dari kandidat backend engineer yang saya wawancarai.

  1. Profil kandidat
    Saya akan menanyakan hal yang sangat umum, seperti pengalaman sebelumnya, motivasi melamar, apa yang diketahui tentang kantor kami, hobi, dan biasanya secara spesifik saya menanyakan apakah kandidat ini merokok atau tidak.Bagian ini hanya pemanasan dan jawaban dari kandidat hampir tidak akan mempengaruhi penilaian sama sekali, kecuali pertanyaan tentang merokok.
    Kalau ada 2 kandidat dengan kualitas sama dan permintaan gaji sama tapi kantor saya hanya bisa merekrut 1 orang, saya akan rekomendasikan yang tidak merokok haha.
  2. Kemampuan komunikasi
    Kantor saya adalah perusahaan konsultan multinasional dan dalam suatu proyek, kami pasti bekerja dengan orang-orang dari negara lain, jadi kemampuan berbahasa Inggris adalah hal yang wajib dikuasai. Oleh karena itu, saya akan mewawancara dalam bahasa Inggris untuk mengukur kemampuan komunikasi kandidat dalam bahasa Inggris.Tapi saya sendiri (dan beberapa orang dari negara lain di kantor) pun bahasa Inggrisnya tidak bagus-bagus amat. Jadi, biasanya asalkan pelafalan bahasa Inggris kandidat masih bisa dipahami, grammar-nya tidak terlalu berantakan, perbendaharaan kosa katanya cukup, dan bisa paham perkataan saya, itu cukup.Selain itu, masih terkait kemampuan komunikasi, saya biasanya ingin tahu seberapa baik kandidat dalam menjelaskan pemikirannya, dan bagaimana kandidat bereaksi terhadap pemikiran yang berbeda.

    Di kantor saya, kandidat yang sampai ke tahap wawancara teknis berarti sudah berhasil melewati tahap test membuat sebuah aplikasi sederhana berdasarkan requirement yang kami berikan. Saya akan meminta kandidat untuk menjelaskan alur, code,dan desain program serta database yang ia buat. Sambil kandidat menjelaskan, saya biasanya akan berimprovisasi dadakan dan bertanya berbagai hal tentang programnya, tapi model pertanyaannya berputar sekitar ini-ini saja: “kalau perlu ditambah fitur X gimana?”, atau “kenapa kamu memilih metode/teknik X untuk implementasi requirement Y?”, atau kalau ada bug, “kok ga jalan?”

    Bagi saya pribadi, ini adalah bagian yang paling penting untuk menentukan apakah saya akan merekomendasikan kandidat ke manajemen atau tidak.

  3. Kemampuan dasar
    Saya biasanya akan meminta kandidat membuat pseudo code untuk menjawab sebuah tantangan sederhana yang dapat dipikirkan jawabannya dalam 5 menit. Pertanyaan ini tujuannya sekadar untuk melihat alur logika berpikir kandidat. Bagian ini juga penting.Selain itu, saya juga biasanya akan menanyakan hal-hal seperti struktur data, algoritma, version control, CI/CD, testing, dll. Kalau untuk kandidat junior, biasanya saya tidak mementingkan bagian ini, dalam arti tidak bisa menjawab juga tidak apa-apa. Tapi kalau untuk kandidat senior, saya akan mengharapkan kandidat sudah memiliki pengetahuan dasar yang kuat untuk hal-hal ini.
  4. Kemampuan teknis
    Pada bagian ini, saya biasanya menanyakan berbagai hal tentang:
    1. Node JS, karena kantor saya menggunakan Node JS untuk backend. Yang paling saya ingin tahu di sini adalah sejauh mana pemahaman kandidat terhadap konsep asynchronous operation (callback, Promise, async)dan familiaritas dengan ES6. Selain itu, biasanya saya juga menanyakan pengalaman dengan Node JS sebelumnya, yang mana hal ini bisa jadi nilai plus untuk kandidat.
    2. Minimal paham operasi joindi database SQL, poin bonus kalau sampai paham optimasi performa, pemeliharaan, replikasi, dll
    3. Arsitektur perangkat lunak
    4. Khusus untuk kandidat junior, apalagi fresh graduate, pertanyaan terkait database, arsitektur, dan devops sejujurnya tidak terlalu saya pentingkan. Asal paham dasar-dasar JavaScript, bisa memahami requirement dengan cepat dan tepat, dan cara berpikirnya runut dan terstruktur, bagi saya itu sudah lulus untuk kompetensi kemampuan dasar dan teknis.
  5. Kebiasaan Belajar
    Ini bagian penutup yang santai, di mana biasanya saya hanya akan mengobrol tentang cara belajar yang disukai kandidat, sedang mempelajari apa, keinginan di masa depan, dll. Khusus untuk kandidat senior, di bagian ini saya akan menanyakan juga tentang pengalaman dan kebiasaan kandidat dalam membimbing  junior engineer di kantor.

pertanyaan interview programmer

Tes Interview Engineering

Sebenarnya banyak sekali cara untuk menjadi programmer hebat, tapi yang perlu diketahui adalah programming bukan bakat. Yang menjadi bakat adalah logika, tiap orang diberkahi logika yang berbeda-beda, ada yang cepat tanggap ada juga yang lambat, namun lambatnya logika tsb bisa diasah tergantung dari kemauan orang tersebut.

Selain itu, banyak orang harus sadar programmer itu adalah ilmu pasti, jika 1 AND 1 ya maka TRUE. Logika dasar tersebut harus dipahami dengan paksaan, meskipun tidak suka.

Lalu, jam terbang adalah senjata utama, tentu anda akan lebih percaya dengan programmer yang memiliki jam terbang coding tinggi daripada anak fresh graduate, tidak semua anak fresh grad memiliki jam terbang coding tinggi, tapi anak yang memiliki jam terbang coding tinggi bisa saja anak yang baru lulus dari universitas.

Bagaimana cara melihat jam terbangnya? Minta dia buat program, lihat alur codenya, jika masih ada code yang redundan atau tidak di refactor, maka kita tahu kalau anak tersebut tidak memiliki jam terbang yang kurang tinggi.

Lihat juga repo online-nya (github, gitlab), seberapa sering dia ngulik code dan melakukan push, programmer yang sering push ke github sendiri tentu sedang ngulik (belajar).

“Never stop learning” itu kata-kata yang saya dapatkan dari seorang ahli pemrograman serta jaringan. Beliau mengepalai pusat komputer di salah satu kampus negeri sekaligus mengurus sebuah internet service provider. Di awal tahun 2000-an beliau orang yang sangat disegani oleh orang-orang jaringan di daerah saya, karena kemampuannya tentunya. Waktu itu saya masih anak STM yang baru kenal GNU/Linux OS (mandrake waktu itu) sedangkan beliau sudah sangat mahir menggunakannya. Iseng-iseng saya menanyakan bagaimana caranya belajar GNU/Linux sedangkan di STM saya hanya dikenalkan dengan Windows OS (waktu itu saya menggunakan mIRC untuk berkomunikasi dengan beliau). Dan jawaban beliau cukup singkat “Never Stop Learning :-)”.

Sejak saat itulah saya bertekad untuk selalu belajar tentang apa yang ingin saya capai. Disaat teman-teman saya pergi ke warnet hanya sekedar chatting di mIRC, saya gunakan waktu saya di warnet untuk belajar GNU/Linux dan HTML, meskipun hanya seminggu sekali, itupun dari hasil menahan lapar dihari senin sampai kamis .

One comment

  1. […] saya sebagai gen Z yang baru memasuki dunia kerja. Perusahaan BUMN merupakan wadah dan sarana yang tepat, dengan adanya fasilitas atau teknologi yang […]

Leave a Reply