Bagaimana jika Anda tidak suka berlatih 100-an pertanyaan coding sebelum wawancara?

Wawancara Coding semakin sulit. Untuk mempersiapkan wawancara coding, Anda memerlukan persiapan berminggu-minggu, bahkan berbulan-bulan.

Tidak ada seorang pun yang suka menghabiskan banyak waktu untuk mempersiapkan wawancara coding. Jadi apakah ada solusi yang lebih cerdas?

Pertama, mari kita lihat masalahnya.

Siapa pun yang mempersiapkan wawancara coding pasti mengetahui LeetCode. Ini mungkin merupakan gudang online terbesar untuk pengkodean pertanyaan wawancara. Mari kita lihat masalah apa yang dihadapi orang-orang saat menggunakan LeetCode.

Masalah dengan LeetCode

Ada lebih dari 2 ribu masalah di LeetCode. Tantangan terbesar LeetCode adalahkurangnya organisasi; mempunyai banyak sekali masalah pengkodean, dan kita tidak yakin harus mulai dari mana atau fokus pada apa.

Orang bertanya-tanya, apakah ada cukup banyak pertanyaan yang harus dijawab agar mereka siap menghadapi wawancara coding?

Saya ingin melihat proses sederhana yang memandu saya dan mengajari saya teknik algoritmik yang cukup untuk merasa percaya diri dalam wawancara. Sebagai orang yang malas, saya tidak ingin menjawab 500+ pertanyaan.

Solusinya

Salah satu teknik yang sering diikuti orang adalah menyelesaikan pertanyaan terkait struktur data yang sama; misalnya, berfokus pada pertanyaan yang berkaitan dengan Array, lalu LinkedList, HashMap, Heap, Tree, atau Trie, dll. Meskipun hal ini menyediakan beberapa pengorganisasian, hal ini masih kurang koheren. Misalnya, banyak pertanyaan yang dapat diselesaikan menggunakan HashMaps tetapi masih memerlukan teknik algoritmik yang berbeda.

Saya ingin melihat kumpulan pertanyaan yang tidak hanya mengikuti struktur data yang sama tetapi juga teknik algoritmik yang serupa.

Hal terbaik yang saya temukan adalah pola penyelesaian masalah seperti Jendela Geser, Penunjuk Cepat dan Lambat, Urutan Topologi, dll. Mengikuti pola berikut membantu saya memupuk kemampuan saya untuk 'memetakan masalah baru ke masalah yang sudah diketahui'. Hal ini tidak hanya membuat seluruh proses persiapan wawancara pengkodean menjadi menyenangkan tetapi juga lebih terorganisir.

Pola pengkodean meningkatkan β€œkemampuan kita untuk memetakan masalah baru ke masalah yang sudah diketahui.”

Pola Pengkodean

Saya telah mengumpulkan sekitar 20 pola masalah pengkodean yang saya yakini dapat membantu siapa pun mempelajari teknik algoritmik yang indah ini dan membuat perbedaan nyata dalam wawancara pengkodean.

Ide di balik pola-pola ini adalah ketika Anda sudah familiar dengan suatu pola, Anda akan mampu menyelesaikan banyak masalah dengan pola tersebut. Untuk diskusi mendetail tentang pola-pola ini dan masalah terkait serta solusinya, lihat Wawancara Grokking the Coding.

Jadi, tanpa basa-basi lagi, izinkan saya membuat daftar semua pola ini:

  1. Jendela Geser
  2. Pulau (Traversal Matriks)
  3. Dua Petunjuk
  4. Penunjuk Cepat & Lambat
  5. Interval Penggabungan
  6. Pengurutan Siklik
  7. Pembalikan LinkedList di Tempat
  8. Penelusuran Pertama Luas Pohon
  9. Penelusuran Pertama Kedalaman Pohon
  10. Dua Tumpukan
  11. Subkumpulan
  12. Penelusuran Biner yang Dimodifikasi
  13. XOR Bitwise
  14. Elemen 'K' Teratas
  15. Penggabungan K-way
  16. Pengurutan Topologi
  17. 0/1 Ransel
  18. Bilangan Fibonacci
  19. Urutan Palindromik
  20. Substring Umum Terpanjang

Berikut ini adalah pengenalan kecil dari masing-masing pola tersebut dengan contoh masalahnya:

Kesimpulan

Suka atau tidak, pertanyaan jenis LeetCode adalah bagian dari hampir setiap wawancara pemrograman, jadi setiap pengembang perangkat lunak harus mempraktikkannya sebelum wawancara. Satu-satunya pilihan mereka adalah mempersiapkan diri dengan cerdas dan mempelajari pemecahan masalah dengan berfokus pada pola masalah yang mendasarinya. Pelajari lebih lanjut tentang pola-pola ini dan contoh masalahnya di "Grokking the Coding Interview" dan "Grokking Dynamic Programming for Coding Interviews".

Periksa Guru Desain untuk mengetahui beberapa kursus menarik tentang wawancara Coding dan Desain Sistem.







Terima kasih sudah membaca