Kursus Dasar Wawancara Coding Python

Kursus Python terstruktur untuk wawancara coding yang mencakup dasar bahasa, struktur data, fungsi dan komprehensi, OOP dan eksepsi, serta algoritma dan strategi wawancara dengan soal latihan terkait.

Tingkat: Coding Interview Kesulitan: medium 5 pelajaran 75 mnt
Kemajuan kursus 0 / 5
Kembali ke kursus

Yang akan Anda pelajari

  • Menjelaskan dasar Python, mutabilitas, type hints, dan pengaturan lingkungan
  • Memilih dan menggunakan list, tuple, set, dict, dan fungsi bawaan dengan kompleksitas yang tepat
  • Menulis fungsi, komprehensi, closure, decorator, dan generator yang efektif
  • Menerapkan OOP, pewarisan, polimorfisme, dunder method, dan penanganan eksepsi
  • Menyelesaikan soal wawancara dengan algoritma umum dan strategi yang dapat diulang

Sebelum mulai

  • Pengalaman pemrograman dasar dalam bahasa apa pun
  • Familiar dengan variabel, fungsi, dan perulangan
  • Lingkungan Python 3 atau interpreter online untuk latihan

Pelajaran 1 Dasar Python dan pola pikir wawancara

Dalam wawancara Python, pewawancara ingin melihat bagaimana Anda memahami penyimpanan dan perbandingan data. Variabel adalah referensi ke objek; dua variabel dapat menunjuk objek yang sama, jadi bedakan identitas dan kesetaraan dengan is dan ==.

Tipe mutable seperti list, set, dan dict dapat diubah isinya, sedangkan tipe immutable seperti str, int, dan tuple tidak. Saat objek mutable dikirim ke fungsi, perubahan di dalam fungsi dapat memengaruhi data di luar fungsi.

Type hints membuat kode lebih mudah dibaca dan memungkinkan alat pemeriksaan statis mendeteksi kesalahan lebih awal. Contoh: def add(a: int, b: int) -> int:. Dalam wawancara, gunakan type hints saat membantu menjelaskan ide tanpa memperlambat penyelesaian.

Pewawancara menilai cara berpikir dan kode yang Anda tulis. Jelaskan rencana secara singkat sebelum menulis, uji dengan contoh kecil, dan periksa kasus tepi seperti daftar kosong atau data berulang.

Siapkan lingkungan Python 3 dengan interpreter atau notebook daring agar Anda dapat mencoba dengan cepat. Menguasai dir(), help(), dan type() juga membantu saat perlu memeriksa perilaku pustaka selama wawancara.

Tips latihan Dasar Python dan pola pikir wawancara: Ulangi pelajaran ini dalam sesi singkat setiap hari. Setelah setiap latihan, sebutkan aturan atau langkah yang kamu gunakan; jika tidak bisa, pelajari topik itu sebelum lanjut. Konsistensi mengingat lebih baik daripada sesi panjang.

Contoh

Pada panggilan penyaringan, pewawancara meminta Anda menjelaskan arti None dan cara Python mengevaluasi nilai kebenaran. Anda menjawab bahwa None adalah objek tunggal dan bahwa wadah kosong, nol, serta string kosong bersifat falsy. Lalu Anda menyebutkan penggunaan is None untuk perbandingan agar menunjukkan pemahaman yang tepat tentang dasar-dasar Python.

Baca ulang pertanyaan sebelum selesai dan pastikan makna jawabanmu benar.

Pelajaran 2 Memilih struktur data yang tepat

list adalah array dinamis berurutan dengan akses cepat berdasarkan indeks, tetapi penyisipan atau penghapusan di awal memiliki kompleksitas O(n). tuple yang tidak berubah cocok untuk data tetap dan dapat dijadikan kunci dict.

set menyimpan nilai unik dan mendukung pemeriksaan keanggotaan, gabungan, irisan, dan selisih dalam rata-rata O(1). Gunakan set untuk menghilangkan duplikat atau pemeriksaan keberadaan yang cepat.

