Dengan booming teknologi besar kedua di Silicon Valley, para insinyur sangat diminati oleh para startup dan raksasa teknologi. Bagi mereka yang memiliki latar belakang teknik atau sedang mempelajari ilmu komputer, dunia adalah tiram Anda saat ini.
Yang sedang berkata, perusahaan tidak hanya memberikan pekerjaan. Pemrogram masih perlu melalui proses wawancara khusus - termasuk wawancara teknis yang terkadang ditakuti.
Mempersiapkan ini bisa menjadi cobaan yang membingungkan. Haruskah Anda mempelajari proyek teknis tertentu atau umumnya menyegarkan banyak topik? Haruskah Anda berlatih di komputer atau dengan teman?
Sebagai insinyur ketiga di Pocket Gems, yang memiliki sekitar 165 karyawan teknis, saya telah melakukan ratusan wawancara telepon dan di tempat. Selama waktu ini, saya telah belajar banyak tentang bagaimana mempersiapkan diri dengan benar. Berikut adalah tips yang Anda perlukan untuk melakukan wawancara teknis berikutnya.
Fokus pada Fundamental
Pewawancara terutama akan mengajukan pertanyaan tentang dasar-dasar Anda: struktur data, analisis kompleksitas algoritmik, desain kelas, dan sejenisnya. Ini akan menjadi pertanyaan baik secara langsung tentang fundamental (misalnya, gunakan X untuk melakukan Y) dan pertanyaan yang akan Anda gunakan fundamentalnya (lebih lanjut tentang itu di bawah).
Pikirkan fundamental sebagai alat di kotak peralatan Anda. Mereka akan tetap sama tidak peduli apa pun teknologi baru yang luar biasa. Dengan dasar-dasar yang kuat, Anda akan lebih siap untuk mengatasi masalah terbuka - jenis masalah yang kami dan banyak startup lainnya selesaikan setiap hari. Dengan berfokus pada fundamental, pewawancara dapat menghabiskan lebih sedikit waktu untuk mengatur pertanyaan wawancara dan lebih banyak waktu untuk melihat bagaimana Anda berpikir.
Misalnya, Anda mungkin ditanya sesuatu seperti: Anda diberi pohon biner dan dua simpul di pohon. Temukan leluhur umum terendah dari dua simpul yang diberikan dalam waktu O (n).
Melalui pertanyaan ini, pewawancara ingin melihat seberapa baik Anda dapat mengkomunikasikan proses dan solusi pemikiran Anda. Bagaimana Anda memikirkan masalahnya, mengatur pikiran Anda, dan mengomunikasikan jawaban Anda seringkali sama pentingnya dengan kesimpulan Anda. Kami bekerja di lingkungan yang kompleks dan selalu berubah dan membutuhkan orang-orang yang dapat memecahkan masalah sulit dan secara efektif berkomunikasi dengan rekan tim teknis dan non-teknis mereka.
Untuk area wawancara ini, Anda harus nyaman mendiskusikan hal-hal seperti string, array, sintaks dasar, tipe data, daftar tertaut, pohon, grafik, tumpukan, antrian, dan tabel hash. Oh, dan pastikan Anda dapat menjawab FizzBuzz tanpa mengedipkan mata.
Bersiaplah untuk Memecahkan Berbagai Hal dengan Berbagai Cara
Setiap fundamental Anda memiliki pro dan kontra dan menawarkan solusi unik untuk jenis masalah tertentu. Setelah pewawancara mengajukan pertanyaan hanya pada dasar-dasar Anda, mereka cenderung akan melihat bagaimana Anda dapat menggunakannya dalam praktik. Hal ini dicapai dengan mengajukan pertanyaan terbuka yang dapat diselesaikan dengan berbagai cara.
Contoh pertanyaan di sini adalah: Anda diberi persamaan aritmatika sebagai string. Persamaan ini akan memiliki satu digit 0-9, penjumlahan, pengurangan, perkalian, dan tanda kurung. Tulis fungsi yang menggunakan persamaan ini dan hitung jawaban yang benar. Input contoh termasuk "1 + 1" dan "2 * (1 + 9) - ((2 + 5) -9").
Seperti sebelumnya, pewawancara ingin melihat bagaimana Anda menguraikan pertanyaan terbuka dan proses pemikiran Anda dalam memilih solusi Anda. Yang paling penting, mereka ingin melihat bahwa Anda dapat secara efektif mengkomunikasikan masalah yang kompleks.
Tidak peduli apa pertanyaannya atau solusi apa yang Anda pilih, pastikan untuk berpikir keras! Jika Anda memiliki cara berbeda untuk menyelesaikan masalah, bicarakan opsi sebelum memutuskan mana yang akan digunakan. Ini membantu pewawancara melihat dan memahami proses pemikiran Anda. Juga, pewawancara dapat merekomendasikan satu solusi daripada yang lain karena dia tahu bahwa yang lain mungkin memiliki jebakan tertentu atau mungkin berada di luar lingkup wawancara.
Jangan takut untuk bertanya jika ada sesuatu yang tidak jelas atau tidak ada banyak detail yang disediakan. Ini menunjukkan Anda juga berpikir - dan memberi pewawancara perasaan tentang bagaimana Anda akan bekerja dengan orang lain. Pastikan Anda mengajukan pertanyaan klarifikasi untuk sepenuhnya memahami pertanyaan dan bahwa Anda tidak memperbesar cakupan masalah (misalnya, Apa beberapa contoh input? Apakah saya harus khawatir tentang pembagian dengan 0? Apakah saya harus khawatir tentang penghematan siang hari?)
Akhirnya, pastikan Anda menjalankan beberapa kasus uji secara verbal sebelum Anda mengatakan Anda selesai. Ini memungkinkan Anda untuk memeriksa kode dan menunjukkan kepada pewawancara bahwa Anda sedang memeriksa kode Anda. Semudah melakukan wawancara kerja, sayangnya kami tidak dapat membaca pikiran Anda.
Jadi, saat Anda bersiap, berlatih menyelesaikan pertanyaan dengan alat yang berbeda dari kotak alat Anda sehingga Anda mengembangkan intuisi tentang hal itu. Ketahui kapan harus menggunakan masing-masing alat Anda sehingga Anda tidak akan tersandung selama wawancara. Dan pastikan Anda berlatih sepenuhnya menggambarkan proses pemikiran Anda - ini bisa menjadi bagian tersulit bagi coders yang terbiasa bekerja dalam isolasi.
Berlatih, Berlatih, Berlatih
Semakin banyak Anda berlatih, semakin siap Anda untuk wawancara pengkodean teknis. Hal ini berlaku untuk sebagian besar hal tetapi sangat relevan dengan wawancara teknis - mereka benar-benar mengharuskan Anda untuk menghangatkan otak Anda.
Berikut adalah beberapa tips untuk membantu Anda memaksimalkan waktu latihan Anda:
- Pastikan Anda mensimulasikan lingkungan wawancara. Beri diri Anda batas waktu untuk masalah. Jika Anda akan melakukan wawancara telepon, berlatihlah di Stypi dan Google Documents. (Saya tahu sendiri, tidak memiliki autocomplete dan sintaks telah membuat saya tersandung dalam wawancara telepon.) Jika Anda akan melakukan wawancara secara langsung, berlatih melakukan masalah di atas kertas atau di papan tulis.
- Mintalah seorang teman non-teknis menanyakan pertanyaan wawancara kepada Anda, dan ajak dia menjawab jawaban Anda. Jika Anda bisa menjelaskannya kepadanya, saya yakin Anda bisa menjelaskannya kepada pewawancara teknis Anda.
- Jangan merasa Anda selingkuh jika Anda menggunakan beberapa alat persiapan yang ada di luar sana. Mereka sering menawarkan wawasan dan latihan pertanyaan yang luar biasa. Favorit saya adalah situs web seperti TopCoder dan buku Head First . Beberapa buku lain yang berbicara lebih banyak tentang proses wawancara adalah Wawancara Pemrograman yang Dipaparkan dan Memecahkan Wawancara Kode .
Wawancara pengkodean teknis mungkin tampak menakutkan, tetapi dengan jenis praktik fokus yang tepat, Anda akan siap untuk melakukannya. Ingatlah untuk fokus pada roti dan mentega, dasar-dasar, dan banyak berlatih. Ikuti tips di atas, dan Anda akan siap untuk wawancara pengkodean teknis berikutnya.
Ingin info lebih lanjut? Baru-baru ini saya mempresentasikan tentang hal ini di Konferensi Karir Rekayasa / Teknologi UC Berkeley. Lihat slide saya dari pembicaraan di bawah ini untuk lebih banyak pemikiran dan sumber daya!