Wawancara Teknis Rekayasa Perangkat Lunak – Panduan Utama tentang Cara Mempersiapkan Putaran Tes Pengkodean secara Efisien.
Apabila Anda telah memutuskan untuk memulai proses yang menakutkan dalam mempersiapkan wawancara pemrograman dan tidak tahu bagaimana memanfaatkan waktu sebaik-baiknya, ini adalah satu-satunya panduan yang dibutuhkan untuk menjadi persiapan dari awal dalam tes pemrograman.
Apa itu Wawancara Pengkodean Rekayasa Perangkat Lunak?
Wawancara coding adalah bentuk wawancara teknis yang digunakan untuk mengakses kompetensi kandidat insinyur perangkat lunak potensial dan untuk mengakses kompetensi kandidat insinyur perangkat lunak potensial dengan mempresentasikan masalah pemrograman. Biasanya, wawancara pengkodean berfokus pada struktur data dan algoritma, sementara putaran teknis lainnya mungkin mencakup desain sistem (terutama untuk kandidat di tingkat menengah hingga lanjutan).
Babak wawancara coding biasanya berdurasi 30-45 menit. Pewawancara akan memberi Anda pertanyaan teknis (atau pertanyaan) dan menggunakan editor kolaboratif waktu nyata seperti CodePen atau CoderPad (layar ponsel) Tulis kode di papan tulis (di tempat/virtual) atau di papan tulis, 30-45 Diharapkan untuk menyelesaikan masalah dalam beberapa menit.
Bagaimana saya akan dievaluasi dalam wawancara pengkodean?
Saya telah menyusun kriteria evaluasi di seluruh perusahaan teknologi top dan menggeneralisasinya menjadi rubrik evaluasi wawancara pengkodean yang dapat Anda gunakan. Persyaratan dan pembobotan khusus dapat bervariasi dari satu perusahaan ke perusahaan lain, dan perusahaan teknologi teratas selalu menyertakan kriteria berikut dalam evaluasi mereka:
- Komunikasi – Ajukan pertanyaan yang jelas, komunikasikan pendekatan Anda, dan klarifikasi trade-off sehingga pewawancara tidak memiliki masalah mengikuti Anda.
- Pemecahan Masalah – Pahami masalahnya, dekati secara sistematis, logis, dan akurat, dan diskusikan berbagai pendekatan potensial dan trade-off. Kemampuan untuk secara akurat menentukan dan mengoptimalkan kompleksitas ruang dan waktu.
- Kompetensi teknis – Menerjemahkan solusi yang dibahas ke dalam kode kerja tanpa banyak usaha. Implementasi yang bersih dan benar dengan pengetahuan mendalam tentang struktur bahasa.
- Pengujian – Kemampuan untuk menguji kode terhadap kasus normal dan kasus sudut, serta masalah koreksi diri dalam kode.
Bagaimana cara mempersiapkan diri untuk wawancara pengkodean?
LeetCode saja tidak benar-benar cukup untuk mempersiapkan Anda untuk wawancara pengkodean. Melompat langsung ke LeetCode dan berpikir bahwa Anda dapat menyelesaikan semua ribuan pertanyaan adalah buang-buang waktu dan tidak akan pernah mempersiapkan Anda sebanyak pendekatan terstruktur.
Berlatih selama 30 menit per pertanyaan, rata-rata 3 jam sehari, berarti rata-rata orang akan berusia 160 tahun dalam 3-4 minggu Anda hanya dapat menyelesaikan pertanyaan yang Anda miliki, dan Anda mungkin telah menginternalisasi pendekatan yang benar atau Anda mungkin tidak ingat pertanyaan yang telah Anda latih sebelumnya.
Sebagai gantinya, inilah cara mempersiapkan wawancara pengkodean insinyur perangkat lunak:
- Pilih bahasa pemrograman yang tepat untuk digunakan
- Rencanakan waktu dan kerjakan topik dan pertanyaan dalam urutan kepentingannya
- Gabungkan pembelajaran dan latihan pada satu topik
- Kodekan lembar contekan wawancara untuk menemani Anda berlatih dan menginternalisasi apa yang harus Anda lihat dan ingat
- Siapkan pengenalan diri yang baik dan pertanyaan akhir
- Coba wawancara pengkodean tiruan (dengan teknisi Google dan Facebook)
- (Jika Anda punya waktu) Menginternalisasi pola pertanyaan wawancara teknis utama
1. Gunakan Pilih bahasa pemrograman yang tepat
Bahasa pemrograman yang tepat untuk digunakan untuk wawancara coding adalah bahasa pemrograman yang anda kenal dan cocok untuk wawancara.
Apa yang menentukan apakah akan menggunakan bahasa pemrograman untuk wawancara atau tidak? Secara umum, Anda memerlukan bahasa tingkat tinggi yang memiliki banyak fungsi pustaka standar dan struktur data, dan karenanya “mudah” untuk dikodekan.
Bahasa pemrograman yang disarankan untuk digunakan untuk wawancara pengkodean: Python, C++, Java, JavaScript
2. Rencanakan waktu dan fokus pada topik dan pertanyaan – Kerjakan rencana tingkat tertinggi
Berapa lama waktu yang dibutuhkan untuk mempersiapkan wawancara pengkodean? Itu sebenarnya tergantung pada seberapa baik Anda ingin mempersiapkan diri. Rata-rata, dibutuhkan sekitar 30 jam untuk menutupi minimum, dan sekitar 100 jam untuk mempersiapkan diri dengan baik.
Untuk mulai mempersiapkan wawancara pengkodean, selalu mulai dengan rencana. Hitung waktu yang tersisa untuk mempersiapkan wawancara secara realistis antara sekarang dan hari tes pengkodean, prioritaskan yang paling penting terlebih dahulu, dan buat rencana dengan hati-hati untuk topik dan pertanyaan yang akan Anda bahas sepanjang hari.
Tetapi topik dan pertanyaan mana yang paling penting yang harus Anda latih berdasarkan waktu yang tersisa? Anda dapat menggunakan alat Grind 75 gratis (dibuat oleh saya) untuk membuat rencana studi wawancara pengkodean dengan berbagai durasi waktu persiapan. Algoritma di baliknya melibatkan peringkat pertanyaan berdasarkan prioritas dan menyeimbangkan luas dan kedalaman topik yang dibahas.
Jika waktu untuk mempersiapkan adalah kemewahan, lebih baik menghabiskan sekitar 3 bulan (2-3 jam per hari) untuk mempersiapkan lebih banyak secara keseluruhan. Saya telah menguraikan rencana studi 3 bulan pribadi saya di sini, dan itu akan membawa Anda dari awal hingga akhir tentang topik dan pertanyaan mana yang harus diselesaikan.
3. Satu Tema – Menggabungkan Studi dan Praktik Tentang Belajar dan Berlatih Tentang Belajar dan Berlatih
Untuk retensi dan efisiensi memori, yang terbaik adalah mempelajari tentang satu konsep dan segera melakukan pertanyaan latihan yang terkait dengan topik itu.
Untungnya, sudah ada sumber daya persiapan wawancara pengkodean yang sangat baik yang dapat melakukan ini dengan sangat mudah dan sistematis.
- Argo Monster
- Wawancara Coding Grooming: Pola dalam Pertanyaan Coding
AlgoMonster
AlgoMonster tidak hanya membantu Anda menguasai struktur data wawancara pengkodean penting dan pertanyaan algoritmik dalam panduan yang mudah dipraktikkan dan mudah dipahami, tetapi juga mensintesis pola pertanyaan wawancara umum untuk membantu Anda menguasainya. Ada fasilitas tambahan yang dapat diterapkan untuk menyelesaikan pertanyaan lain yang belum pernah Anda temui sebelumnya. Dibuat oleh para insinyur Google, ini jelas merupakan platform berkualitas tinggi untuk digunakan, dibandingkan dengan sifat penggilingan LeetCode yang tidak terstruktur. Pertanyaan struktur data dan algoritma tersedia dalam Python, Java, C#, JavaScript, C++, Ini dicakup oleh semua bahasa umum, seperti Golang.
Merawat Wawancara Coding: Pertanyaan Coding
Kursus dengan Guru Desain ini memperluas pertanyaan tentang latihan yang direkomendasikan, tetapi mendekati praktik dalam hal pola pertanyaan. Kursus ini memungkinkan Anda untuk berlatih pertanyaan yang dipilih dalam Java, Python, C++, dan JavaScript, dan juga menyediakan solusi sampel dan visualisasi langkah demi langkah untuk bahasa-bahasa ini.
4. Kodekan lembar contekan wawancara untuk menemani Anda berlatih dan menginternalisasi apa yang harus Anda lihat dan ingat
Untuk memaksimalkan apa yang Anda peroleh dari latihan Anda, saya sarankan merujuk pada lembar contekan wawancara pengkodean berikut saat Anda belajar dan berlatih:
- Teknik Wawancara Coding – Cara Menemukan Solusi dan Mengoptimalkan Pendekatan Anda
- Praktik Terbaik Wawancara Coding – Cara Bertindak dan Menampilkan Sinyal Pekerjaan Melalui Wawancara
- Lembar Contekan Penelitian Algoritma – sumber belajar terbaik untuk dibahas, harus diingat (tips, kasus sudut), dan semua struktur data dan pertanyaan latihan algoritma harus dilakukan
Teknik Wawancara Coding
Lembar contekan ini menyediakan dua hal terpenting yang perlu Anda lakukan dalam wawancara pengkodean: menemukan pendekatan untuk memecahkan masalah yang disajikan, dan sekitar 10 teknik untuk mengoptimalkan kompleksitas ruang dan waktu dari pendekatan tersebut.
Teknik-teknik ini dapat membantu Anda keluar dari kebuntuan ketika Anda ditanyai pertanyaan yang belum pernah Anda temui sebelumnya.
Praktik Terbaik untuk Wawancara Pengkodean
Perusahaan teknologi top mengevaluasi kandidat berdasarkan empat kriteria utama: komunikasi, pemecahan masalah, kompetensi teknis, dan pengujian. Untuk menunjukkan perilaku yang memenuhi kriteria ini, saya membuat Lembar Contekan Praktik Terbaik untuk Wawancara Pengkodean yang menguraikan apa yang harus dilakukan sebelum, selama, dan setelah wawancara pengkodean. Ini didasarkan pada pengalaman pribadi saya sebagai pewawancara dan pengamatan saya terhadap kandidat teratas sebagai pewawancara Facebook.
Dengan menggunakan panduan ini untuk menemani Anda melalui latihan, Anda akan dapat mengembangkan kebiasaan baik dan kenangan otot mengenai wawancara sejak awal.
Algoritma mempelajari lembar contekan untuk wawancara pengkodean
Ini sebenarnya adalah catatan yang telah saya susun secara pribadi sebagai persiapan untuk wawancara pengkodean saya sendiri. Saya telah mengaturnya menjadi satu pager sumber belajar terbaik, pertanyaan LeetCode terbaik untuk dipraktikkan, dan semua yang harus dilihat (tips, kasus sudut) dari struktur data dan algoritma. Internalisasikan konsep yang paling penting sehingga Anda bisa mendapatkan hasil maksimal dari persiapan Anda.
5. Pengenalan diri yang baik dan pertanyaan terakhir – Bersiaplah untuk mempersiapkan diri-pengenalan diri
Pengenalan diri dan pertanyaan akhir hampir selalu diperlukan di awal dan akhir wawancara rekayasa perangkat lunak. Itu sebabnya Anda harus selalu menghabiskan waktu untuk menciptakan pengenalan diri yang baik dan serangkaian pertanyaan terakhir. Mudah-mudahan, ini dapat meninggalkan kesan yang baik pada pewawancara dan mengubah segalanya menjadi pilihan Anda.
Untuk sampel dan tips pengenalan diri perangkat lunak terbaik, lihat panduan pengenalan diri ini untuk insinyur perangkat lunak. Juga, lihat panduan pertanyaan terakhir ini untuk contoh pertanyaan akhir yang terbaik untuk ditanyakan kepada insinyur perangkat lunak.
6. Simulasi Wawancara Coding – Coba mock-interview
Pengkodean di depan pewawancara bisa menjadi pengalaman yang menegangkan, terutama jika Anda belum pernah melakukannya sebelumnya – itulah mengapa sangat penting untuk mendapatkan pengalaman langsung.
interviewing.io saat ini adalah sumber wawancara teknologi tiruan terbaik di pasaran. Meskipun anonim, Anda dapat memesan wawancara pengkodean tiruan dengan insinyur Google dan Facebook asli. Anda juga dapat menjadwalkan wawancara untuk peran tertentu seperti manajemen seluler, front-end, atau teknik. Lebih baik lagi, jika Anda ingin dengan mudah beralih ke wawancara pengkodean dunia nyata, Anda dapat menonton wawancara yang direkam dan melihat seperti apa wawancara telepon itu.
Selain itu, jika Anda melakukannya dengan sangat baik dalam wawancara tiruan, Anda dapat membuka “halaman pekerjaan” di mana Anda dapat memesan wawancara langsung dengan perusahaan top seperti Uber, Lyft, Quora, dan Asana. Saya menggunakan interviewing.io sebagai pewawancara dan pewawancara, dan pengalaman itu terasa luar biasa.
7. (Jika waktu memungkinkan) Pola Pertanyaan Wawancara Teknis Utama Pola pertanyaan internalisasi
Banyak solusi wawancara pengkodean sebenarnya berisi serangkaian pola penting yang serupa, dan mempelajarinya dapat membantu Anda memecahkan masalah ekor panjang yang berada di luar lingkup pertanyaan wawancara pengkodean yang umum diajukan.
argo Monster
AlgoMonster adalah platform luar biasa yang dibuat oleh para insinyur Google – dari sumber daya di Internet. Dengan menggunakan pendekatan berbasis data, kami memadatkan pertanyaan dari Wawancara Pengkodean Rekayasa Perangkat Lunak menjadi serangkaian pola utama dan menyusunnya menjadi kursus yang terstruktur dan mudah dicerna. Bayangkan LeetCode, tetapi gunakan hanya pola penting yang perlu Anda ketahui.
Merawat Wawancara Coding: Pertanyaan Coding pola
Kursus dengan Guru Desain ini memperluas pertanyaan tentang latihan yang direkomendasikan, tetapi mendekati praktik dalam hal pola pertanyaan. Kursus ini akan mempraktikkan pertanyaan-pertanyaan terpilih dalam Java, Python, C++, dan JavaScript, dan juga akan memberikan contoh solusi dalam bahasa-bahasa ini.