dict memetakan kunci ke nilai dengan pencarian rata-rata O(1). Pilih kunci yang tidak berubah, gunakan dict.get(key, default) untuk menghindari kesalahan kunci hilang, dan ingat urutan penyisipan dipertahankan di Python 3.7+.

Fungsi bawaan seperti len(), sorted(), enumerate(), zip(), min(), dan max() membuat kode lebih ringkas. Contoh: sorted(items, key=lambda x: x[1]) mengurutkan berdasarkan elemen kedua tanpa perulangan rumit.

Saat memilih struktur data, sebutkan kompleksitas waktu untuk operasi utama: pencarian, penyisipan, penghapusan, dan iterasi. Menjawab bahwa set digunakan untuk pemeriksaan duplikat dalam O(1) menunjukkan pemahaman tentang trade-off antara memori dan kecepatan.

Tips latihan Memilih struktur data yang tepat: Ulangi pelajaran ini dalam sesi singkat setiap hari. Setelah setiap latihan, sebutkan aturan atau langkah yang kamu gunakan; jika tidak bisa, pelajari topik itu sebelum lanjut. Konsistensi mengingat lebih baik daripada sesi panjang.

Contoh

Anda perlu memeriksa keanggotaan secara sering pada daftar yang mungkin berisi ratusan ribu item. Anda beralih ke set sehingga item in seen berjalan dalam waktu konstan, lalu menjelaskan bahwa ini adalah pencarian berbasis hash. Anda juga menyebutkan bahwa jika urutan harus dipertahankan, gunakan dict atau daftar sesuai batasan.

Baca ulang pertanyaan sebelum selesai dan pastikan makna jawabanmu benar.

Pelajaran 3 Fungsi, comprehensions, dan generator

Fungsi adalah unit organisasi utama di Python. Selain parameter biasa, pahami *args yang mengumpulkan argumen posisi menjadi tuple dan **kwargs yang mengumpulkan argumen kata kunci menjadi dict, membuat fungsi fleksibel namun jelas.

Ruang lingkup variabel mengikuti aturan LEGB: Local, Enclosing, Global, Built-in. Fungsi bersarang dapat membaca variabel dari fungsi luar; jika perlu menetapkan nilai, gunakan nonlocal atau global dengan sengaja.

Closure mengingat variabel dari lingkup sekitarnya bahkan setelah fungsi luar selesai. Decorator adalah fungsi yang menerima fungsi lain dan mengembalikan fungsi baru, sering digunakan untuk logging, pemeriksaan, atau cache.

List comprehension seperti [x * 2 for x in items if x > 0] membuat daftar baru dengan ringkas. Demikian juga dict comprehension dan set comprehension; gunakan hanya jika ekspresi masih mudah dibaca dan hindari nesting terlalu dalam.

Generator menggunakan yield untuk menghasilkan nilai secara malas, memungkinkan data besar diproses tanpa menyimpan semuanya di memori. Dalam wawancara, jelaskan manfaat memori dan cara mengubah antara generator dan list saat perlu iterasi berulang.

Tips latihan Fungsi, comprehensions, dan generator: Ulangi pelajaran ini dalam sesi singkat setiap hari. Setelah setiap latihan, sebutkan aturan atau langkah yang kamu gunakan; jika tidak bisa, pelajari topik itu sebelum lanjut. Konsistensi mengingat lebih baik daripada sesi panjang.

Contoh

Pewawancara meminta Anda mengubah daftar ID pengguna menjadi nama huruf kecil tanpa membuat daftar antara yang besar. Anda menulis names = (name.lower() for name in users) dan menjelaskan bahwa ekspresi generator menghasilkan nilai secara malas. Anda membandingkannya dengan comprehension daftar dan menekankan bahwa penggunaan memori adalah pertukaran utamanya.

Baca ulang pertanyaan sebelum selesai dan pastikan makna jawabanmu benar.

Pelajaran 4 OOP dan penanganan pengecualian dalam wawancara

OOP di Python membantu mengatur kode di sekitar data dan perilaku. Kelas menggunakan __init__ untuk menginisialisasi atribut, dan konvensi self mewakili objek saat ini. Bedakan atribut instance dan atribut kelas.

