Bagaimana untuk membuat persediaan untuk temuduga di Google dan gagal. Dua kali

Bagaimana untuk membuat persediaan untuk temuduga di Google dan gagal. Dua kali

Tajuk artikel itu terdengar seperti gagal epik, tetapi pada hakikatnya semuanya tidak begitu mudah. Dan secara umum, cerita ini berakhir dengan sangat positif, walaupun tidak dalam Google. Tetapi ini adalah topik untuk artikel lain. Dalam artikel yang sama ini, saya akan bercakap tentang tiga perkara: bagaimana proses penyediaan saya berjalan, bagaimana temu bual di Google berlaku, dan mengapa, pada pendapat saya, semuanya tidak sejelas yang kelihatan.

Bagaimana ia semua bermula

Pada suatu petang musim sejuk Cyprus yang sejuk, saya terfikir secara tiba-tiba bahawa pengetahuan saya tentang Sains Komputer klasik adalah jauh dari purata, dan sesuatu perlu dilakukan mengenainya. Jika, omong-omong, seseorang belum membaca lagi mengapa petang itu Cyprus dan sejuk, maka anda boleh mengetahui tentangnya di sini. Selepas beberapa pemikiran, diputuskan untuk bermula dengan mengambil kursus dalam talian tentang algoritma dan struktur data. Daripada salah seorang bekas rakan sekerja saya, saya mendengar tentang kursus Robert Sedgewick di Coursera. Kursus ini mengandungi dua bahagian (bahagian 1 и bahagian 2). Jika tiba-tiba pautan berubah, anda sentiasa boleh Google nama pengarang. Setiap bahagian berlangsung selama 6 minggu. Kuliah diberikan pada awal minggu, dan sepanjang minggu anda masih perlu melakukan latihan. Bahagian pertama kursus merangkumi struktur data asas, jenis asas pengisihan dan kerumitan algoritma. Bahagian kedua sudah lebih maju, bermula dengan graf dan berakhir dengan perkara seperti Pengaturcaraan Linear dan Kebolehtahanan. Selepas memikirkan semua perkara di atas, saya sampai pada kesimpulan bahawa inilah yang saya perlukan. Dengan cara ini, pembaca yang ingin tahu mungkin bertanya, apakah kaitan Google dengannya? Dan sememangnya, sehingga saat ini dia tidak ada kena mengena langsung. Tetapi saya memerlukan matlamat, kerana belajar selama 12 minggu pada waktu malam tanpa matlamat agak sukar. Apakah tujuan memperoleh pengetahuan baharu? Sudah tentu, aplikasi mereka dalam amalan. Dalam kehidupan seharian ini agak bermasalah, tetapi semasa temu bual dengan syarikat besar ia mudah. Google pantas menunjukkan bahawa Google (maafkan tautologi) adalah salah satu syarikat terbesar di Eropah (dan saya melihat secara khusus di Eropah) yang menjalankan temu bual sedemikian. Iaitu pejabat mereka terletak di Zurich, Switzerland. Jadi sudah diputuskan - mari belajar dan pergi temu duga di Google.

Bersedia untuk pendekatan pertama

12 minggu berlalu dengan cepat dan saya menyelesaikan kedua-dua kursus. Tanggapan saya terhadap kursus adalah lebih daripada positif, dan saya boleh mengesyorkannya kepada sesiapa yang berminat. Saya menyukai kursus atas sebab-sebab berikut:

  • Pensyarah bercakap bahasa Inggeris yang agak jelas
  • Bahannya tersusun dengan baik
  • Persembahan cantik menunjukkan bahagian dalam setiap algoritma
  • Pemilihan bahan yang cekap
  • Latihan yang menarik
  • Latihan disemak secara automatik di tapak, selepas itu laporan dijana

Kerja saya dalam kursus biasanya berjalan seperti ini. Saya mendengar ceramah dalam 1-2 hari. Kemudian mereka mengambil ujian cepat pengetahuan mereka tentang bahan tersebut. Sepanjang minggu saya melakukan latihan dalam beberapa lelaran. Selepas yang pertama saya mendapat 30-70% saya, yang seterusnya membawa keputusan kepada 97-100%. Latihan biasanya melibatkan pelaksanaan beberapa algoritma, mis. Ukiran jahitan atau bzip.

Selepas menamatkan kursus, saya menyedari bahawa banyak ilmu datang dengan banyak kesedihan. Jika sebelum ini saya hanya tahu bahawa saya tidak tahu apa-apa, kini saya mula menyedari bahawa sayalah yang tidak tahu.

