Dengan ledakan teknologi kedua terbesar di Silicon Valley, para jurutera telah mendapat permintaan yang sangat tinggi oleh para pemula dan gergasi teknologi. Bagi mereka yang mempunyai latar belakang kejuruteraan atau belajar sains komputer, dunia adalah tiram anda sekarang.
Bahawa dikatakan, syarikat tidak hanya memberi pekerjaan. Pengaturcara masih perlu melalui proses temuduga khusus-termasuk wawancara teknikal yang kadang-kadang ditakuti.
Menyediakan untuk ini boleh mengelirukan pesakit. Sekiranya anda mengkaji projek teknikal tertentu atau secara amnya menyegarkan banyak topik? Sekiranya anda berlatih di komputer atau dengan rakan?
Sebagai jurutera ketiga di Pocket Gems, yang mempunyai kira-kira 165 kakitangan teknikal, saya telah menjalankan beratus-ratus telefon dan wawancara di tempat. Pada masa ini, saya telah belajar banyak tentang bagaimana untuk mempersiapkan diri dengan betul. Berikut ialah petua yang anda perlukan untuk membuat wawancara teknikal seterusnya.
Fokus pada Asas
Pewawancara terutamanya akan menanyakan soalan tentang asas anda: struktur data, analisis kerumitan algoritmik, reka bentuk kelas, dan sebagainya. Ini akan menjadi soalan kedua-dua secara langsung mengenai asas-asas (contohnya, gunakan X untuk melakukan Y) dan soalan-soalan yang anda akan menggunakan asas anda (lebih banyak di bawah).
Fikirkan asas sebagai alat di dalam kotak peralatan anda. Mereka akan tetap sama tidak peduli apa pun teknologi baru hebat yang keluar. Dengan asas yang kuat, anda akan lebih bersedia untuk menangani masalah terbuka-jenis masalah yang kami dan beberapa pemula lain menyelesaikan pada hari demi hari. Dengan memberi tumpuan kepada asas-asas, penemuduga boleh menghabiskan masa yang sedikit untuk menubuhkan soalan wawancara dan lebih banyak masa untuk melihat bagaimana anda berfikir.
Sebagai contoh, anda mungkin akan ditanya seperti: Anda diberi pokok binari dan dua nod dalam pokok itu. Cari nenek moyang paling rendah kedua nod yang diberikan dalam masa O (n).
Melalui soalan ini, pewawancara ingin melihat sejauh mana anda dapat menyampaikan proses pemikiran dan penyelesaian anda. Bagaimana anda berfikir melalui masalah itu, mengatur pemikiran anda, dan menyampaikan jawapan anda selalunya sama pentingnya dengan kesimpulan anda. Kami bekerja dalam persekitaran yang kompleks dan sentiasa berubah dan memerlukan orang yang boleh menyelesaikan masalah yang sukar dan berkomunikasi secara efektif kepada rakan sepasukan teknis dan bukan teknikal mereka.
Untuk bidang wawancara ini, anda harus selesa membincangkan perkara seperti rentetan, susunan, sintaks dasar, jenis data, senarai berkaitan, pokok, graf, susunan, beratur, dan jadual hash. Oh, dan pastikan anda boleh menjawab FizzBuzz tanpa memukul mata.
Bersedia untuk Menyelesaikan Perkara Yang Berbeza
Setiap asas anda mempunyai kebaikan dan keburukan dan menawarkan penyelesaian yang unik untuk jenis masalah tertentu. Selepas pewawancara bertanya soalan semata-mata kepada asas anda, mereka mungkin akan melihat bagaimana anda boleh menggunakannya dalam amalan. Ini dicapai dengan bertanya soalan terbuka yang dapat diselesaikan dengan pelbagai cara.
Soalan sampel di sini ialah: Anda diberi persamaan aritmetik sebagai rentetan. Persamaan ini akan mempunyai digit tunggal 0-9, tambahan, penolakan, pendaraban, dan kurungan. Tulis fungsi yang mengambil persamaan ini dan hitung jawapan yang betul. Contoh input termasuk "1 + 1" dan "2 * (1 + 9) - ((2 + 5) -9").
Seperti dahulu, pewawancara ingin melihat bagaimana anda memecahkan soalan terbuka dan proses pemikiran anda dalam memilih penyelesaian anda. Yang paling penting, mereka ingin melihat bahawa anda dapat secara efektif menyampaikan masalah yang rumit.
Tidak peduli apa soalan atau penyelesaian yang anda pilih, pastikan anda berfikir dengan kuat! Jika anda mempunyai cara yang berbeza untuk menyelesaikan masalah, bercakap melalui pilihan sebelum memutuskan yang hendak digunakan. Ia membantu pewawancara melihat dan memahami proses pemikiran anda. Juga, pewawancara boleh mengesyorkan satu penyelesaian terhadap yang lain kerana dia tahu bahawa yang lain mungkin mempunyai perangkap tertentu atau mungkin berada di luar skop temu duga.
Jangan takut untuk bertanya jika sesuatu tidak jelas atau tidak banyak butiran yang diberikan. Ini menunjukkan anda berfikir juga-dan memberi pewawancara rasa bagaimana anda akan bekerja dengan orang lain. Pastikan anda meminta penjelasan soalan untuk memahami sepenuhnya soalan dan bahawa anda tidak membesarkan skop masalahnya (contohnya, Apakah beberapa contoh input? Adakah saya perlu risau tentang membahagikan dengan 0? penjimatan siang hari?)
Akhirnya, pastikan anda lulus secara lisan melalui beberapa kes ujian sebelum anda mengatakan anda telah selesai. Ini membolehkan anda untuk menyemak kod dan menunjukkan pewawancara bahawa anda sedang menyemak kod anda. Semudah ini akan membuat wawancara kerja, malangnya kami tidak dapat membaca fikiran anda.
Jadi, seperti yang anda sedang bersedia, amalkan menyelesaikan soalan dengan alat yang berbeza dari kotak alat anda supaya anda dapat mengembangkan intuisi mengenainya. Ketahui bila menggunakan setiap alat anda supaya anda tidak akan tersandung semasa wawancara. Dan pastikan anda mempraktikkan sepenuhnya proses pemikiran anda-ini boleh menjadi bahagian paling sukar bagi coders yang digunakan untuk bekerja secara berasingan.
Amalan, Amalan, Amalan
Semakin banyak latihan anda, anda akan bersedia untuk temubual pengekodan teknikal. Ini berlaku untuk kebanyakan perkara tetapi terutama berkaitan dengan wawancara teknikal-mereka benar-benar mengharuskan anda memanaskan otak anda.
Berikut adalah beberapa tip untuk membantu anda memanfaatkan masa latihan anda:
- Pastikan anda mensimulasikan persekitaran temu bual. Beri diri anda had masa untuk masalah. Sekiranya anda akan melakukan wawancara telefon, amalan Stypi dan Dokumen Google. (Saya tahu untuk diri sendiri, tidak mempunyai autoklumpalan dan penunjuk sintaks telah menipu saya dalam temu bual telefon.) Jika anda akan melakukan wawancara secara peribadi, amalkan melakukan masalah di atas kertas atau di papan tulis.
- Mempunyai rakan bukan teknikal meminta anda soalan wawancara, dan jalankan dia melalui jawapan anda. Jika anda boleh menerangkan kepadanya, saya pasti anda boleh menerangkannya kepada pewawancara teknikal anda.
- Jangan berasa seperti menipu jika anda menggunakan beberapa alat persediaan yang berada di luar sana. Mereka sering menawarkan soalan wawasan dan amalan yang hebat. Kegemaran saya ialah laman web seperti buku TopCoder dan Ketua Pertama . Beberapa buku lain yang bercakap lebih lanjut mengenai proses temuduga adalah Temubual Pengaturcaraan yang Terdedah dan Memecahkan Temuduga Kod .
Wawancara pengekodan teknik boleh kelihatan agak menakutkan, tetapi dengan jenis latihan yang tepat, anda akan bersedia untuk mengagumkan mereka. Ingatlah untuk memberi tumpuan kepada roti dan mentega anda, asas, dan amalan banyak. Ikuti petua di atas, dan anda akan bersedia untuk wawancara pengekodan teknikal seterusnya.
Mahu maklumat lanjut? Saya baru-baru ini membentangkan perkara ini di Persidangan Kerjaya Kejuruteraan / Teknikal UC Berkeley. Lihat slaid saya dari ceramah di bawah untuk lebih banyak pemikiran dan sumber!