Pewarisan memungkinkan kelas anak menggunakan kembali dan memperluas kelas induk. Polimorfisme memungkinkan objek berbeda menjawab metode yang sama dengan caranya masing-masing; gunakan isinstance() hanya saat benar-benar diperlukan.

Dunder method seperti __len__, __getitem__, __eq__, dan __repr__ membuat objek bekerja secara alami dengan sintaks Python. Contohnya, __repr__ yang baik memudahkan debugging.

Penanganan pengecualian menggunakan try, except, else, dan finally. else berjalan saat tidak ada kesalahan, sedangkan finally selalu berjalan untuk pembersihan. Tangkap pengecualian spesifik seperti ValueError atau KeyError alih-alih terlalu luas.

Saat perlu, buat custom exception dengan mewarisi Exception dan beri nama yang jelas. Dalam wawancara, berikan contoh mengubah kesalahan menjadi pesan berguna dan memastikan kode tidak mengganggu alur utama.

Tips latihan OOP dan penanganan pengecualian dalam wawancara: Ulangi pelajaran ini dalam sesi singkat setiap hari. Setelah setiap latihan, sebutkan aturan atau langkah yang kamu gunakan; jika tidak bisa, pelajari topik itu sebelum lanjut. Konsistensi mengingat lebih baik daripada sesi panjang.

Contoh

Solusi Anda harus memuat profil pengguna dari API jarak jauh dan mencoba lagi saat jaringan gagal. Anda mendefinisikan subkelas khusus RetryableError dan membungkus panggilan dalam blok try/except yang mencatat kegagalan. Anda menjelaskan bahwa jenis pengecualian yang spesifik membuat kontrak kelas lebih jelas dan lebih mudah diuji.

Baca ulang pertanyaan sebelum selesai dan pastikan makna jawabanmu benar.

Pelajaran 5 Algoritma, kompleksitas, dan strategi wawancara

Analisis kompleksitas adalah keterampilan wajib. Tentukan big-O untuk waktu dan memori, lalu jelaskan mengapa perulangan bersarang bisa O(n²), sedangkan dua penunjuk atau dict biasanya menurunkannya menjadi O(n).

Pola umum meliputi two pointers untuk array terurut, hashing untuk pemeriksaan duplikat dan penghitungan frekuensi, sliding window untuk subarray berurutan, serta pengurutan dan iterasi linear untuk banyak masalah.

Rekursi memerlukan kasus dasar dan kasus rekursif; jika ada submasalah berulang, pertimbangkan memoization atau pemrograman dinamis. Selalu periksa kedalaman rekursi dan risiko stack overflow.

Dalam wawancara, baca soal dengan lantang, konfirmasi batasan, berikan contoh, lalu jelaskan solusi sebelum menulis kode. Uji dengan input kecil, kasus tepi, dan data besar untuk menemukan kesalahan logika lebih awal.

Proses berulang yang efektif: pahami masalah, pilih struktur data, tulis kode bersih, uji, lalu optimalkan jika perlu. Jika buntu, bicarakan pemikiran Anda, coba brute force dulu, kemudian perbaiki; pewawancara menilai proses berpikir, bukan hanya jawaban sempurna.

Tips latihan Algoritma, kompleksitas, dan strategi wawancara: Ulangi pelajaran ini dalam sesi singkat setiap hari. Setelah setiap latihan, sebutkan aturan atau langkah yang kamu gunakan; jika tidak bisa, pelajari topik itu sebelum lanjut. Konsistensi mengingat lebih baik daripada sesi panjang.

Contoh

Diberikan dua larik terurut, Anda mulai dengan menyatakan bahwa penggabungan brute-force adalah O(n log n) dan penggabungan dua penunjuk dapat mencapai O(n). Anda menelusuri invarian loop sebelum menulis kode, yang menunjukkan pemikiran algoritmik yang terstruktur. Lalu Anda merangkum pertukaran antara kompleksitas waktu dan kesederhanaan kode untuk pewawancara.

Baca ulang pertanyaan sebelum selesai dan pastikan makna jawabanmu benar.