Memandangkan ia hanya bulan Mei, dan saya menjadualkan temu duga pada musim gugur, saya memutuskan untuk meneruskan pendidikan saya. Selepas menyemak keperluan untuk kekosongan itu, ia telah memutuskan untuk pergi ke dua arah secara selari: teruskan mempelajari algoritma dan mengambil kursus asas dalam pembelajaran mesin. Untuk matlamat pertama, saya memutuskan untuk beralih daripada kursus kepada buku dan memilih karya monumental Steven Skiena "Algoritma. Manual Reka Bentuk Algoritma. Tidak monumental seperti Knut, tetapi masih. Untuk gol kedua, saya kembali ke Coursera dan mendaftar untuk kursus Andrew Ng. mesin Pembelajaran.

Lagi 3 bulan berlalu dan saya menamatkan kursus dan menempah.

Mari kita mulakan dengan buku. Pembacaan itu ternyata agak menarik, walaupun tidak mudah. Pada dasarnya, saya akan mengesyorkan buku itu, tetapi tidak serta-merta. Secara keseluruhan, buku ini memberikan pandangan yang lebih mendalam tentang apa yang saya pelajari dalam kursus. Selain itu, saya menemui (dari sudut pandangan formal) perkara seperti heuristik dan pengaturcaraan dinamik. Sememangnya, saya pernah menggunakannya sebelum ini, tetapi saya tidak tahu apa nama mereka. Buku ini juga mengandungi beberapa kisah dari kehidupan penulis (Kisah Perang), yang agak mencairkan sifat akademik pembentangan. Dengan cara ini, separuh kedua buku itu boleh ditinggalkan; ia mengandungi penerangan tentang masalah dan kaedah sedia ada untuk menyelesaikannya. Ia berguna jika ia digunakan secara kerap dalam amalan, jika tidak, ia akan segera dilupakan.

Saya lebih berpuas hati dengan kursus itu. Pengarang dengan jelas mengetahui perkara dan ceramahnya dengan cara yang menarik. Ditambah dengan jumlah yang saksama, iaitu algebra linear dan asas rangkaian saraf, saya ingat dari universiti, jadi saya tidak mengalami sebarang kesulitan tertentu. Struktur kursus agak standard. Kursus dibahagikan kepada minggu. Setiap minggu ada kuliah yang dicampur dengan ujian pendek. Selepas kuliah, anda diberi tugasan yang perlu anda lakukan, hantar, dan ia akan disemak secara automatik. Secara ringkas, senarai perkara yang diajar dalam kursus adalah seperti berikut:
- fungsi kos
- regresi linear
- keturunan kecerunan
- penskalaan ciri
- persamaan biasa
- regresi logistik
- klasifikasi berbilang kelas (satu vs semua)
- rangkaian saraf
- perambatan balik
- regularisasi
- bias/variance
- keluk pembelajaran
— metrik ralat (ketepatan, ingat semula, F1)
— Mesin Vektor Sokongan (klasifikasi margin besar)
- K-maksudnya
—Analisis Komponen Utama
- pengesanan anomali
— penapisan kolaboratif (sistem pengesyoran)
— stokastik, kumpulan mini, turunan kecerunan kelompok
- pembelajaran dalam talian
- peta mengurangkan
- analisis siling
Selepas menamatkan kursus, pemahaman tentang semua topik ini hadir. Selepas 2 tahun, hampir semuanya dilupakan secara semula jadi. Saya mengesyorkannya kepada mereka yang tidak biasa dengan pembelajaran mesin dan ingin mendapatkan pemahaman yang baik tentang perkara asas untuk meneruskan.

Larian pertama

Sudah bulan September dan sudah tiba masanya untuk memikirkan tentang temuduga. Memandangkan permohonan melalui laman web ini agak buruk, saya mula mencari rakan yang bekerja di Google. Pilihan jatuh pada datacompboy, memandangkan dia seorang sahaja yang saya kenali secara langsung (walaupun bukan secara peribadi). Dia bersetuju untuk memajukan resume saya, dan tidak lama kemudian saya menerima surat daripada perekrut yang menawarkan untuk menempah slot pada kalendarnya untuk perbualan pertama Beberapa hari kemudian panggilan itu berlaku. Kami cuba berkomunikasi melalui Hangouts, tetapi kualitinya teruk, jadi kami beralih kepada telefon. Mula-mula, kami cepat membincangkan standard bagaimana, mengapa dan mengapa, dan kemudian beralih kepada pemeriksaan teknikal. Ia terdiri daripada sedozen soalan dengan semangat "apakah kesukaran untuk memasukkan ke dalam peta cincang", "pokok seimbang apa yang anda tahu." Tidak sukar jika anda mempunyai pengetahuan asas tentang perkara-perkara ini. Saringan berjalan lancar dan berdasarkan keputusan, mereka memutuskan untuk menganjurkan temu duga pertama dalam masa seminggu.

