Mempersiapkan wawancara dengan perusahaan Lima Besar

Menurut kesan saya, banyak orang tertarik pada topik mempersiapkan wawancara di perusahaan teknologi tinggi, jadi saya memutuskan untuk menulis satu artikel, bukan jawaban pribadi yang akan saya rujuk di masa depan. Setiap orang yang tertarik dengan proses wawancara, hal-hal yang perlu Anda perhatikan, cara mempersiapkan dan apa yang harus dipersiapkan untuk - selamat datang di kucing.

Apa yang ada di artikel ini


  • Program pelatihan
  • Daftar Sumber Daya dan Artikel
  • Kiat Wawancara Kerja

Sebelum memulai pelatihan, saya memutuskan untuk mengembangkan sistem yang dengannya saya akan mempersiapkan, serta daftar sumber daya yang akan saya gunakan dalam proses persiapan.

Langkah pertama adalah menentukan apa yang diperlukan untuk wawancara, dan untuk ini, oleh karena itu, perlu memiliki ide yang baik tentang pertanyaan apa yang ditemui pada wawancara. Setelah pencarian yang cukup cepat pada hasil pencarian Google, saya menemukan buku ini, yang merupakan kumpulan tips dan tugas sampel yang cukup lengkap tentang topik wawancara.

Pada tahap ini, perlu disebutkan bahwa kode dalam buku ini terutama ditulis dalam Java / C ++, yang membuatnya cukup mudah dibaca. Dengan demikian, untuk wawancara yang lebih nyaman, saya sarankan Anda menyelesaikan semua masalah dalam bahasa yang Anda rencanakan untuk digunakan selama wawancara.

Setelah membaca buku ini, saya dapat mengidentifikasi daftar topik kunci untuk persiapan.

Daftar saya terlihat seperti ini:

  • Besar o
  • Teka-teki
  • Arsitektur aplikasi
  • Algoritma dan struktur data

Besar o


Sebenarnya, tidak ada yang istimewa untuk diceritakan tentang Big-O, Anda hanya perlu mengetahui dan memahami perbedaan dalam kompleksitas komputasi dari berbagai algoritma, memahami cara menentukan runtime dan konsumsi memori dari algoritma, mengetahui langkah-langkah dasar untuk mengoptimalkan algoritma, dll.
Artikel dan buku yang tak terhitung jumlahnya telah ditulis tentang Big-O, di hampir semua kursus masukan tentang algoritma ada kuliah tentang topik ini. Pada habr ada juga serangkaian artikel yang ditujukan untuk subjek habr.com/post/196560 ini

Teka-teki


Penafian - Saya pribadi tidak menemukan teka-teki dalam wawancara, tetapi saya mendengar bahwa mereka mungkin akan menemukan.

Cara saya melihat teka-teki dalam hal persiapan sebenarnya adalah algoritma yang sama, hanya tanpa mengacu pada struktur data tertentu atau paradigma algoritmik. Karena itu, mengatur persiapan untuk teka-teki cukup sulit. Solusi terbaik yang bisa saya dapatkan adalah dengan hanya "mendapatkan tangan saya", memecahkan 40-60 teka-teki, dan sampai batas tertentu memahami bagaimana mendekati solusi teka-teki. Seiring waktu, otak mulai memahami apa yang harus diperhatikan dan apa yang sebenarnya merupakan desain tugas: misalnya, semua angka yang ditunjukkan dalam teka-teki biasanya tidak begitu saja. Ini bukan "hanya 2 tali" dan bukan hanya "terbakar dalam 25 menit". Sebagai aturan, teka-teki tidak mengandung informasi kuantitatif yang tidak berguna.

Arsitektur aplikasi


Memahami membangun arsitektur aplikasi dilengkapi dengan pengalaman berbasis pengetahuan. Sangat sulit untuk menjadi arsitek yang baik hanya tentang arsitektur dan itu agak tidak efisien untuk mempelajari arsitektur murni oleh coba-coba. Untuk alasan ini, agak sulit untuk "mempersiapkan" untuk bagian arsitektur wawancara. Hingga taraf tertentu, persiapan untuk bagian ini adalah seluruh karier Anda. Namun masih merupakan ide bagus untuk menyegarkan beberapa aspek. Misalnya: arsitektur representasi. Bahkan mereka yang mahir dalam UML pada saat kritis dapat dengan mudah melupakan beberapa detail tampilan atau tampilan spesifik tautan. Contoh lain adalah pola desain yang populer. Terlepas dari kenyataan bahwa mereka cukup sering digunakan, sebagai suatu peraturan, tidak semua digunakan segera dan tidak pada permintaan untuk memberikan pengetahuan tentang mereka di sini dan saat ini. Cobalah untuk menyelesaikan beberapa ronde tes untuk diri sendiri dan mengidentifikasi bidang masalah.

Algoritma dan struktur data


