
Judul artikel terdengar seperti gagal epik, tetapi pada kenyataannya, semuanya tidak begitu jelas. Dan secara umum, cerita ini berakhir dengan sangat positif, meskipun tidak di Google. Tapi ini topik untuk artikel lain. Dalam artikel yang sama, saya akan berbicara tentang tiga hal: bagaimana proses persiapan saya berjalan, bagaimana wawancara di Google pergi, dan mengapa, menurut pendapat saya, semuanya tidak sejelas kelihatannya.
Bagaimana semuanya dimulai
Suatu malam musim dingin yang dingin di Cypriot, tiba-tiba saya mendapat ide bahwa pengetahuan saya tentang Ilmu Komputer klasik sangat jauh dari rata-rata, dan sesuatu harus dilakukan dengan ini. Ngomong-ngomong, tiba-tiba orang lain belum membaca mengapa malam itu cuaca Siprus dan dingin, maka Anda bisa mengetahuinya di
sini . Setelah beberapa pemikiran, diputuskan untuk mulai mengambil kursus online tentang algoritma dan struktur data. Saya mendengar dari seorang mantan kolega tentang kursus Robert Sedgewick di Coursera. Kursus ini terdiri dari dua bagian (
bagian 1 dan
bagian 2 ). Jika tautannya tiba-tiba berubah, Anda selalu dapat google dengan nama pembuatnya. Setiap bagian memakan waktu 6 minggu. Kuliah diberikan pada awal minggu, dan latihan masih diperlukan selama seminggu. Bagian pertama tentu saja mencakup struktur data dasar, jenis utama penyortiran, dan kompleksitas algoritma. Bagian kedua sudah lebih maju, dimulai dengan grafik dan diakhiri dengan hal-hal seperti Linear Programming dan Intractability. Setelah memikirkan semua hal di atas, saya sampai pada kesimpulan bahwa inilah yang saya butuhkan. Di sini, omong-omong, seorang pembaca yang ingin tahu mungkin bertanya, apa hubungannya Google dengan itu. Dan memang, sampai saat itu dia tidak ada hubungannya dengan itu. Tapi saya butuh tujuan, karena agak sulit melakukannya 12 minggu di malam hari tanpa tujuan. Dan apa yang bisa menjadi tujuan memperoleh pengetahuan baru? Tentu saja, aplikasi mereka dalam praktik. Dalam kehidupan sehari-hari, ini cukup bermasalah, tetapi pada sebuah wawancara di sebuah perusahaan besar dengan mudah. Google cepat menunjukkan bahwa Google (permisi untuk tautologi) adalah salah satu perusahaan terbesar di Eropa (dan saya menganggap Eropa), di mana wawancara tersebut dilakukan. Yakni, kantor mereka di Zurich, Swiss. Jadi sudah diputuskan - kami belajar dan pergi untuk wawancara di Google.
Persiapan run pertama
12 minggu berlalu tanpa diketahui, dan saya menyelesaikan kedua kursus. Kesan saya tentang kursus lebih dari positif, dan saya bisa merekomendasikan mereka untuk semua yang tertarik. Saya menyukai kursus karena alasan berikut:
- Dosen berbicara bahasa Inggris yang cukup jelas
- Bahannya terstruktur dengan baik.
- Presentasi yang indah menunjukkan bagian dalam setiap algoritma
- Pemilihan material yang kompeten
- Latihan yang menarik
- Latihan secara otomatis diperiksa di situs, setelah laporan dibuat
Pekerjaan saya di kursus biasanya berjalan sebagai berikut. Selama 1-2 hari saya mendengarkan ceramah. Kemudian lulus tes cepat untuk pengetahuan materi. Sisa minggu ini melakukan latihan di beberapa iterasi. Setelah yang pertama saya dapatkan 30-70%, yang berikutnya membawa hasilnya menjadi 97-100%. Latihan biasanya terdiri dari implementasi beberapa algoritma, misalnya,
Seam carving atau
bzip .
Setelah menyelesaikan kursus, saya menyadari bahwa banyak pengetahuan adalah banyak kesedihan. Jika sebelumnya saya hanya tahu bahwa saya tidak tahu apa-apa, sekarang saya mulai menyadari bahwa sayalah yang tidak tahu.
Karena itu baru bulan Mei, dan saya sudah merencanakan wawancara untuk musim gugur, saya memutuskan untuk melanjutkan pendidikan. Setelah melihat persyaratan untuk lowongan, diputuskan untuk berjalan secara paralel dalam dua arah: terus mempelajari algoritma dan mengambil kursus dasar tentang pembelajaran mesin. Untuk tujuan pertama, saya memutuskan untuk beralih dari kursus ke buku dan memilih karya monumental Steven Skiena “Algoritma. Panduan Pengembangan ”(Manual Perancangan Algoritma). Bukan sebagai monumental seperti Knut, tapi tetap saja. Untuk gol kedua, saya kembali pergi ke Coursera dan mendaftar di kursus
Pembelajaran Mesin Andrew Ng.
3 bulan lagi berlalu, dan saya menyelesaikan kursus dan buku.
Mari kita mulai dengan buku itu. Pembacaannya ternyata cukup menarik, meski tidak mudah. Pada prinsipnya, saya akan merekomendasikan buku itu, tetapi tidak langsung menyukai buku itu. Secara umum, buku ini memberikan analisis yang lebih mendalam tentang apa yang saya pelajari di kursus. Plus, saya menemukan (dari sudut pandang formal) hal-hal seperti heuristik dan pemrograman dinamis. Secara alami, saya pernah menggunakannya sebelumnya, tetapi saya tidak tahu apa namanya. Juga dalam buku ini ada sejumlah cerita dari kehidupan penulis (Kisah Perang), yang agak melemahkan presentasi akademik. Paruh kedua buku ini bisa dihilangkan dengan cara, ada lebih banyak deskripsi masalah yang ada dan metode untuk menyelesaikannya. Berguna jika diterapkan secara teratur dalam praktik, jika tidak maka akan segera dilupakan.
Kursus ini telah membuat saya senang. Penulis jelas mengetahui pekerjaannya dan menceritakan kisah-kisah menarik. Ditambah, jumlah yang lumayan, yaitu aljabar linier dan dasar-dasar jaringan saraf, saya ingat dari universitas, jadi saya tidak mengalami kesulitan tertentu. Struktur kursus cukup standar. Kursus ini dibagi menjadi beberapa minggu. Setiap minggu, kuliah pertama dicampur dengan tes singkat. Setelah kuliah, tugas diberikan, yang perlu dilakukan, dikirim dan akan diperiksa secara otomatis. Singkatnya, daftar kursus adalah sebagai berikut:
- fungsi biaya
- regresi linier
- keturunan gradien
- penskalaan fitur
- persamaan normal
- regresi logistik
- Klasifikasi multi-kelas (satu vs semua)
- jaringan saraf
- backpropagation
- regularisasi
- bias / varians
- kurva belajar
- metrik kesalahan (presisi, penarikan, F1)
- Dukungan Mesin Vektor (klasifikasi margin besar)
- K-means
- Analisis Komponen Utama
- deteksi anomali
- penyaringan kolaboratif (sistem yang direkomendasikan)
- keturunan stokastik, mini-batch, gradien batch
- pembelajaran online
- Mengurangi peta
- analisis langit-langit
Setelah menyelesaikan kursus, pemahaman tentang semua topik ini hadir. Setelah 2 tahun, hampir semuanya secara alami dilupakan. Saya merekomendasikan hal ini kepada mereka yang tidak terbiasa dengan pembelajaran mesin dan ingin mendapatkan pemahaman yang baik tentang hal-hal dasar untuk melanjutkan.
Jalankan pertama
Itu sudah bulan September dan sudah waktunya untuk memikirkan sebuah wawancara. Karena mengirimkan melalui situs ini cukup berbahaya, saya mulai mencari teman yang bekerja di Google. Pilihannya jatuh pada
datacompboy , karena itu adalah satu-satunya yang saya tahu secara langsung (meskipun tidak secara pribadi). Dia setuju untuk mentransfer resume saya, dan segera saya menerima surat dari perekrut yang menawarkan untuk memesan slot di kalendernya untuk percakapan pertama.Setelah beberapa hari, panggilan terjadi. Kami mencoba berkomunikasi melalui Hangouts, tetapi kualitasnya buruk, jadi kami beralih ke telepon. Pertama, mereka dengan cepat membahas standar bagaimana, mengapa dan mengapa, dan kemudian beralih ke penyaringan teknis. Itu terdiri dari selusin pertanyaan dalam semangat "apa kompleksitas memasukkan ke dalam peta hash", "apa pohon seimbang yang Anda tahu." Tidak sulit jika ada pengetahuan dasar tentang hal-hal ini. Pemutaran berjalan dengan baik dan, menurut hasil, memutuskan untuk mengatur wawancara pertama dalam seminggu.
Wawancara juga melalui Hangouts. Pertama, mereka berbicara tentang saya selama sekitar 5 menit, kemudian melanjutkan ke teka-teki. Tugas ada di grafik. Saya dengan cepat menyadari apa yang harus dilakukan, tetapi memilih algoritma yang salah. Ketika saya mulai menulis kode, saya menyadari ini dan beralih ke opsi lain, yang saya tambahkan. Pewawancara mengajukan beberapa pertanyaan tentang kompleksitas algoritma, bertanya apakah itu bisa lebih cepat. Saya entah bagaimana tumpul dan tidak bisa. Pada saat ini, itu terjadi dan kami mengucapkan selamat tinggal. Kemudian, setelah sekitar 10 menit, saya sadar bahwa alih-alih algoritma Dijkstra yang saya gunakan, akan mungkin untuk menggunakan pencarian pertama yang luas khususnya dalam tugas ini, dan itu akan lebih cepat. Setelah beberapa saat, perekrut memanggil dan mengatakan bahwa wawancara secara keseluruhan berjalan dengan baik dan satu lagi harus diatur. Menyetujui satu minggu kemudian.
Situasi menjadi lebih buruk saat ini. Jika untuk pertama kalinya pewawancara itu ramah dan mudah bergaul, kali ini agak suram. Saya tidak bisa segera mencari tahu masalahnya, meskipun ide-ide yang saya berikan, pada prinsipnya, dapat mengarah ke solusinya. Akibatnya, setelah beberapa tips dari pewawancara, saya mengambil keputusan. Kali ini lagi menjadi pencarian pertama, dengan hanya beberapa poin. Saya menulis keputusan, dalam batas waktu, tetapi lupa tentang kasus batas. Setelah beberapa waktu, perekrut menelepon dan mengatakan bahwa kali ini pewawancara tidak puas, karena menurutnya saya memerlukan terlalu banyak petunjuk (3 atau 4 buah) dan saya terus-menerus mengubah kode saat menulis. Berdasarkan hasil dua wawancara, diputuskan untuk tidak melangkah lebih jauh, tetapi untuk menunda wawancara berikutnya selama satu tahun, jika saya memiliki keinginan seperti itu. Untuk sim dan pamit.
Dan saya membuat beberapa kesimpulan tentang cerita ini:
- Teori itu bagus, tetapi Anda perlu menavigasi dengan cepat
- Sebuah teori tanpa latihan tidak akan membantu. Hal ini diperlukan untuk menyelesaikan masalah dan membawa penulisan kode ke otomatisme.
- Banyak tergantung pada pewawancara. Dan tidak ada yang harus dilakukan.
Persiapan untuk pendekatan kedua
Setelah memikirkan situasinya, saya memutuskan untuk mencoba lagi dalam setahun. Dan targetnya sedikit diedit. Jika sebelumnya tujuan utama adalah untuk belajar, dan wawancara di Google seperti wortel yang jauh, sekarang melewati wawancara adalah tujuannya, dan belajar adalah sarana.
Jadi, sebuah rencana baru dikembangkan, yang mencakup hal-hal berikut:
- Terus belajar teori dengan membaca buku dan artikel.
- Memecahkan masalah algoritmik dalam jumlah 500-1000 lembar.
- Terus belajar teori dengan menonton video.
- Terus belajar teori melalui kursus.
- Jelajahi pengalaman wawancara orang lain di Google.
Rencana itu selesai oleh saya dalam setahun. Selanjutnya, saya akan menjelaskan apa yang sebenarnya saya lakukan untuk masing-masing poin.
Buku dan artikel
Saya bahkan tidak ingat jumlah artikel yang saya baca, saya membacanya dalam bahasa Rusia dan bahasa Inggris. Mungkin yang
ini ternyata adalah situs yang paling berguna. Berikut adalah deskripsi sejumlah besar algoritma menarik dengan contoh kode.
Saya membaca 5 buku: Algoritma, edisi ke-4 (Sedgewick, Wayne), Pengantar Algoritma Edisi ke-3 (Cormen, Leiserson, Rivest, Stein), Memecahkan Coding Wawancara edisi ke-4 (Gayle Laakmann), Wawancara Pemrograman Eksposisi edisi ke-2 (Mongan, Suojanen , Giguere), Elemen Wawancara Pemrograman (Aziz, Lee, Prakash). Mereka dapat dibagi menjadi 2 kategori. Buku pertama termasuk Sedgwick dan Cormen. Ini adalah teori. Sisanya adalah persiapan untuk wawancara. Sedgwick dalam buku itu menceritakan tentang hal yang sama seperti di kursusnya. Hanya secara tertulis. Tidak masuk akal untuk membaca dengan seksama jika Anda telah mengambil kursus, tetapi Anda harus mengabaikannya. Jika Anda tidak menonton kursus, maka masuk akal untuk membaca. Korman sepertinya terlalu membosankan bagiku. Dia menguasai dengan jujur dengan susah payah. Dia hanya mengeluarkan
teorema master , dan beberapa struktur data jarang digunakan (tumpukan Fibonacci, pohon van Emde Boas, radix heap).
Buku untuk persiapan wawancara layak dibaca setidaknya satu. Mereka semua dibangun di atas prinsip yang kira-kira sama. Mereka menggambarkan proses wawancara di perusahaan teknologi besar, memberikan hal-hal dasar dari Ilmu Komputer, tugas untuk hal-hal dasar ini, menyelesaikan masalah dan menganalisis solusi. Dari ketiganya, saya mungkin akan merekomendasikan Cracking the Coding Wawancara sebagai yang utama, dan sisanya seperti yang diinginkan.
Tugas Algoritma
Ini mungkin titik pelatihan yang paling menarik. Anda tentu saja dapat duduk dan menyelesaikan masalah dengan bodoh. Ada banyak situs berbeda untuk ini. Saya terutama menggunakan tiga:
Hackerrank ,
CodeChef dan
LeetCode . Di CodeChef, tugas dikelompokkan berdasarkan kompleksitas, tetapi tidak berdasarkan topik. Di Hackerrank, baik dalam kompleksitas maupun topik.
Tetapi ketika saya segera menemukan sendiri, ada cara yang lebih menarik. Dan ini adalah kompetisi (tantangan pemrograman atau kontes pemrograman). Ketiga situs menyediakannya. Benar, ada masalah dengan LeetCode - zona waktu yang tidak nyaman. Karena itu, saya tidak berpartisipasi di situs ini. Hackerrank dan CodeChef menyediakan sejumlah besar kompetisi yang berbeda, berlangsung dari 1 jam hingga 10 hari. Format yang berbeda memiliki aturan yang berbeda, ya, ini bisa dibicarakan untuk waktu yang lama. Poin utama mengapa kompetisi itu baik adalah pengenalan elemen kompetitif (dan lagi-lagi tautologi) ke dalam proses pembelajaran.
Secara total, saya berpartisipasi dalam 37 kompetisi di Hackerrank. Dari jumlah tersebut, 32 dinilai, dan 5 disponsori (saya bahkan menerima $ 25 di salah satunya) atau oleh penggemar. Dalam peringkat, saya memasukkan 4% teratas 10 kali, 11 kali teratas 12% dan 5 kali teratas 25%. Hasil terbaik adalah 27/1459 dalam 3 jam dan 22/9721 dalam mingguan.
Saya beralih ke CodeChef ketika kompetisi lebih jarang di Hackerrank. Secara total, saya berhasil berpartisipasi dalam 5 kompetisi. Hasil terbaik adalah 426/5019 dalam kompetisi sepuluh hari.
Secara total, di kompetisi dan seperti itu, saya memecahkan lebih dari 1000 masalah, yang sesuai dengan rencana. Sayangnya, sekarang, tidak ada waktu luang untuk melanjutkan aktivitas kompetitif, juga tidak ada tujuan yang dapat kita atributkan sebagai waktu non-bebas. Tapi itu menyenangkan. Saya merekomendasikan mereka yang tertarik untuk menemukan orang yang berpikiran sama. Bersama atau kelompok jauh lebih menarik. Saya bersenang-senang dengan teman ini, jadi mungkin itu berjalan dengan sangat baik.
Tonton video
Setelah membaca buku Skien, pada prinsipnya, saya menjadi tertarik pada apa yang dia lakukan. Seperti Sedgwick, dia adalah profesor di universitas. Dalam hal ini, dalam jaringan Anda dapat menemukan video kursusnya. Saya memutuskan untuk mengambil kursus
COMP300E - Tantangan Pemrograman - 2009 HKUST . Saya tidak akan mengatakan bahwa saya sangat menyukainya. Pertama, kualitas videonya tidak terlalu bagus. Kedua, saya tidak mencoba memecahkan masalah yang ditangani dalam kursus sendiri. Jadi keterlibatannya tidak terlalu tinggi.
Juga, dalam proses penyelesaian masalah, mencoba menemukan algoritma yang tepat, saya menemukan video Tushar Roy. Dia bekerja di Amazon, dan sekarang bekerja di Apple. Seperti yang kemudian saya ketahui sendiri, ia memiliki
saluran YouTube tempat ia memposting analisis berbagai algoritma. Pada saat penulisan, saluran ini berisi 103 video. Dan saya harus mengatakan bahwa analisis dalam pelaksanaannya dibuat dengan sangat baik. Saya mencoba menonton penulis lain, tetapi entah bagaimana itu tidak berhasil. Jadi saya merekomendasikan saluran ini untuk ditonton.
Lulus kursus
Kemudian saya tidak melakukan sesuatu yang istimewa. Saya menonton video dari Pengembang Android Nanodegree dari Google dan mengambil kursus dari ITMO
Cara Menangkan Kompetisi Pengkodean: Rahasia Juara . Nanodegree sepenuhnya dibayangkan, meskipun secara alami saya tidak belajar sesuatu yang baru dari sana. Kursus dari ITMO dalam hal teori sedikit kusut, tetapi tugasnya menarik. Saya tidak akan merekomendasikan mulai dengan itu, tetapi pada prinsipnya waktu dihabiskan untuk alasan yang baik.
Jelajahi pengalaman orang lain
Tentu saja, banyak orang mencoba masuk ke Google. Seseorang memukul, seseorang tidak. Beberapa menulis artikel tentang ini. Dari hal-hal menarik, saya mungkin akan menyebutkan yang
ini dan yang
ini . Dalam kasus pertama, seseorang telah mempersiapkan untuk dirinya sendiri daftar apa yang perlu dia pelajari untuk menjadi Insinyur Perangkat Lunak dan mendapatkan di Google. Dia berakhir di Amazon, tetapi ini tidak begitu penting. Manual kedua ditulis oleh seorang insinyur Google, Larisa
Agarkova (
Larrr ). Selain dokumen ini, Anda juga dapat membaca
blognya .
Masuk akal untuk membaca umpan balik tentang wawancara Glassdoor. Mereka semua kurang lebih serupa, tetapi beberapa informasi yang berguna dapat diambil.
Saya tidak akan memberikan tautan ke artikel kecil lainnya, Anda sendiri dapat menemukannya di Google dengan sangat baik.
Jalankan kedua
Dan sekarang tahun telah berlalu. Dia ternyata sangat jenuh dalam hal belajar. Tetapi pada musim gugur yang baru saya datang dengan pengetahuan teoritis dan keterampilan praktis yang jauh lebih dalam. Beberapa minggu lagi tersisa sebelum
batas waktu untuk tahun yang ditentukan untuk
saya , ketika sebuah surat dari seorang perekrut Google turun di surat menanyakan apakah saya masih memiliki keinginan untuk bekerja untuk Google dan apakah akan berbicara dengannya. Secara alami, saya tidak ditentang. Setuju untuk menelepon dalam seminggu. Saya juga dimintai resume yang diperbarui, di mana saya menambahkan deskripsi singkat tentang apa yang saya lakukan selama bekerja dan pada prinsipnya.
Setelah berbicara seumur hidup, mereka memutuskan bahwa dalam seminggu akan ada wawancara Hangouts, seperti tahun lalu. Seminggu berlalu, tiba saatnya untuk wawancara, tetapi pewawancara tidak muncul. 10 menit berlalu, saya sudah mulai merasa gugup, ketika tiba-tiba seseorang masuk ke obrolan. Ternyata beberapa saat kemudian, pewawancara saya untuk beberapa alasan tidak dapat muncul dan dia segera menemukan penggantinya. Pria itu agak tidak siap dalam hal mengatur komputer dan dalam melakukan wawancara. Tapi kemudian semuanya berjalan dengan baik. Saya dengan cepat menyelesaikan masalah, menjelaskan di mana ada trik, bagaimana menyiasatinya. Kami membahas beberapa opsi berbeda untuk masalah, kompleksitas algoritma. Kemudian mereka berbicara selama 5 menit lagi, insinyur itu memberi tahu kesannya tentang pekerjaannya di Munich (mereka tidak melihat pengganti yang mendesak di Zurich), dan mereka berpisah.
Pada hari yang sama, seorang perekrut menghubungi saya dan mengatakan bahwa wawancara itu sangat baik dan mereka siap mengundang saya untuk wawancara di kantor. Hari berikutnya, mereka menelepon melalui Hangouts dan mendiskusikan detailnya. Karena saya perlu melakukan visa, kami memutuskan untuk menjadwalkan wawancara dalam sebulan.
Sambil menyiapkan dokumen, di sepanjang jalan, saya membahas dengan perekrut wawancara mendatang. Wawancara Google standar terdiri dari 4 algoritmik dan satu Desain Sistem. Tapi, karena saya mendapat pekerjaan sebagai pengembang Android, saya diberi tahu bahwa bagian dari wawancara akan dengan spesifik Android. Apa tepatnya dan apa yang akan menjadi spesifik dari perekrut saya tidak bisa goyang. Seperti yang saya pahami, itu diperkenalkan relatif baru-baru ini dan dia sendiri tidak terlalu up to date. Saya juga mendaftar untuk dua sesi pelatihan: bagaimana menjalani wawancara algoritmik dan bagaimana menjalani wawancara Desain Sistem. Sesi-sesi itu utilitas menengah. Di sana juga, tidak ada yang bisa memberi tahu saya apa yang diminta pengembang Android. Karena itu, persiapan saya bulan ini adalah sebagai berikut:
- Membeli papan tulis dan menulis 2-3 lusin algoritma paling populer di atasnya dari memori. 3-5 potong setiap hari. Total masing-masing ditulis beberapa kali.
- Menyegarkan berbagai informasi Android yang tidak saya gunakan setiap hari
- Menonton beberapa video tentang Skala Besar dan semua itu
Seperti yang saya katakan, secara paralel saya membuat dokumen untuk perjalanan. Untuk memulai, saya diminta data untuk membuat surat undangan. Kemudian saya mencoba untuk waktu yang lama untuk mencari tahu siapa di Siprus yang membuat visa ke Swiss, karena kedutaan Swiss tidak melakukan ini. Ternyata, ini adalah konsulat Austria. Saya menelepon dan membuat janji. Mereka meminta setumpuk dokumen, tetapi tidak ada yang menarik. Foto, paspor, izin tinggal, banyak sertifikat berbeda, dan tentu saja surat undangan. Surat itu, sementara itu, tidak datang. Sebagai hasilnya, saya pergi dengan cetakan yang biasa dan itu benar-benar bekerja.
Surat itu sendiri tiba 3 hari kemudian, dan Cypriot FedEx tidak dapat menemukan alamat saya dan harus mengejarnya sendiri. Pada saat yang sama saya menerima semuanya dalam paket FedEx'e yang sama, yang juga tidak dapat mereka kirimkan kepada saya, karena mereka tidak menemukan alamatnya, dan yang sudah ada di sana sejak Juni (5 bulan, Karl). Karena saya tidak tahu tentangnya, itu wajar dan tidak menganggap mereka memilikinya. Saya mendapat visa tepat waktu, setelah itu saya memesan hotel dan menawarkan opsi penerbangan. Saya mengoreksi opsi untuk membuatnya lebih nyaman. Tidak ada penerbangan langsung, akibatnya terbang ke sana melalui Athena, dan kembali melalui Wina.Setelah semua formalitas dengan perjalanan diselesaikan, beberapa hari berlalu dan saya benar-benar terbang ke Zurich. Saya mendapat tanpa insiden. Saya naik dari bandara ke kota dengan kereta api - dengan cepat dan nyaman. Setelah berkeliaran di sekitar kota sedikit, saya menemukan sebuah hotel dan menetap di. Karena hotel dipesan tanpa makanan, makan di sebelah dan tertidur, karena penerbangan pagi dan saya sudah ingin tidur. Hari berikutnya saya sarapan di hotel (untuk sejumlah uang) dan pergi ke kantor Google. Total di Zurich, Google memiliki beberapa kantor. Wawancara saya tidak penting. Dan secara umum, kantor itu terlihat sangat biasa, jadi saya tidak memiliki kesempatan untuk melihat semua hal baik dari kantor Google "normal". Check in dengan administrator dan duduk untuk menunggu. Setelah beberapa waktu, perekrut keluar dan memberi tahu saya rencana untuk hari itu, setelah itu dia membawa saya ke sebuah ruangan di mana wawancara seharusnya diadakan.Sebenarnya, rencana tersebut termasuk 3 wawancara, makan siang dan 2 wawancara lagi.Waktu wawancara
Wawancara pertama hanya tentang Android. Selain itu, tidak ada hubungannya sama sekali dengan algoritma. Namun, kejutan. Yah, oke, itu bahkan lebih akrab. Diminta membuat komponen UI tertentu. Pertama kita membahas apa dan bagaimana. Dia menawarkan untuk membuat keputusan di RxJava, menjelaskan apa sebenarnya dan mengapa dia melakukannya. Mereka mengatakan bahwa ini tentu baik, tetapi mari kita buat dengan kerangka Android. Dan pada saat yang sama kita akan menulis kode di papan tulis. Dan bukan hanya komponen, tetapi seluruh Kegiatan menggunakan komponen ini. Untuk itulah saya belum siap. Adalah satu hal untuk menulis algoritme untuk 30-50 baris di papan, dan hal lain adalah mie kode Android, meskipun dengan singkatan dan komentar dalam semangat "well, saya tidak akan menulis ini, karena sangat jelas." Ternyata beberapa vinaigrette di 3 papan. Yaitu
Saya memecahkan masalah, tetapi tampak bodoh.Wawancara Nomor Dua
Kali ini wawancara menggunakan algoritma. Dan ada dua pewawancara. Yang satu sebenarnya pewawancara, dan yang kedua adalah Padawan muda (pewawancara bayangan). Itu perlu untuk datang dengan struktur data dengan properti tertentu. Pertama, seperti biasa, kami membahas masalahnya. Saya mengajukan berbagai pertanyaan, jawab pewawancara. Setelah beberapa waktu, mereka meminta saya untuk menulis beberapa metode struktur yang ditemukan di papan tulis. Kali ini, kurang lebih berhasil, meskipun dengan beberapa kesalahan kecil, yang saya koreksi dengan bantuan pewawancara.Wawancara nomor tiga
Kali ini, Desain Sistem, yang tiba-tiba juga berubah menjadi Android. Itu perlu untuk mengembangkan aplikasi dengan fungsi tertentu. Kami membahas persyaratan untuk aplikasi, untuk server, untuk protokol komunikasi. Selanjutnya, saya mulai menggambarkan komponen atau pustaka apa yang akan saya gunakan ketika membangun aplikasi. Dan kemudian pada penyebutan Penjadwal Pekerjaan ada semacam lelucon. Intinya adalah bahwa saya tidak pernah menggunakannya dalam praktik, karena pada saat rilis saya hanya beralih ke dukungan aplikasi, di mana tidak ada tugas untuk aplikasi tersebut. Ketika mengembangkan yang berikutnya, itu sama. Yaitu, secara teori, saya tahu benda apa ini, kapan dan bagaimana ia digunakan, tetapi tidak ada pengalaman dalam penerapannya. Dan pewawancara sepertinya tidak terlalu menyukainya. Kemudian mereka meminta saya untuk menulis kode. Ya, ketika mengembangkan aplikasi, Anda harus segera menulis kode. Sekali lagi, kode Android di papan tulis.Ternyata menakutkan lagi.Makan siang
Laki-laki lain seharusnya datang, tetapi ternyata tidak. Dan Google memiliki kesalahan. Akibatnya, saya pergi makan malam dengan pewawancara sebelumnya, rekannya, dan tak lama kemudian pewawancara berikutnya bergabung. Makan malam itu cukup baik. Sekali lagi, karena ini bukan kantor utama di Zurich, ruang makan tampak cukup biasa, meskipun sangat menyenangkan.Wawancara nomor empat
Akhirnya, algoritma dalam bentuk murni. Saya memecahkan masalah pertama dengan cukup cepat dan segera secara efektif, meskipun saya melewatkan satu kasus batas, tetapi atas permintaan pewawancara (dia memberikan kasus batas yang sangat) saya menemukan masalah dan memperbaikinya. Tentu saja Anda harus menulis kode di papan tulis. Kemudian tugas yang sama diberikan, tetapi lebih sulit. Baginya, saya menemukan beberapa solusi yang tidak optimal dan hampir menemukan yang optimal, itu tidak cukup 5-10 menit untuk memeras pikiran. Yah, saya tidak punya waktu untuk menulis kode untuk itu.Wawancara nomor lima
Dan lagi, wawancara Android. Saya heran mengapa saya mempelajari algoritma sepanjang tahun.Awalnya ada beberapa pertanyaan sederhana. Kemudian pewawancara menulis kode di papan tulis dan meminta untuk menemukan masalah di dalamnya. Ditemukan, dijelaskan, diperbaiki. Dibahas. Dan kemudian beberapa pertanyaan tak terduga dimulai dalam semangat "apa yang dilakukan metode U di kelas X", "apa yang dilakukan metode U di dalam", "apa yang dilakukan kelas Z". Tentu saja, saya menjawab sesuatu, tetapi kemudian saya mengatakan bahwa saya belum menemukan ini dalam pekerjaan saya akhir-akhir ini dan secara alami saya tidak ingat siapa, apa dan bagaimana rinciannya. Setelah itu, pewawancara bertanya apa yang saya lakukan sekarang. Dan pertanyaannya berlanjut pada topik ini. Di sini saya sudah menjawab jauh lebih baik.Setelah wawancara terakhir, mereka mengambil izin dari saya, berharap mereka beruntung dan mengirim mereka pulang. Dia berjalan keliling kota sedikit, makan malam, dan pergi ke hotel, di mana dia tertidur, karena penerbangan kembali pagi-pagi sekali. Keesokan harinya, saya dengan aman mencapai Siprus. Saya menulis umpan balik wawancara atas permintaan perekrut dan mengisi formulir pengembalian uang dalam layanan khusus. Dari semua pengeluaran, Google langsung membayar tiket saja. Hotel, makanan, dan perjalanan dibayar oleh kandidat. Kemudian kami mengisi formulir, menerapkan cek dan mengirimkannya ke kantor khusus. Mereka memprosesnya dan dengan cepat mentransfer uang ke akun.Butuh satu setengah minggu untuk memproses hasil wawancara. Setelah itu saya diberitahu bahwa saya "sedikit di bawah bar". Maksudku, aku tidak bertahan sedikitpun. Lebih khusus, 2 wawancara berjalan dengan baik, 2 tidak terlalu, dan Desain Sistem tidak terlalu. Sekarang, jika setidaknya 3 berjalan dengan baik, maka kita bisa bertarung, dan tanpa peluang. Mereka menyarankan agar mereka datang setahun kemudian.Pada awalnya, tentu saja, saya kesal, karena banyak upaya telah dikeluarkan dalam persiapan, dan pada saat wawancara saya sudah matang memikirkan meninggalkan Siprus. Perangkat Google dan pindah ke Swiss sepertinya pilihan yang bagus.Kesimpulan
Dan di sini kita sampai pada bagian akhir artikel. Ya, saya tidak melalui wawancara di Google dua kali. Ini menyedihkan.
Mungkin akan menarik untuk bekerja di sana. Tapi, Anda bisa melihat masalah dari sisi lain.- Selama satu setengah tahun, saya belajar banyak hal yang berkaitan dengan pengembangan perangkat lunak.
- Saya mendapat banyak kesenangan berpartisipasi dalam kompetisi pemrograman.
- Saya pergi selama beberapa hari ke Zurich. Kapan lagi saya akan keluar?
- Saya mendapat pengalaman wawancara yang menarik di salah satu perusahaan IT terbesar di dunia.
Dengan demikian, semua yang terjadi selama setengah tahun terakhir dapat dengan mudah dianggap sebagai pelatihan, atau pelatihan. Dan hasil dari pelatihan ini membuat mereka merasa. Gagasan saya untuk meninggalkan Siprus sudah matang (untuk beberapa alasan keluarga), saya berhasil melewati beberapa wawancara dengan perusahaan terkenal lainnya dan setelah 8 bulan saya pindah. Tetapi ini adalah kisah yang sangat berbeda. , , Google , , 2 .
. IT, Google (Amazon, Microsoft, Apple ..). , - . , , . , , ( ) , , . , , . :)