Temu bual juga berlaku melalui Hangouts. Mula-mula mereka bercakap tentang saya selama kira-kira 5 minit, kemudian beralih kepada masalah itu. Masalahnya adalah pada graf. Saya segera menyedari apa yang perlu dilakukan, tetapi saya memilih algoritma yang salah. Apabila saya mula menulis kod saya menyedari ini dan beralih kepada pilihan lain, yang saya selesaikan. Penemuduga bertanya beberapa soalan tentang kerumitan algoritma dan bertanya sama ada ia boleh dilakukan dengan lebih cepat. Saya entah bagaimana menjadi membosankan dan tidak dapat melakukannya. Pada ketika ini, masa telah tamat dan kami mengucapkan selamat tinggal. Kemudian, selepas kira-kira 10 minit, saya sedar bahawa bukannya algoritma Dijkstra yang saya gunakan, dalam masalah khusus ini saya boleh menggunakan carian luas-pertama, dan ia akan menjadi lebih pantas. Selepas beberapa lama, perekrut menelefon dan mengatakan bahawa temu duga secara keseluruhan berjalan dengan baik dan satu lagi perlu dianjurkan. Kami bersetuju pada satu minggu lagi.

Kali ini keadaan menjadi lebih teruk. Jika pertama kali penemuduga ramah dan bergaul, kali ini dia agak muram. Saya tidak dapat mengetahui masalahnya dengan segera, walaupun idea yang saya hasilkan boleh, pada dasarnya, membawa kepada penyelesaiannya. Akhirnya, selepas beberapa gesaan daripada penemuduga, penyelesaiannya datang kepada saya. Kali ini ia ternyata menjadi pencarian pertama sekali lagi, hanya dari beberapa perkara. Saya menulis penyelesaiannya, bertemu dengannya tepat pada masanya, tetapi terlupa tentang kes tepi. Selepas beberapa lama, perekrut menelefon dan mengatakan bahawa kali ini penemuduga tidak berpuas hati, kerana pada pendapatnya saya memerlukan terlalu banyak petunjuk (3 atau 4 keping) dan saya sentiasa menukar kod semasa menulis. Berdasarkan keputusan dua temu bual, diputuskan untuk tidak pergi lebih jauh, tetapi menangguhkan temuduga seterusnya selama setahun, jika saya mahu. Itulah sebabnya kami mengucapkan selamat tinggal.

Dan dari kisah ini saya membuat beberapa kesimpulan:

  • Teori itu bagus, tetapi anda perlu menavigasinya dengan cepat
  • Teori tanpa amalan tidak akan membantu. Kita perlu menyelesaikan masalah dan membawa pengekodan kepada automatik.
  • Banyak bergantung kepada penemuduga. Dan tiada apa yang boleh dilakukan mengenainya.

Bersedia untuk larian kedua

Selepas memikirkan keadaan, saya memutuskan untuk mencuba lagi dalam masa setahun. Dan sedikit menyunting matlamat. Jika sebelum ini matlamat utama adalah untuk belajar, dan temuduga di Google adalah seperti lobak jauh, kini lulus temu duga adalah matlamat, dan belajar adalah cara.
Oleh itu, rancangan baru telah dibangunkan, yang merangkumi perkara berikut:

  • Teruskan belajar teori dengan membaca buku dan artikel.
  • Menyelesaikan masalah algoritma dalam jumlah 500-1000 keping.
  • Teruskan belajar teori dengan menonton video.
  • Teruskan belajar teori melalui kursus.
  • Kaji pengalaman orang lain dengan temu bual di Google.

Saya menyiapkan rancangan itu dalam masa setahun. Seterusnya saya akan menerangkan apa sebenarnya yang saya lakukan untuk setiap mata.

Buku dan artikel

Saya tidak ingat jumlah artikel yang saya baca; saya membacanya dalam bahasa Rusia dan dalam bahasa Inggeris. Mungkin tapak yang paling berguna ini. Di sini anda boleh menemui penerangan tentang sejumlah besar algoritma yang menarik dengan contoh kod.