Salah satu momen paling penting dan paling bermasalah dalam wawancara. Penekanan tertentu diberikan pada penyelesaian masalah ini dan kemampuan untuk memecahkan masalah seperti itu dengan cepat dan efektif sangat penting.
Untuk persiapan, saya menyusun daftar struktur data dan algoritma yang paling umum dan ternyata seperti:

  • Array
  • String
  • Pohon biner
  • Binary Search Tree (BST)
  • Grafik
  • Tumpukan
  • Daftar Tertaut
  • Matriks
  • Tumpukan
  • Antrian
  • Trie
  • Mundur
  • Bagilah & taklukkan
  • Pemrograman dinamis
  • Menyortir
  • Serakah

Di setiap bagian ada beberapa trik yang hanya perlu Anda kuasai. Contoh klasik dari ini adalah slider "lambat" dan "cepat" pada Daftar Tertaut. Tanpa mengetahui atau tidak memahami konsep ini, praktis tidak mungkin untuk secara efektif menyelesaikan banyak masalah pada daftar tertaut. Atau algoritma pencarian grafik BFS / DFS. Sebagai aturan, banyak tugas untuk wawancara akan berupa modifikasi konsep terkenal atau kombinasi dari beberapa. Oleh karena itu, sangat penting untuk belajar memecahkan dan mengenali tugas-tugas dasar dalam setiap struktur data / algoritma.

Secara pribadi, saya menonton beberapa ceramah dari Stanford University, dan setelah saya menulis sendiri ~ 5-10 tugas dari setiap kategori dan hanya mengisi tangan saya dengan cara ini. Dibutuhkan banyak waktu dan usaha, tetapi sebagai hasilnya sangat berharga.

Berikut adalah beberapa sumber yang saya gunakan untuk mempersiapkan dan mencari tugas:

https://www.quora.com - hanya daftar ~ 500 tugas tentang berbagai topik, bersama dengan solusi C ++. Cukup nyaman, terkadang ada beberapa solusi di mana satu lebih optimal dari yang lain.

https://www.hackerrank.com adalah sumber yang mudah dengan kategori dan topik dan dengan kompiler bawaan untuk 20+ bahasa. Membantu mengisi tangan Anda dengan cepat dan efisien.

https://www.glassdoor.com - berisi pertanyaan langsung dari wawancara dan terkadang jawaban dari komunitas.

Bagi saya, keduanya sudah cukup, tetapi jika Anda tidak, maka 3 ini akan memberikan ide yang baik tentang ke mana harus mencari lebih jauh.

Ingatlah bahwa sangat penting untuk mencoba menjawab dan mengambil keputusan sendiri sebelum melihat kiat-kiatnya. Dengan demikian, Anda benar-benar memaksakan diri untuk berpikir dan mencari solusi, mis. langsung mensimulasikan suasana wawancara.

Jangan berdosa hanya menggunakan komputer untuk menyelesaikan masalah. Cobalah untuk berlatih di papan tulis atau kertas, seperti banyak perusahaan melakukan wawancara dengan cara ini.

Tampaknya bagi Anda bahwa ini adalah satu dan sama, tetapi dalam praktiknya, berlatih di atas kertas akan membuka banyak kejutan, mulai dari kenyataan bahwa Anda harus terlebih dahulu menemukan seluruh solusi sebelum menulis (hapus dan backspace tidak ada di sini, menghapus dan memindahkan baris sangat mahal), dan diakhiri dengan bahwa ruang pada lembaran / papan harus disimpan dengan benar, karena itu terbatas.

Apa yang Anda perhatikan selama wawancara adalah kepercayaan diri dan kecepatan Anda menyelesaikan masalah, memikirkan semua opsi input yang mungkin, menangani kesalahan dan berbagai kondisi. Oleh karena itu, menulis hanya solusi "bekerja" tidak cukup.

Saran yang bagus adalah menulis kode kompilasi. Ya, tidak diragukan lagi, hal utama adalah kemampuan untuk menyelesaikan masalah dan variasinya dan tidak ada yang akan terlalu memperhatikan 1 koma yang hilang, tetapi ini tidak harus dimasukkan dalam aturan. Anda menulis kode dan solusi nyata, bukan kode semu dan sketsa.

Selama wawancara itu sendiri - cobalah untuk tidak menutup kreativitas Anda, banyak keputusan memerlukan pendekatan dari sudut pandang non-standar. Jika Anda tertutup - jangan ragu untuk meminta bantuan - ini tidak akan sangat meningkatkan peluang Anda, tetapi Anda juga tidak boleh berdiri diam selama 45 menit.

Artikel ini mungkin bukan panduan lengkap dan komprehensif, tetapi ini akan membantu Anda memahami ke arah mana harus bergerak.

Semoga sukses untuk semua orang dalam persiapan.

Source: https://habr.com/ru/post/id423329/


All Articles