00:00:00Mari kita bahas tentang wawancara coding. Percaya atau tidak, insinyur perangkat lunak membenci wawancara coding
00:00:05lebih dari mereka membenci bersosialisasi. Mungkin bukan masalah besar jika Anda adalah tipe orang yang telah
00:00:09melahap 500 soal LeetCode. Tapi bagi kita yang sering mengantuk saat mencoba memecahkan satu soal
00:00:16dan diam-diam minta bantuan AI agar soal tersebut dianggap selesai, ini masalah besar. Tapi inilah bagian
00:00:21terburuknya. Bahkan jika Anda sudah menyelesaikan 500 soal LeetCode, Anda tetap bisa ditolak. Itu bukan
00:00:27sekadar pendapat saya. Saya sempat menelusuri Reddit, membaca kisah nyata dari kandidat yang sudah melakukan segalanya
00:00:33dengan benar namun tetap gagal. Jadi jika Anda tidak ingin hal itu terjadi, video ini akan membantu Anda. Karena hari ini
00:00:38saya akan memberikan kerangka kerja yang jelas dan bisa diulang yang bisa Anda gunakan untuk menaklukkan
00:00:43wawancara coding Anda. Saya menyebutnya TECT. Kerangka kerja ini membantu saya mendapatkan pekerjaan pertama saya dan setelah meneliti
00:00:49bagaimana kandidat sukses beraksi di sesi wawancara, saya menyadari sesuatu yang menarik. Kebanyakan dari mereka
00:00:54secara tidak sadar mengikuti proses yang persis sama. Jadi mari kita lihat bagaimana Anda bisa menggunakan kerangka kerja TECT ini dalam
00:01:00wawancara coding Anda. Jadi, T dalam kerangka kerja TECT berarti Think atau berpikir. Apa artinya adalah misalkan
00:01:06wawancara coding Anda baru saja dimulai dan pewawancara memberikan sebuah pertanyaan kepada Anda. Maka tahap
00:01:10pertama adalah memikirkan solusinya. Banyak dari Anda mungkin berpikir bahwa ini sangat jelas,
00:01:16tapi dengarkan saya dulu. Kesalahan yang harus Anda hindari di fase ini adalah memikirkan
00:01:21solusi yang paling optimal sejak awal. Jangan pikirkan dulu soal penggunaan memori atau kecepatan kode.
00:01:26Pikirkan saja bagaimana cara menyelesaikannya. Tapi bagaimana jika Anda sudah tahu solusi optimalnya? Ada kalanya
00:01:31Anda sudah familier dengan pertanyaannya dan sudah tahu solusi optimalnya. Apa yang
00:01:35harus Anda lakukan? Saya akan menjawab ini di fase kedua. Jadi, hasil dari fase pertama ini
00:01:40seharusnya adalah Anda memiliki gambaran solusi di pikiran Anda tentang cara menyelesaikannya. Setelah Anda tahu cara
00:01:44menyelesaikannya, itu membawa kita ke fase kedua: Explain atau menjelaskan. Apa yang dilakukan kebanyakan orang adalah mereka hanya
00:01:50memikirkan solusinya dan langsung lompat ke implementasi tanpa mengucapkan sepatah
00:01:55kata pun. Tapi itu adalah tanda bahaya bagi kebanyakan pewawancara. Apa yang seharusnya Anda lakukan adalah
00:02:00setelah Anda memiliki solusi di pikiran, jelaskanlah kepada pewawancara tentang
00:02:04solusi tersebut dan proses berpikir Anda secara keseluruhan. Misalkan pertanyaan yang Anda dapatkan di wawancara adalah
00:02:08masalah “three sum” yang terkenal itu. Jadi, daripada hanya berpikir dan langsung menulis kode, pikirkan dan komunikasikan
00:02:14dengan pewawancara terlebih dahulu. Anda bisa mengatakan sesuatu seperti, “Karena kita perlu mencari tiga angka yang
00:02:19jumlahnya mencapai target, salah satu pendekatan langsungnya adalah dengan menggunakan loop bersarang untuk mengecek setiap kemungkinan
00:02:23kombinasi.” Dengan cara ini, sampaikan seluruh pemikiran Anda tentang cara Anda menyelesaikannya dan mengapa
00:02:28metode itu akan berhasil. Jadi jika Anda sudah pernah mengerjakan soal itu sebelumnya dan tahu jawabannya, jangan langsung
00:02:33membahas solusi optimal terlebih dahulu. Sebelum itu, sampaikan dulu solusi brute force-nya. Itu karena langsung
00:02:39membahas solusi optimal bisa membuat Anda terlihat seolah-olah hanya menghafalnya. Jadi untuk menghindari itu, mulailah
00:02:45dengan menjelaskan proses berpikir Anda dari pendekatan brute force, baru kemudian bicarakan tentang
00:02:49solusi optimalnya setelah itu. Anda bisa bilang seperti, “Cara ini berhasil tapi tidak optimal. Alih-alih
00:02:55menggunakan tiga loop, kita bisa mengurutkan array-nya dan menggunakan pendekatan two-pointer untuk mengurangi kompleksitas waktu,”
00:03:01lalu jabarkan seluruh proses berpikir Anda. Sebelum kita lanjut ke bagian berikutnya dari
00:03:05kerangka kerja TECT, saya ingin bicara sejenak tentang sponsor video ini. Jika menurut Anda LeetCode itu
00:03:11sulit dan Anda selalu berakhir dengan menghafal solusi, Algo Monster cocok untuk Anda. Ini adalah platform persiapan
00:03:16wawancara coding yang berfokus pada pembelajaran berbasis pola, bukan latihan acak. Konsepnya
00:03:22sederhana. Kebanyakan pertanyaan wawancara dibangun dari sekumpulan kecil pola inti, dan begitu Anda benar-benar
00:03:27memahami pola-pola tersebut, Anda tidak perlu lagi menghafal ratusan soal. Mereka menyediakan diagram alir
00:03:32untuk membantu Anda mendekati pertanyaan apa pun secara sistematis plus templat kode yang bisa Anda terapkan
00:03:38saat wawancara. Algo Monster bukan sekadar platform di mana Anda hanya mendapatkan daftar soal untuk latihan.
00:03:44Ia memberikan cara yang lebih terstruktur dan efisien untuk mempersiapkan diri menghadapi
00:03:47wawancara coding Anda. Tersedia paket gratis dan jika Anda mau, Anda juga bisa mencoba versi berbayar
00:03:52untuk mendapatkan nilai lebih dan struktur dalam pembelajaran Anda. Anda bisa dapat diskon 50%. Link-nya ada di
00:03:58deskripsi. Sekarang mari kita kembali ke langkah berikutnya dari kerangka kerja TECT. Sekarang Anda sudah punya
00:04:02solusi, sudah menjelaskannya ke pewawancara, dan tibalah fase berikutnya: Code. Fase ini cukup jelas.
00:04:08Anda tinggal menulis kode untuk solusi Anda. Tapi di sinilah banyak pengembang melakukan kesalahan. Mereka tetap diam
00:04:13saat menulis kode. Dalam kebanyakan wawancara, pewawancara akan meminta Anda menjelaskan kode yang Anda tulis. Jadi jika
00:04:18Anda menulis kodenya dalam diam, pewawancara kemungkinan besar akan bertanya setelahnya untuk menjelaskan kode Anda.
00:04:23Padahal akan lebih baik jika Anda menjelaskannya saat Anda sedang menulisnya. Misalnya saat Anda mulai coding.
00:04:28Anda menginisialisasi array kosong untuk menyimpan hasil. Untuk menjelaskan apa tujuannya, Anda bisa mengatakan
00:04:33sesuatu seperti, “Jadi saya akan menginisialisasi array kosong untuk menyimpan hasil dan melanjutkan penjelasan
00:04:39untuk baris kode berikutnya.” Percayalah, ini sangat efektif dan pewawancara akan menyukainya. Ini juga
00:04:45membantu memastikan adanya interaksi yang konstan antara Anda dan pewawancara sekaligus membuktikan
00:04:50bahwa Anda benar-benar tahu apa yang Anda kerjakan. Masalah lain yang mungkin Anda hadapi adalah Anda mungkin lupa
00:04:55suatu sintaks atau lupa nama fungsi. Dalam hal itu, jangan membuat kesalahan dengan terpaku pada baris yang sama,
00:05:01mencoba mengingatnya. Jika Anda tidak ingat, Anda bisa meninggalkan komentar kecil dan lanjut saja menulis kodenya
00:05:06lalu kembali ke baris tersebut setelah Anda selesai. Dengan cara ini, Anda tidak akan membuang waktu hanya untuk
00:05:11mengingat satu sintaks saja. Jika Anda benar-benar tidak ingat sama sekali, akui saja kepada pewawancara.
00:05:16Terkadang mereka malah akan memberi petunjuk atau menyuruh Anda mencarinya. Itu membawa kita ke tahap terakhir.
00:05:21Setelah kode Anda siap, hal berikutnya yang harus dilakukan adalah Test atau mengujinya. Dalam beberapa kasus, pewawancara mungkin
00:05:27memberi Anda input dan output yang diharapkan. Tapi jika tidak, Anda harus membuat kasus uji Anda sendiri.
00:05:32Cobalah pikirkan kasus uji dasar. Dan jika Anda bisa memikirkan edge cases, itu bahkan lebih baik. Pastikan saja
00:05:38kode Anda bisa menanganinya. Setelah Anda menjalankan kodenya, belum tentu 100% kodenya akan langsung jalan.
00:05:43Jadi ada dua kemungkinan. Kodenya akan jalan atau menunjukkan error. Jika jalan, bagus. Jika tidak,
00:05:48inilah yang perlu Anda lakukan. Pertama, jangan panik. Karena jika Anda sudah mengerjakan solusinya tadi
00:05:53dan yakin bahwa pendekatan Anda benar, itu hanyalah kesalahan sintaks atau kesalahan logika kecil. Jadi jangan panik,
00:05:59baca saja pesannya dan perbaiki. Kebanyakan orang bahkan tidak membaca pesan error-nya dengan teliti
00:06:05dan malah mulai membaca kode dari awal karena merasa tertekan. Tidak apa-apa jika tidak langsung jalan di
00:06:09percobaan pertama. Pewawancara tidak akan memotong poin hanya karena kesalahan kecil. Jadi jika semuanya berjalan lancar
00:06:14dan Anda beruntung, pewawancara mungkin hanya akan menanyakan beberapa pertanyaan dasar tentang solusinya
00:06:19dan lanjut ke pertanyaan berikutnya. Tapi jika Anda melamar untuk posisi tingkat menengah hingga senior,
00:06:24Anda mungkin akan ditanya soal pendekatan yang lebih optimal. Dalam kedua kasus tersebut, Anda tinggal mengulangi kerangka
00:06:30kerja TECT ini lagi untuk melalui wawancara Anda. Jadi, itulah kerangka kerja yang sederhana dan mudah diingat
00:06:34jika Anda akan menghadapi wawancara coding. Wawancara coding bukan hanya soal coding.
00:06:40Ini juga tentang komunikasi. Pewawancara tidak hanya ingin melihat kode Anda. Mereka ingin tahu
00:06:44apa yang Anda pikirkan dan bagaimana cara Anda berpikir. Ingatlah satu hal ini: komunikasi sangatlah
00:06:49penting bahkan dalam wawancara coding. Saya sudah berbicara dengan para perekrut dan mereka semua setuju bahwa jika
00:06:54kandidat tidak banyak berkomunikasi, itu adalah tanda bahaya bagi mereka. Jadi ingatlah hal ini dan jangan
00:06:59lupa cek Algo Monster untuk persiapan wawancara coding Anda. Sekian untuk video ini,
00:07:04semoga sukses dengan wawancara Anda. Jangan lupa berikan dukungan untuk video ini.
00:07:07Sampai jumpa di video berikutnya.