Panduan untuk siswa · Musim gugur hingga musim dingin pada tahun sebelum tahun terakhirmu
Wawancara magang rekayasa perangkat lunak
Sebagian besar wawancara magang rekayasa perangkat lunak dimulai dengan penilaian coding online, lalu satu atau dua wawancara coding langsung. Masing-masing biasanya membahas satu atau dua soal beserta pertanyaan lanjutannya, serta beberapa pertanyaan tentang pengalamanmu. Pewawancara melihat bagaimana kamu memahami masalah, menemukan solusi yang berfungsi, menjelaskan kompleksitas waktu dan ruangnya, serta mengujinya. Mereka juga berharap bisa memberikan petunjuk.
Tahap-tahapnya
Banyak perusahaan besar memulai dengan penilaian online, yaitu tes coding berwaktu yang dikerjakan di rumah. Misalnya, Amazon mengatakan bahwa penilaian online untuk magangnya memakan waktu sekitar 90 menit dan menilai kemampuan coding, pemecahan masalah teknis, serta Leadership Principles mereka. Bagian coding memakan waktu sekitar 70 menit. Setelah itu, ada wawancara langsung melalui video. Kamu menyelesaikan soal sementara seorang engineer mengamati dan mengajukan pertanyaan.
Panduan Meta untuk wawancara magangnya, yang terakhir diperbarui pada 2022, menjelaskan dua tahap: penyaringan lewat telepon, lalu wawancara lanjutan. Ekspektasi untuk keduanya sama, dan sekitar 30 hingga 35 menit dari tiap wawancara digunakan untuk mengerjakan coding satu atau dua soal. Google mengatakan bahwa kandidat mungkin diminta menyelesaikan latihan coding, setiap kandidat dinilai berdasarkan kriteria yang jelas, dan tidak ada teka-teki logika. Detailnya bisa berubah, jadi baca halaman perusahaan itu sendiri saat kamu mendapat undangan.
Hal yang dinilai pewawancara
Kebanyakan yang dinilai adalah bagaimana kamu mendapatkan jawabannya. Google mengatakan pewawancara memperhatikan proses berpikirmu sama seperti jawabannya dan akan mengajukan pertanyaan lanjutan. Panduan Meta meminta kamu membahas kompleksitas big-O dari pendekatanmu dan mengajukan pertanyaan untuk memperjelas soal. Panduan itu juga mengatakan bahwa lebih baik memiliki kode yang berfungsi tetapi belum optimal daripada hanya punya ide. Jika kamu buntu, mulailah dengan solusi brute force lalu tingkatkan. Mendapat petunjuk dari pewawancara bukan hal buruk.
Dalam praktiknya, ada lima hal: memahami masalah (menyatakannya kembali, menanyakan kasus tepi dan ukuran input), mendapatkan solusi yang benar, menjelaskan kompleksitas waktu dan ruangnya, memperbaikinya jika bisa, dan mengujinya dengan menelusuri contoh serta kasus tepi secara manual. Komunikasi diperlukan dalam semua hal ini, karena pewawancara hanya bisa menilai apa yang kamu sampaikan.
Contoh pengerjaan: two sum
Diberi daftar angka dan sebuah target, kembalikan posisi dua angka yang jumlahnya sama dengan target. Mulailah dengan bertanya: apakah jawabannya bisa lebih dari satu, apakah angka yang sama boleh digunakan dua kali, apakah daftarnya sudah terurut, dan berapa panjangnya? Lalu jelaskan pendekatan brute force dengan bersuara: periksa setiap pasangan. Cara ini benar, tetapi untuk daftar berisi n angka, waktunya sebanding dengan n kuadrat.
Lalu tingkatkan pendekatannya. Saat menelusuri daftar, simpan hash map yang memetakan setiap angka yang sudah kamu lihat ke posisinya. Untuk setiap angka baru, periksa apakah target dikurangi angka itu sudah ada di map. Cara ini menemukan pasangan dalam satu kali penelusuran, dengan waktu sebanding dengan n, tetapi membutuhkan memori tambahan sebanding dengan n. Terakhir, uji dengan bersuara menggunakan contoh kecil, daftar yang tidak memiliki jawaban, dan daftar dengan angka berulang. Jelaskan juga apa yang akan kamu ubah jika daftarnya sudah terurut (gunakan dua pointer dari kedua ujung tanpa memori tambahan).
Topik yang perlu kamu ketahui dan bahasa pemrograman yang digunakan
Soal magang kebanyakan menggunakan materi dari mata kuliah pertama tentang struktur data dan algoritma: array dan string, hash map dan set, stack dan queue, linked list, tree dan graph dengan breadth-first search dan depth-first search, pengurutan dan binary search, rekursi, serta pemrograman dinamis sederhana. Mengetahui biaya waktu dan ruang setiap operasi sama pentingnya dengan memahami strukturnya.
Gunakan bahasa pemrograman yang paling kamu kuasai. Panduan magang Meta menyarankan penggunaan bahasa yang paling nyaman bagimu. Amazon menyarankan agar kamu mempelajari kembali dan berlatih menggunakan bahasa yang akan kamu pakai untuk penilaiannya. Python umum digunakan karena penulisannya singkat, tetapi kefasihan lebih penting daripada pilihan bahasanya.
Berpikir sambil berbicara dan AI dalam wawancara
Sampaikan apa yang sedang kamu pikirkan, bahkan jika itu “Saya belum yakin”, karena diam tidak memberi pewawancara apa pun untuk dinilai dan tidak memberi mereka kesempatan untuk membantu. Saat mendapat petunjuk, gunakan dan jelaskan bagaimana petunjuk itu mengubah pendekatanmu. Berlatih sendirian terasa aneh. Karena itu, berlatih dengan teman atau merekam dirimu saat mengerjakan soal sambil berbicara sangat membantu.
Aturan perusahaan tentang AI berbeda-beda, jadi periksa sebelum hari wawancara. Google mengatakan alat AI tidak diizinkan selama wawancaranya, sedangkan Meta mengatakan banyak wawancaranya sekarang menyertakan asisten AI yang terintegrasi dalam lingkungan wawancara dan diharapkan digunakan oleh kandidat. Jika tidak diizinkan, menggunakannya berarti menyontek. Jika AI menjadi bagian dari wawancara, cara kamu memeriksa dan memperbaiki hasilnya termasuk dalam hal yang dinilai.
Pertanyaan tentang perilaku
Sebagian besar wawancara teknis mencakup beberapa pertanyaan tentang pengalamanmu: proyek yang kamu banggakan, bug yang sulit kamu atasi, atau saat kamu berbeda pendapat dengan rekan tim. Amazon menilai kandidat berdasarkan Leadership Principles mereka, yang diawali dengan customer obsession, yaitu gagasan bahwa pemimpin memulai dari kebutuhan pelanggan lalu bekerja mundur. Jadi, baca prinsip-prinsip tersebut dan siapkan contoh untuk prinsip-prinsip utamanya.
Dengan akun, Interview prep cookie mengadakan wawancara latihan untuk pekerjaan yang kamu sebutkan dengan pewawancara AI. Pewawancara mengajukan satu pertanyaan setiap kali, menindaklanjuti jawabanmu seperti pewawancara sungguhan, lalu membuat laporan untuk setiap jawaban di akhir. Fitur ini menggunakan kredit dan menampilkan perkiraan terlebih dahulu.
Tempat untuk memeriksa
- Meta: cara sukses dalam wawancara magang rekayasa perangkat lunak
- Meta: persiapan wawancara rekayasa perangkat lunak
- Meta: proses perekrutan
- Google: cara kami merekrut
- Google: tips wawancara
- Amazon: penilaian online SDE untuk pelajar
- Amazon: Leadership Principles
Diperiksa berdasarkan sumber ini pada . Aturannya berubah dari tahun ke tahun, jadi jika ada perbedaan, ikuti halaman di atas.
Pertanyaan umum
Apa itu penilaian online?
Tes coding berwaktu yang dikerjakan di rumah dan digunakan banyak perusahaan sebelum wawancara langsung. Amazon mengatakan bahwa penilaian untuk magangnya memakan waktu sekitar 90 menit, kebanyakan untuk coding.
Bahasa pemrograman apa yang sebaiknya saya gunakan dalam wawancara coding?
Bahasa yang paling kamu kuasai. Meta menyarankan bahasa yang paling nyaman kamu gunakan, sedangkan Amazon menyarankan berlatih dengan bahasa yang akan kamu pakai. Jadi, kefasihan lebih penting daripada bahasa yang dipilih.
Seberapa sulit soal coding untuk magang?
Biasanya, soal didasarkan pada materi tahun pertama tentang struktur data dan algoritma: array, hash map, tree, graph, pengurutan, dan rekursi, dengan pertanyaan lanjutan yang meminta kamu memperbaiki atau mengembangkan solusi.
Bagaimana jika saya buntu saat wawancara coding?
Jelaskan bagian yang membuatmu buntu, coba solusi brute force terlebih dahulu lalu tingkatkan, dan gunakan petunjuk apa pun yang diberikan. Panduan Meta mengatakan bahwa mendapat petunjuk dari pewawancara bukan hal buruk.
Bisakah saya menggunakan AI dalam wawancara coding?
Tergantung perusahaannya. Google mengatakan alat AI tidak diizinkan selama wawancaranya; Meta mengatakan banyak wawancaranya menyertakan asisten AI terintegrasi yang diharapkan digunakan oleh kandidat.