9 Pertanyaan Wawancara Pengkodean Umum Dan Keterampilan Yang di Uji – Pertanyaan pengkodean teknis adalah beberapa aspek yang paling menakutkan dari proses wawancara pengembangan perangkat lunak. Meskipun pertanyaannya mungkin terlihat sangat berbeda untuk perusahaan yang berbeda, sebagian besar perusahaan tunduk pada beberapa versi yang diwawancarai.
9 Pertanyaan Wawancara Pengkodean Umum Dan Keterampilan Yang di Uji
binaryjs – Coding pertanyaan wawancara tidak dimaksudkan untuk menjadi alat teror. Setiap pertanyaan yang diajukan pewawancara mencoba mengukur sesuatu yang spesifik tentang kandidat, apakah itu kecakapan pengkodean sederhana, pengetahuan sistem, keakraban dengan prinsip-prinsip desain, atau hanya kemampuan untuk berkolaborasi dengan orang lain — termasuk pewawancara.
Built In meminta tiga orang yang akrab dengan proses rekrutmen rekayasa perangkat lunak untuk berbicara tentang sembilan pertanyaan wawancara pengkodean umum dan keahlian yang mereka ukur. Pertanyaan bersumber dari situs web wawancara pengkodean praktik populer seperti LeetCode, serta buku teks persiapan wawancara pengkodean.
Baca Juga : Tujuh Pengembang Platform Kode Rendah Harus Tahu
Pewawancara terkadang memiliki pendapat yang berbeda tentang masalah pengkodean dan keefektifannya dalam menguji keterampilan tertentu, tetapi satu hal yang jelas — perusahaan menginginkan kandidat yang terlibat dengan pewawancara, meminta klarifikasi, dan tidak menyerah. Hanya bekerja dengan pewawancara dan biarkan semua pengetahuan dan kreativitas Anda bersinar. Kemungkinan besar, itulah yang mereka cari dari seorang kandidat.
1. Gabungkan dua daftar tertaut yang diurutkan dan kembalikan sebagai daftar yang diurutkan.
Josh Tucholski, direktur kurikulum dan instruksi di coding bootcamp Tech Elevator
Untuk keterampilan apa tes ini? Sering kali, Anda tidak harus menghadapi masalah khusus dengan daftar tertaut. Tetapi Anda menghadapi masalah seperti yang ditanyakan, di mana mungkin pengembang harus mendapatkan data dari dua API terpisah dan menemukan cara untuk menyajikannya bersama-sama dengan cara yang diurutkan.
Mereka mungkin memecahkan masalah yang sama persis, hanya saja tidak menggunakan daftar tertaut. Kita juga dapat menggeneralisasi masalah ini dengan mengatakan, “Baiklah, kami memiliki dua daftar angka yang diurutkan. Bagaimana kita akan memproduksi yang ketiga di mana itu mencakup semuanya? ”
Apakah ini pertanyaan wawancara yang bagus? Belum ada skenario dalam karir pengembangan profesional saya di mana saya menemukan daftar tertaut, tetapi algoritme adalah yang sangat penting di sini. Jika saya memberi Anda dua hal dalam urutan yang diurutkan, dapatkah Anda menemukan cara untuk menggabungkannya dalam urutan lain yang diurutkan?
Beberapa perusahaan yang mungkin tidak begitu akrab dengan pilihan pendidikan alternatif untuk pengembangan perangkat lunak, atau yang lebih berakar secara mendasar dalam memecahkan masalah algoritmik yang mendalam, mungkin memanfaatkan pertanyaan seperti ini.
Di pasar tempat kami berada di Tech Elevator di Midwest, kami sebenarnya tidak memiliki banyak pertanyaan seperti ini. Dari kelas yang terdiri dari 40 atau 50 siswa, mungkin ada satu siswa yang diberi pertanyaan dengan daftar tertaut, misalnya.
2. Diberikan angka romawi, ubah menjadi bilangan bulat.
Cody Daig, mentor teknis di Galvanize
Untuk keterampilan apa tes ini? Begitu Anda melihat solusinya, akan sangat mudah untuk mengetahuinya namun, mendapatkan solusi itu seringkali merupakan perjuangan bagi kebanyakan orang. Karena Anda harus memikirkan tidak hanya di mana Anda berada, tetapi nilai selanjutnya dalam angka Romawi itu.
Jadi, misalnya, empat adalah “IV.” Jadi Anda tidak bisa hanya berkata, “‘Aku,’ itu satu, ‘V,’ itu lima boom, kita di enam!” Sebenarnya, Anda berada di empat. Jadi bagaimana Anda membedakan antara menambahkan dan mengurangi tidak hanya melihat di mana Anda berada tetapi di mana Anda akan pergi? Jadi ada dua bagian yang berbeda di sana.
Apakah ini pertanyaan wawancara yang bagus? Itu tergantung pada pengetahuan orang yang diwawancarai tentang pertanyaan di sini. Saya berasumsi bahwa sebagian besar waktu orang tahu angka Romawi, dan itu bisa menjadi asumsi yang salah, karena tidak semua orang benar-benar tahu atau mengerti angka Romawi.
Jadi jika Anda masuk ke dalamnya bahkan tidak mengetahui angka Romawi, itu adalah tantangan. Secara umum, saya akan mengatakan Anda tidak terlalu dirugikan, selama Anda jujur dan jujur, seperti, “Hei, saya belum pernah bekerja dengan angka Romawi sebelumnya.”
3. Diberikan array bilangan bulat, setiap elemen muncul dua kali kecuali satu. Temukan yang itu.
Anil Kadimisetty, direktur teknik di Chainalysis
Untuk keterampilan apa tes ini? Tidak setiap kandidat wawancara yang terpilih benar-benar menyelesaikan masalah. Itu sebenarnya tidak terlalu penting. Karena di dunia nyata, satu individu tidak tahu jawaban atas semua yang mereka coba pecahkan. Anda hanya akan berhasil jika Anda dapat berkolaborasi dengan orang lain, mendapatkan umpan balik dari orang lain, dan menindaklanjutinya.
Ketika Anda terjebak, apa yang Anda lakukan? Jika seseorang memberi Anda petunjuk, apakah Anda merespons petunjuk dengan baik? Itu berarti Anda mungkin hebat dalam berkolaborasi nanti ketika Anda datang ke sini.
Apakah ini pertanyaan wawancara yang bagus? Di Chainalysis, kami membahas tentang cryptocurrency. Dalam sebuah wawancara, jika kami bertanya tentang itu — karena itulah yang kami lakukan setiap hari kebanyakan orang akan gagal, karena tidak ada yang benar-benar tahu tentang cryptocurrency.
Jadi yang Anda lakukan adalah, Anda menggunakan cara paling abstrak untuk menanyakan hal-hal itu tanpa menyebutkan topik, yang spesifik domain. Jika Anda mengabstraksikan pengetahuan domain darinya, Anda akan menemukan masalah dasar seperti ini. Jadi itulah yang ini. Ini sebenarnya membuat bilah perekrutan umum di semua kandidat dengan pengalaman domain yang berbeda. Ini adalah penyeimbang yang bagus.
4. Diberikan pohon biner, cetak tampilan bawah dari kiri ke kanan.
Josh Tucholski, Lift Teknologi
Untuk keterampilan apa tes ini? Banyak orang akan memunculkan pohon ketika mereka berbicara tentang struktur dan desain basis data — ini tidak seperti tabel dan kunci, ini lebih seperti indeks yang mendasari dan bagaimana itu dikelola. Anda masuk ke ranah administrator basis data, atau pengembang basis data yang sangat terspesialisasi dalam menyempurnakan basis data.
Jika saya memiliki siswa yang menghadapi masalah ini, saya akan mendorong mereka untuk bekerja dengan pewawancara, daripada menyerah begitu saja. Mereka mungkin pada dasarnya ingin turun ke tingkat bagaimana mereka akan menyusun masalah ini dalam kode mereka. Mereka mungkin berbicara tentang kelas yang mungkin mereka gunakan atau berbagai kumpulan data lain yang telah mereka kerjakan dan menjelaskan bagaimana mereka dapat memecahkan masalah.
Apakah ini pertanyaan wawancara yang bagus? Seseorang yang memasuki posisi junior sering kali tidak memiliki pengalaman profesional sebelumnya, di mana mereka dapat menonjol dan berkata, “Inilah yang mampu saya lakukan.”
Jadi, terkadang kita mengabaikan pertanyaan-pertanyaan ini untuk menunjukkan bahwa para kandidat memiliki pemahaman yang mendasar? Sayangnya, pertanyaan-pertanyaan ini mengasumsikan bahwa seseorang telah memiliki pendidikan dasar ilmu komputer.
Ada cara lain untuk mengukurnya. Mintalah mereka berbicara melalui proyek yang secara khusus mereka kerjakan, atau beri mereka beberapa kode dan minta mereka untuk menjelaskannya kepada Anda, karena hal itu membuat kemampuan komunikasi mereka untuk menjelaskan apa yang dilakukan kode. Ketika mereka menelusuri kode, apakah mereka mengabaikan beberapa hal? Atau apakah mereka menjadi sangat spesifik?
5. Diberikan string ekspresi x, periksa apakah pasangan dan orde “{”,“}”,“(”,“)”,“[”,“]” benar dalam ekspresi. Misalnya, fungsi harus mengembalikan “true” untuk “[()]{}{[()()]()}” dan “false” untuk “[(])”.
Cody Daig, Galvanis
Untuk keterampilan apa tes ini? Semua yang Anda gunakan untuk menyelesaikan masalah ini adalah tumpukan. Setelah Anda menyadari bahwa Anda harus menggunakan tumpukan, saya akan mengatakan itu pertanyaan yang cukup mudah. Berpikir dengan gaya menggunakan struktur data yang berbeda dari yang mungkin Anda pikirkan untuk menyelesaikannya, itulah tantangannya.
Apa yang Anda lakukan adalah, ketika Anda melihat tanda kurung buka, kurung siku atau kurung kurawal, Anda menambahkannya ke tumpukan. Dan kemudian ketika Anda melihat sisi penutup dari pasangan, maka Anda harus keluar dari tumpukan. Dan jika penutup cocok dengan pembukaan, bagus. Jika tidak, maka itu salah atau tidak valid.
Apakah ini pertanyaan wawancara yang bagus? Ini sebenarnya salah satu masalah favorit saya. Memikirkannya dari perspektif struktur data, saya pikir ini adalah keterampilan yang sangat praktis meskipun Anda tidak perlu menulis algoritme untuk melihat apakah tanda kurung seimbang.
Tetapi menerapkan pengetahuan untuk memecahkan masalah, itulah kuncinya di sini. Menyadari bahwa ada struktur data di luar sana untuk membantu memecahkan masalah ini dengan sangat mudah, yang sering digunakan ketika benar-benar membangun aplikasi dan memastikan bahwa Anda menggunakan struktur data seefisien mungkin untuk mencapai apa pun yang ingin Anda capai.
6. Diberikan dua angka M dan N, temukan posisi bit paling kanan yang berbeda dalam representasi biner angka.
Anil Kadimisetty, Chainalysis
Untuk keterampilan apa tes ini? Ini berguna ketika Anda melakukan pekerjaan pada sistem tingkat rendah. Karena ketika Anda bekerja pada tingkat yang sangat rendah, Anda perlu memahami bagaimana segala sesuatu direpresentasikan dalam memori fisik yang sebenarnya.
Seperti ketika Anda mengetik nama Anda, bagaimana ini disimpan di disk? Bagaimana ini disimpan dalam memori? Itu semua disimpan dalam representasi biner dari angka-angka. Jika Anda memahaminya, Anda dapat menulis bagian kode yang sebenarnya melakukan pekerjaan untuk menyimpan informasi dalam memori dengan cara yang sangat tepat dan efisien.
Apakah ini pertanyaan wawancara yang bagus? Ada banyak hal yang membutuhkan barang-barang tingkat rendah. Katakanlah Anda membuat iPhone bukan aplikasi iPhone Anda akan mencapai level yang sangat rendah pada saat itu. Jika Anda memahami cara memecahkan masalah ini, jika Anda dapat berdiskusi seputar topik tersebut, kami dapat berasumsi bahwa Anda pandai dalam hal-hal tingkat rendah. Itu semacam di mana itu berguna. Jadi ini tidak berlaku untuk setiap perusahaan, tetapi berguna untuk perusahaan yang melakukan lebih banyak hal tingkat rendah.
7. Apa runtime (BigO) dari kode berikut?
Josh Tucholski, Lift Teknologi
Untuk keterampilan apa tes ini? Istilah umum lainnya yang digunakan adalah “kompleksitas algoritmik.” Pertanyaannya bisa jadi: “Jika saya akan memberi seseorang blok kode, dapatkah Anda memberi tahu saya skenario terburuk apa yang harus saya pertimbangkan?” Karena itulah arti BigO dan kompleksitas algoritmik.
Itu semacam isyarat bagi orang yang diwawancarai untuk memikirkan, “Apa saja skenario terburuk atau kasus tepi yang harus saya waspadai?” Dan itu penting, karena hal-hal itu, meskipun mungkin hanya satu atau dua persen dari jumlah input, itu adalah hal-hal yang sering membuat program kita macet.
Apakah ini pertanyaan wawancara yang bagus? Sebagai pengembang perangkat lunak, kita semua memiliki kecenderungan, ketika diberikan masalah, untuk segera melompat ke semua “bagaimana jika” dan kasus tepi yang harus kita khawatirkan — terutama setelah kita mengalami beberapa kali burn. Kami cenderung mencoba dan memecahkan masalah dan mencegah skenario terburuk itu.
Mampu bertanya dalam bahasa Inggris yang sederhana, “Apa yang dilakukan kode ini dan apa skenario terburuknya?” adalah cara yang lebih mudah untuk berkomunikasi daripada mengingat perbedaan antara BigO(n) atau linier atau logaritmik atau n 2 atau waktu eksponensial, karena Anda mengandalkan seseorang yang telah terpapar, sekali lagi, pada jenis pendidikan formal yang mencakup itu kandungan.
8. Rancang tempat parkir menggunakan prinsip berorientasi objek.
Cody Daig, Galvanis
Untuk keterampilan apa tes ini? Di sini kita melihat, “Bisakah Anda memikirkan cara mengambil sesuatu yang awalnya bukan objek, dan mengubahnya menjadi serangkaian objek untuk mencapai apa yang ingin Anda capai?” Ini akan sedikit berbeda menurut bahasa, tetapi pada akhirnya ini adalah kelas. Ini masalah untuk membuat Anda memikirkan dan memecah kelas.
Tentu, Anda memiliki tempat parkir dan Anda memiliki tempat parkir. Tetapi jika kita memiliki kebutuhan pemrograman untuk ini, kita mungkin perlu memikirkan, apakah ada ruang yang ditempati? Artinya, Anda harus memiliki konsep kelas kendaraan, dan kendaraan harus menempati ruang. Anda dapat memiliki konsep pintu masuk, dan tempat parkir bahkan dapat memiliki lebih dari satu lantai. Jadi itu benar-benar tergantung pada apakah Anda dapat mengambil masalah ini dan memecahnya dan memikirkan semua kemungkinan hal yang perlu dipertimbangkan ketika membangun tempat parkir .
Baca Juga : Perbedaan Linux dan Windows Yang Harus Anda Ketahui
Apakah ini pertanyaan wawancara yang bagus? Sangat umum untuk memiliki pertanyaan yang tidak jelas, tetapi juga dapat diterima bagi orang yang diwawancarai untuk kembali dan mengajukan pertanyaan. “Apa yang kamu cari dari masalah ini? Apakah kita berbicara tentang tempat parkir di Walmart? Apakah kita berbicara tentang tempat parkir dengan beberapa lantai?” Anda dapat mengajukan pertanyaan untuk menentukan seberapa kompleks yang Anda butuhkan untuk membuatnya. Tapi itu adalah bagian yang sangat valid bagi mereka untuk hanya melihat proses berpikir Anda dan hal-hal yang mungkin perlu Anda pertimbangkan.
9. Jika Anda mendesain perayap web, bagaimana Anda menghindari loop tak terbatas?
Anil Kadimisetty, Chainalysis
Untuk keterampilan apa tes ini? Ada dua sudut untuk pertanyaan ini. Salah satu sudutnya adalah, dapatkah Anda merancang sistem untuk memecahkan masalah bisnis? Anda memecah masalah menjadi bagian-bagian kecil, seperti cara mengikuti langkah-langkah untuk memecahkan masalah, cara membangun sistem dengan berbagai komponen di dalamnya, dan itulah cara kami memecahkan aplikasi kehidupan nyata.
Apakah ini pertanyaan wawancara yang bagus? Untuk yang satu ini, Anda biasanya tidak mengharapkan untuk mengajukan pertanyaan yang didengar kandidat untuk pertama kalinya. Kami menginginkan sesuatu yang sudah mereka ketahui mereka mungkin harus tahu jawabannya.
Kami ingin berdiskusi tentang, apa saja berbagai cara untuk menyelesaikan masalah ini? Apa praktik terbaik? Karena itu akan memberi tahu kita seberapa banyak yang telah mereka pelajari, dan itu menunjukkan bagaimana mereka mempelajari hal-hal baru dan mengikuti perkembangan terkini.