Saya membaca 5 buku: Algoritma, edisi ke-4 (Sedgewick, Wayne), Pengenalan kepada Algoritma Edisi Ke-3 (Cormen, Leiserson, Rivest, Stein), Cracking the Coding Interview edisi ke-4 (Gayle Laakmann), Temuduga Pengaturcaraan Terdedah edisi ke-2 (Mongan, Suojanen , Giguere), Elemen Temubual Pengaturcaraan (Aziz, Lee, Prakash). Mereka boleh dibahagikan kepada 2 kategori. Yang pertama termasuk buku oleh Sedgwick dan Corman. Ini adalah satu teori. Selebihnya adalah persediaan untuk temuduga. Sedgwick menceritakan tentang perkara yang sama dalam buku itu seperti dalam kursusnya. Hanya secara bertulis. Tidak ada gunanya membacanya dengan teliti jika anda telah mengikuti kursus itu, tetapi ia juga patut dibaca. Jika anda belum menonton kursus itu, wajar untuk membacanya. Cormen kelihatan terlalu membosankan kepada saya. Sejujurnya, saya mempunyai masa yang sukar untuk menguasainya. Saya baru sahaja mengeluarkannya dari situ teori induk, dan beberapa struktur data yang jarang digunakan (timbunan Fibonacci, pokok van Emde Boas, timbunan radix).

Anda perlu membaca sekurang-kurangnya satu buku untuk persediaan menghadapi temu duga. Kesemuanya dibina berdasarkan prinsip yang hampir sama. Mereka menerangkan proses temuduga di syarikat teknologi besar, memberikan perkara asas dari Sains Komputer, masalah untuk perkara asas ini, penyelesaian kepada masalah dan analisis penyelesaian. Daripada ketiga-tiga di atas, saya mungkin akan mengesyorkan Memecahkan Temuduga Pengekodan sebagai yang utama, dan selebihnya adalah pilihan.

Masalah algoritma

Ini mungkin titik penyediaan yang paling menarik. Anda boleh, sudah tentu, duduk dan menyelesaikan masalah dengan bodoh. Terdapat banyak laman web yang berbeza untuk ini. Saya terutamanya menggunakan tiga: Hackerrank, CodeChef и LeetCode. Pada CodeChef, masalah dibahagikan dengan kesukaran, tetapi bukan mengikut topik. Pada peringkat Hacker mengikut kerumitan dan mengikut topik.

Tetapi seperti yang saya ketahui dengan segera, ada cara yang lebih menarik. Dan ini adalah pertandingan (cabaran pengaturcaraan atau pertandingan pengaturcaraan). Ketiga-tiga tapak menyediakannya. Benar, terdapat masalah dengan LeetCode - zon waktu yang menyusahkan. Itulah sebabnya saya tidak menyertai laman web ini. Hackerrank dan CodeChef menyediakan sejumlah besar pertandingan berbeza, berlangsung dari 1 jam hingga 10 hari. Format yang berbeza mempunyai peraturan yang berbeza, tetapi kita boleh membincangkannya untuk masa yang lama. Perkara utama mengapa pertandingan adalah baik ialah pengenalan elemen kompetitif (dan sekali lagi tautologi) ke dalam proses pembelajaran.

