Breaking It Down: Cara mendekati masalah wawancara teknis

Resep masuk yang aman untuk mengetahui cara membuat masalah lebih mudah dikelola.

1. Ketika Anda mendapatkan pertanyaan (sebelum Anda menulis satu baris kode)

Cara termudah untuk memastikan Anda memahami pertanyaannya adalah dengan memeriksa kasus-kasus pengujian.

Hal-hal yang perlu diklarifikasi dengan pewawancara Anda:
Apa input yang diharapkan? Apa output yang diharapkan?
Asumsi apa pun yang Anda miliki tentang kasus uji tertentu

Setelah mempelajari kasus-kasus pengujian, catat variabel apa saja yang harus Anda catat dan jenis struktur data apa yang paling masuk akal untuk masalah ini.

Selalu pikirkan cara-cara Anda untuk memecahkan masalah. Apakah ada sub-masalah yang lebih kecil dan lebih mudah yang bisa Anda pecahkan? Dan jika demikian, akan seperti apa solusi itu?

2. Menulis kode (dan apa yang harus dilakukan jika Anda macet)

Setelah Anda mengetahui algoritma Anda dan menjelaskan logika Anda, hal selanjutnya yang harus Anda lakukan adalah menerjemahkan ide Anda menjadi kode.

Pada titik ini, brute force benar-benar baik-baik saja. Menciptakan solusi yang berfungsi (meskipun efisiensi ruang dan runtime-nya tidak sempurna) jauh lebih baik daripada terjebak untuk mencoba mengoptimalkan kode Anda secara prematur.

Saat Anda menulis kode, ingat untuk:

  1. Bicaralah dengan jelas tentang kode apa yang sedang Anda kerjakan dan mengapa Anda menambahkannya ke solusi Anda
  2. Cobalah untuk menggunakan nama variabel yang jelas dan buat kode Anda ramah untuk dibaca
  3. Bicaralah dengan pewawancara Anda melalui proses pemikiran Anda dan apa pro dan kontra yang mungkin muncul dengan solusi Anda
  4. Jadikan kode Anda modular jika memungkinkan (fungsi pembantu adalah teman Anda!)

Tentang menangani keheningan yang canggung itu jika Anda mandek atau perlu waktu untuk berpikir ...

Itu terjadi pada kita semua, dan sangat normal untuk menemukan ini selama wawancara. Dalam pengalaman saya, untuk hampir semua wawancara teknis saya ada saatnya ketika saya perlu berpikir sendiri dan tidak dapat terus berbicara dengan pewawancara. Ketika ini terjadi, saya biasanya mengatakan sesuatu seperti:

Saya perlu sesaat untuk memikirkan solusi saya dan melihat apakah itu masuk akal
Saya tidak sepenuhnya yakin apakah ini pendekatan yang tepat, izinkan saya memeriksa ulang pekerjaan saya
Tampaknya mungkin (masukkan bagian dari solusi yang Anda usulkan) mungkin tidak benar-benar berfungsi untuk (masukkan beberapa tepi kasus) ... Saya sedang memikirkan bagaimana cara mengatasinya

Pewawancara biasanya ada di pihak Anda dan ingin melihat Anda berhasil - ingat saja jika dia memberi Anda petunjuk, jangan pernah mengabaikannya!

3. Meninjau solusi Anda dan menambahkan optimasi

Setelah Anda selesai menulis kode Anda, telusuri dengan test case untuk memastikan program Anda berperilaku seperti yang Anda harapkan.

Pada titik ini baik untuk mempertimbangkan:

  1. Kasing tepi yang mungkin Anda lewatkan
  2. Mati dengan satu kesalahan (terutama saat pengindeksan atau menggunakan loop)
  3. Apakah ada pengulangan dalam kode Anda yang dapat Anda bersihkan?

Pertanyaan untuk ditanyakan ketika mencoba mengoptimalkan:

  1. Apa run time dan kompleksitas ruang saat ini?
  2. Apakah ada ruang untuk perbaikan jika Anda menggunakan struktur data yang berbeda atau sedikit memodifikasi pendekatan Anda?

Saat Anda meninjau kode Anda, ingatlah bahwa sangat mungkin Anda membuat kesalahan yang tidak disengaja - coba telusuri program Anda seolah-olah itu adalah pekerjaan orang lain yang Anda lihat pertama kali!

Membungkus semuanya

Wawancara adalah keterampilan, dan seperti keterampilan lainnya, keterampilan itu dapat ditingkatkan dengan latihan! Bekerja melalui masalah teknis, merasa nyaman dengan bahasa pilihan Anda dan struktur data semua bisa menjadi pekerjaan yang Anda lakukan sebelumnya untuk meningkatkan peluang Anda untuk kinerja yang kuat selama wawancara.

Untuk daftar pertanyaan, struktur data, dan sumber daya untuk ditinjau, Anda dapat melihat lebih banyak di sini: Rencana 4 Minggu untuk Memaku Wawancara Teknis Berikutnya Anda

Ingatlah bahwa setiap wawancara adalah pengalaman belajar dan terlepas dari hasil yang Anda dapatkan, wawasan berharga yang tidak Anda miliki sebelumnya. Tetap positif dan belajar dari umpan balik adalah cara terbaik untuk terus meningkatkan! Semoga berhasil!

Jika panduan ini dapat membantu Anda dengan cara apa pun, silakan kirimkan satu atau dua tepukan :) itu sangat berarti bagi saya - terima kasih dan semoga sukses dengan perjalanan Anda!