Secara keseluruhan, saya telah menyertai 37 pertandingan di Hackerrank. Daripada jumlah ini, 32 telah disenaraikan, dan 5 telah ditaja (saya juga menerima 25$ (dalam salah satu daripadanya) atau untuk suka-suka. Dalam kejohanan penilaian, saya berada dalam 4% teratas sebanyak 10 kali, dalam 12% teratas sebanyak 11 kali, dan dalam 25% teratas sebanyak 5 kali. Keputusan terbaik saya ialah 27/1459 dalam kejohanan 3 jam dan 22/9721 dalam kejohanan mingguan.

Saya beralih kepada CodeChef apabila Hackerrank mula menganjurkan pertandingan dengan kurang kerap. Secara keseluruhan saya berjaya menyertai 5 pertandingan. Markah terbaik ialah 426/5019 dalam pertandingan sepuluh hari.

Secara keseluruhan, pada pertandingan dan seperti itu, saya menyelesaikan lebih sedikit daripada 1000 masalah, yang sesuai dengan rancangan itu. Kini, malangnya, tidak ada masa lapang untuk meneruskan aktiviti kompetitif, sama seperti tiada matlamat yang mana masa lapang itu boleh dihapuskan. Tetapi ia menyeronokkan. Saya mengesyorkan agar mereka yang berminat dengan ini mencari orang yang berfikiran sama. Bersama-sama atau dalam kumpulan ia lebih menarik. Saya berseronok dengan ini dengan rakan, jadi mungkin ia berjalan lancar.

Tonton video

Selepas membaca buku Skiena, saya tertarik dengan apa yang dia lakukan. Seperti Sedgwick, dia seorang profesor universiti. Dalam hal ini, video kursus beliau boleh didapati dalam talian. Saya memutuskan untuk menyemak semula kursus tersebut COMP300E - Cabaran Pengaturcaraan - 2009 HKUST. Saya tidak boleh mengatakan bahawa saya sangat menyukainya. Pertama sekali, kualiti video tidak begitu baik. Kedua, saya tidak cuba menyelesaikan sendiri masalah yang dibincangkan dalam kursus tersebut. Jadi pertunangan tidak begitu tinggi.
Selain itu, semasa menyelesaikan masalah, cuba mencari algoritma yang betul, saya terjumpa video Tushar Roy. Dia bekerja di Amazon dan kini bekerja di Apple. Seperti yang saya ketahui sendiri kemudian, dia telah di saluran YouTube, di mana dia menyiarkan analisis pelbagai algoritma. Pada masa penulisan, saluran itu mengandungi 103 video. Dan saya mesti mengatakan bahawa analisisnya dilakukan dengan sangat baik. Saya cuba menonton pengarang lain, tetapi entah bagaimana ia tidak berjaya. Jadi saya pasti boleh mengesyorkan saluran ini untuk tontonan.

Mengambil kursus

Saya tidak berbuat banyak di sini. Saya menonton video dari Android Pembangun Google Nanodegree dan telah menamatkan kursus di Universiti ITMO Bagaimana Memenangi Pertandingan Pengekodan: Rahsia Juara. Nanodegree agak bagus, walaupun saya secara semula jadi tidak belajar sesuatu yang baru daripadanya. Kursus dari ITMO agak condong dari segi teori, tetapi masalahnya menarik. Saya tidak akan mengesyorkan bermula dengannya, tetapi pada dasarnya ia adalah masa yang dibelanjakan dengan baik.

Belajar dari pengalaman orang lain

Sudah tentu, ramai orang cuba masuk ke Google. Ada yang masuk, ada yang tidak. Ada yang menulis artikel tentang perkara ini. Perkara-perkara menarik yang mungkin akan saya sebutkan yang ini и yang ini. Dalam kes pertama, orang itu menyediakan sendiri senarai perkara yang perlu dipelajarinya untuk menjadi Jurutera Perisian dan masuk ke Google. Ia akhirnya berakhir di Amazon, tetapi ini tidak lagi begitu penting. Manual kedua ditulis oleh jurutera Google Larisa Agarkova (Larrr). Selain dokumen ini, anda juga boleh membaca blog dia.

Masuk akal untuk membaca ulasan wawancara di Glassdoor. Mereka semua lebih kurang serupa, tetapi anda boleh mendapatkan beberapa maklumat yang berguna.

Saya tidak akan memberikan pautan ke artikel kecil lain anda boleh mencarinya dengan mudah di Google.

Larian kedua

Dan kini setahun telah berlalu. Ia ternyata sangat sengit dari segi pengajian. Tetapi saya menghampiri musim luruh baru dengan pengetahuan teori yang lebih mendalam dan mengembangkan kemahiran praktikal. Masih ada beberapa minggu lagi sebelum akhir tahun diperuntukkan kepada saya untuk persediaan, apabila tiba-tiba surat daripada seorang perekrut daripada Google dihantar ke dalam mel, di mana dia bertanya kepada saya sama ada saya masih mempunyai keinginan untuk bekerja di Google dan akan Saya keberatan bercakap dengannya. Sememangnya, saya tidak kisah. Kami bersetuju untuk menelefon dalam seminggu. Mereka juga meminta saya untuk resume yang dikemas kini, yang mana saya menambah penerangan ringkas tentang apa yang telah saya lakukan sepanjang tahun di tempat kerja dan secara umum.

Selepas berkomunikasi seumur hidup, kami memutuskan bahawa dalam seminggu akan ada temu bual Hangouts, sama seperti tahun lepas. Seminggu berlalu, tiba masa untuk temuduga, tetapi penemuduga tidak muncul. 10 minit berlalu, saya sudah mula gelisah, tiba-tiba seseorang menceroboh masuk ke dalam sembang. Seperti yang ternyata tidak lama kemudian, penemuduga saya atas sebab tertentu tidak dapat muncul dan pengganti telah dicari dengan segera untuknya. Orang itu agak tidak bersedia baik dari segi menyediakan komputer dan dari segi menjalankan temu duga. Tetapi kemudian semuanya berjalan lancar. Saya menyelesaikan masalah dengan cepat, menerangkan di mana perangkap mungkin berlaku, dan bagaimana ia boleh dielakkan. Kami membincangkan beberapa versi masalah yang berbeza dan kerumitan algoritma. Kemudian kami bercakap selama 5 minit lagi, jurutera memberitahu kami tanggapannya bekerja di Munich (mereka nampaknya tidak menemui pengganti segera di Zurich), dan kemudian kami berpisah.

Pada hari yang sama, seorang perekrut menghubungi saya dan mengatakan bahawa temuduga berjalan lancar dan mereka bersedia untuk menjemput saya ke temuduga di pejabat. Keesokan harinya kami menghubungi melalui Hangouts dan membincangkan butirannya. Memandangkan saya perlu memohon visa, kami memutuskan untuk menjadualkan temu duga dalam masa sebulan.

Semasa saya menyediakan dokumen saya, saya sedang membincangkan temu duga yang akan datang dengan perekrut. Temu duga Google standard terdiri daripada empat soalan algoritma dan satu soalan reka bentuk sistem. Tetapi, memandangkan saya memohon jawatan sebagai Android pembangun, saya diberitahu bahawa sebahagian daripada temu bual itu akan diadakan dengan Android spesifik. Saya tidak dapat meminta perekrut menjelaskan dengan tepat apakah spesifikasinya. Setahu saya, ia diperkenalkan agak baru-baru ini, dan dia sendiri tidak begitu menyedarinya. Saya juga telah mendaftar untuk dua sesi latihan: cara lulus temu duga algoritma dan cara lulus temu duga reka bentuk sistem. Sesi-sesi itu biasa sahaja. Di sana juga, tiada siapa yang dapat memberitahu saya apa yang mereka tanya. Android pembangun. Oleh itu, persediaan saya untuk bulan ini adalah seperti berikut:

  • Membeli papan penanda dan menulis 2-3 dozen algoritma paling popular padanya dari ingatan. 3-5 biji setiap hari. Secara keseluruhan, setiap satu ditulis beberapa kali.
  • Menyegarkan ingatan anda tentang pelbagai maklumat tentang Android, yang saya tidak gunakan setiap hari
  • Menonton beberapa video tentang Skala Besar dan perkara seperti itu

Seperti yang saya telah katakan, pada masa yang sama saya sedang menyediakan dokumen untuk perjalanan. Sebagai permulaan, mereka meminta saya maklumat untuk membuat surat jemputan. Kemudian saya cuba untuk masa yang lama untuk mengetahui siapa di Cyprus yang mengeluarkan visa ke Switzerland, kerana kedutaan Switzerland tidak menangani perkara ini. Ternyata, konsulat Austria melakukan ini. Saya menelefon dan membuat temu janji. Mereka meminta sekumpulan dokumen, tetapi tiada apa yang menarik. Gambar, pasport, permit kediaman, sekumpulan sijil yang berbeza dan, sudah tentu, surat jemputan. Sementara itu surat tidak sampai. Pada akhirnya, saya pergi dengan cetakan biasa dan ia berfungsi dengan baik. Surat itu sendiri tiba 3 hari kemudian, dan FedEx Cyprus tidak dapat mencari alamat saya dan saya terpaksa pergi mendapatkannya sendiri. Pada masa yang sama, saya menerima bungkusan dari FedEx yang sama, yang mereka juga tidak dapat menghantar kepada saya, kerana mereka tidak menemui alamat, dan yang telah berbaring di sana sejak Jun (5 bulan, Karl). Oleh kerana saya tidak tahu mengenainya, secara semulajadi, saya tidak menganggap bahawa mereka memilikinya. Saya menerima visa saya tepat pada masanya, selepas itu mereka menempah hotel dan menawarkan pilihan penerbangan kepada saya. Saya telah melaraskan pilihan untuk menjadikannya lebih mudah. Tiada lagi penerbangan terus, jadi saya akhirnya terbang ke sana melalui Athens dan kembali melalui Vienna.

Selepas semua urusan rasmi dengan perjalanan diselesaikan, beberapa hari lagi berlalu dan saya sebenarnya terbang ke Zurich. Tiba di sana tanpa insiden. Dari lapangan terbang ke bandar saya menaiki kereta api - dengan cepat dan mudah. Selepas bersiar-siar di sekitar bandar sedikit, saya mencari hotel dan mendaftar masuk. Memandangkan hotel ditempah tanpa makan, saya makan malam di sebelah dan tidur, kerana penerbangan adalah pada waktu pagi dan saya sudah mahu tidur. Keesokan harinya saya bersarapan di hotel (untuk wang tambahan) dan pergi ke pejabat Google. Google mempunyai beberapa pejabat di Zurich. Temu bual saya bukan di pusat. Dan secara umum, pejabat itu kelihatan agak biasa, jadi saya tidak mempunyai peluang untuk melihat semua kebaikan pejabat Google "biasa". Saya mendaftar dengan pentadbir dan duduk menunggu. Selepas beberapa lama, perekrut keluar dan memberitahu saya rancangan untuk hari itu, selepas itu dia membawa saya ke bilik di mana temuduga akan dijalankan. Sebenarnya, rancangan itu termasuk 3 temuduga, makan tengah hari dan 2 temuduga lagi.

Temuduga nombor satu

Temu bual pertama itu hanya kira-kira Android. Dan ia langsung tidak ada kena mengena dengan algoritma. Namun, ia satu kejutan. Oh, ia lebih biasa dengan cara ini. Mereka meminta saya mencipta komponen UI tertentu. Kami mula-mula membincangkan butirannya. Saya mencadangkan penggunaan RxJava untuk penyelesaiannya, menerangkan dengan tepat apa yang akan saya lakukan dan mengapa. Mereka kata itu tidak mengapa, tetapi mari kita lakukannya menggunakan alatan. Android rangka kerja. Dan pada masa yang sama, kita akan menulis kod pada papan. Dan bukan hanya untuk komponen, tetapi untuk keseluruhan Aktiviti yang menggunakan komponen itu. Saya tidak bersedia untuk ini. Menulis algoritma 30-50 baris pada papan adalah satu perkara, dan menulis karut adalah perkara yang lain. Android kod, walaupun dengan singkatan dan komen seperti "baiklah, saya tidak akan menulis itu, ia jelas sekali." Rupa-rupanya ia menjadi kucar-kacir, tersebar di tiga papan. Jadi, saya menyelesaikan masalah itu, tetapi ia kelihatan janggal.

Temuduga nombor dua

Temu bual kali ini adalah mengenai algoritma. Dan ada dua orang penemuduga. Seorang penemuduga sebenar, dan yang kedua ialah padawan muda (penemuduga bayangan). Ia adalah perlu untuk menghasilkan struktur data dengan sifat tertentu. Pertama, kami membincangkan masalah seperti biasa. Saya bertanya soalan yang berbeza, penemuduga menjawab. Selepas beberapa lama, mereka diminta menulis beberapa kaedah struktur ciptaan di papan tulis. Kali ini saya lebih kurang berjaya, walaupun dengan sedikit kesilapan kecil, yang saya betulkan atas gesaan penemuduga.

Temuduga nombor tiga

Kali ini Reka Bentuk Sistem, yang tiba-tiba juga ternyata AndroidSaya perlu membangunkan aplikasi dengan fungsi tertentu. Kami membincangkan keperluan untuk aplikasi, pelayan dan protokol komunikasi. Kemudian saya mula menerangkan komponen atau pustaka yang akan saya gunakan untuk membina aplikasi tersebut. Kemudian, apabila saya menyebut tentang Penjadual Kerja, saya menghadapi masalah. Masalahnya, saya tidak pernah menggunakannya dalam praktik, kerana apabila ia dikeluarkan, saya hanya beralih kepada aplikasi sokongan di mana tiada tugas untuk kegunaannya. Perkara yang sama berlaku semasa pembangunan aplikasi berikutnya. Jadi, secara teorinya, saya tahu apa itu, bila dan bagaimana ia digunakan, tetapi saya tidak mempunyai pengalaman menggunakannya. Dan penemuduga nampaknya tidak menghargainya. Kemudian mereka meminta saya menulis beberapa kod. Ya, apabila membangunkan aplikasi, anda perlu menulis kod dengan segera. Sekali lagi. Android kod di papan. Ia ternyata menakutkan sekali lagi.

Makan tengah hari

Orang lain sepatutnya datang, tetapi dia tidak datang. Dan Google membuat kesilapan. Akibatnya, saya pergi makan tengah hari dengan penemuduga sebelumnya, rakan sekerjanya, dan tidak lama kemudian penemuduga seterusnya menyertai. Makan tengah hari adalah agak baik. Sekali lagi, kerana ini bukan pejabat utama di Zurich, ruang makan kelihatan agak biasa, walaupun sangat bagus.

Temuduga nombor empat

Akhir sekali, algoritma dalam bentuk yang paling tulen. Saya menyelesaikan masalah pertama dengan cepat dan serta-merta dengan berkesan, walaupun saya terlepas satu kes tepi, tetapi atas gesaan penemuduga (dia memberikan kes tepi ini) saya menemui masalah itu dan membetulkannya. Sudah tentu, saya terpaksa menulis kod di papan. Kemudian tugas yang sama diberikan, tetapi lebih sukar. Untuk itu, saya menemui beberapa penyelesaian yang tidak optimum dan hampir menemui yang optimum, 5-10 minit tidak mencukupi untuk menyelesaikan pemikiran itu. Nah, saya tidak mempunyai masa untuk menulis kod untuknya.

Temuduga nombor lima

Dan sekali lagi Android Temu bual. Saya tertanya-tanya mengapa saya menghabiskan sepanjang tahun mempelajari algoritma?
Pada mulanya terdapat beberapa soalan mudah. Kemudian penemuduga menulis kod di papan dan meminta untuk mencari masalah di dalamnya. Menemuinya, menjelaskannya, membetulkannya. Dibincangkan. Dan kemudian beberapa soalan yang tidak dijangka bermula dengan semangat "apa yang dilakukan oleh kaedah Y dalam kelas X", "apa yang ada di dalam kaedah Y", "apa yang dilakukan oleh kelas Z". Sudah tentu, saya menjawab sesuatu, tetapi kemudian saya berkata bahawa saya tidak menemui ini dalam kerja saya baru-baru ini dan secara semula jadi saya tidak ingat siapa yang melakukan apa dan bagaimana secara terperinci. Selepas itu, penemuduga bertanya apa yang saya lakukan sekarang. Dan soalan mengenai topik ini. Saya sudah menjawab lebih baik di sini.

Selepas tamat temu duga terakhir, mereka mengambil pas saya, mengucapkan selamat maju jaya dan menghantar saya dalam perjalanan. Saya berjalan di sekitar bandar sedikit, makan malam dan pergi ke hotel, di mana saya tidur, kerana penerbangan itu lagi awal pagi. Keesokan harinya saya selamat tiba di Cyprus. Atas permintaan perekrut, saya menulis maklum balas mengenai temu duga dan mengisi borang dalam perkhidmatan khas untuk memulangkan wang yang dibelanjakan. Daripada semua perbelanjaan, Google membayar terus hanya untuk tiket. Hotel, makanan dan perjalanan dibayar oleh calon. Kemudian kami mengisi borang, melampirkan resit dan menghantarnya ke pejabat khas. Mereka memproses ini dan memindahkan wang ke akaun dengan agak cepat.

Ia mengambil masa seminggu setengah untuk memproses keputusan temuduga. Selepas itu saya dimaklumkan bahawa saya "sedikit di bawah bar." Iaitu, saya jatuh sedikit. Lebih khusus lagi, 2 temu bual berjalan dengan baik, 2 sedikit tidak begitu baik, dan Reka Bentuk Sistem tidak begitu baik. Sekarang, jika sekurang-kurangnya 3 telah berjalan dengan baik, maka kami akan dapat bersaing, jika tidak, tiada peluang. Mereka menawarkan untuk kembali pada tahun yang lain.

Pada mulanya, tentu saja, saya kecewa, kerana banyak usaha telah dibelanjakan untuk persiapan, dan pada masa wawancara saya sudah berfikir untuk meninggalkan Cyprus. Menyertai Google dan berpindah ke Switzerland kelihatan seperti pilihan yang bagus.

Kesimpulan

Dan di sini kita sampai ke bahagian akhir artikel. Ya, saya gagal temuduga Google dua kali. memang sedih. Mungkin menarik untuk bekerja di sana. Tetapi, anda boleh melihat perkara itu dari sisi lain.

  • Dalam satu setengah tahun, saya belajar banyak perkara yang berkaitan dengan pembangunan perisian.
  • Saya sangat seronok menyertai pertandingan pengaturcaraan.
  • Saya pergi ke Zurich selama beberapa hari. Bilakah saya akan pergi ke sana lagi?
  • Saya mempunyai pengalaman temu duga yang menarik di salah sebuah syarikat IT terbesar di dunia.

Oleh itu, semua yang berlaku selama satu setengah tahun ini boleh dianggap sebagai latihan, atau latihan. Dan hasil latihan ini membuatkan diri mereka terasa. Idea saya untuk meninggalkan Cyprus matang (disebabkan oleh beberapa keadaan keluarga), saya berjaya melepasi beberapa temuduga dengan syarikat terkenal lain dan berpindah selepas 8 bulan. Tetapi itu cerita yang sama sekali berbeza. Walau bagaimanapun, saya fikir saya masih harus berterima kasih kepada Google untuk setahun setengah yang saya kerjakan sendiri, dan selama 2 hari yang menarik di Zurich.

Apa yang boleh saya katakan akhirnya? Jika anda bekerja dalam IT, sediakan diri anda untuk temu duga di Google (Amazon, Microsoft, Apple, dll.). Mungkin suatu hari nanti anda akan pergi ke sana untuk ke sana. Walaupun anda tidak mahu, percayalah, persediaan sedemikian tidak akan memburukkan anda. Sebaik sahaja anda menyedari bahawa anda boleh (walaupun hanya bernasib baik) mendapat temu duga dengan salah satu syarikat ini, lebih banyak jalan akan dibuka kepada anda berbanding sebelum anda memulakan persediaan anda. Dan semua yang anda perlukan sepanjang perjalanan adalah tujuan, ketekunan dan masa. Semoga anda berjaya :)

Sumber: www.habr.com

Beli pengehosan yang boleh dipercayai untuk tapak dengan perlindungan DDoS, pelayan VPS VDS 🔥 Beli pengehosan laman web yang boleh dipercayai dengan perlindungan DDoS, pelayan VPS VDS | ProHoster