Google'da bir röportaja nasıl hazırlanılır ve başarısız olunur? İki kere

Google'da bir röportaja nasıl hazırlanılır ve başarısız olunur? İki kere

Makalenin başlığı epik bir başarısızlık gibi görünüyor, ancak gerçekte her şey o kadar basit değil. Ve genel olarak bu hikaye Google'da olmasa da çok olumlu sonuçlandı. Ama bu başka bir yazının konusu. Aynı yazımda üç şeyden bahsedeceğim: Hazırlık sürecimin nasıl ilerlediği, Google'daki görüşmelerin nasıl gerçekleştiği ve bana göre neden her şey göründüğü kadar net değil.

Her şey nasıl başladı

Soğuk bir Kıbrıs kış akşamında, birdenbire klasik Bilgisayar Bilimleri bilgimin ortalamanın çok uzağında olduğu ve bu konuda bir şeyler yapılması gerektiği düşüncesi aklıma geldi. Bu arada, eğer birileri akşamın neden Kıbrıslı ve soğuk olduğunu henüz okumadıysa, o zaman bunu öğrenebilirsiniz. burada. Biraz düşündükten sonra algoritmalar ve veri yapıları üzerine çevrimiçi bir kurs alarak başlamaya karar verildi. Eski meslektaşlarımdan birinden Robert Sedgewick'in Coursera'daki kursunu duydum. Kurs iki bölümden oluşmaktadır (Bölüm 1 и Bölüm 2). Bağlantılar aniden değişirse, yazarın adını her zaman Google'da bulabilirsiniz. Her bölüm 6 hafta sürmektedir. Dersler hafta başında veriliyor ve hafta içinde yine egzersiz yapmanız gerekiyor. Dersin ilk kısmı temel veri yapılarını, temel sıralama türlerini ve algoritmaların karmaşıklığını kapsamaktadır. İkinci bölüm zaten daha ileri düzeydedir; grafiklerle başlayıp Doğrusal Programlama ve Anlaşılmazlık gibi şeylerle bitmektedir. Yukarıdakilerin hepsini düşündükten sonra, tam olarak ihtiyacım olan şeyin bu olduğu sonucuna vardım. Bu arada meraklı bir okuyucu şunu sorabilir: Google'ın bununla ne alakası var? Ve aslında şu ana kadar bununla hiçbir ilgisi yoktu. Ama bir hedefe ihtiyacım vardı, çünkü 12 hafta boyunca akşamları hedefsiz çalışmak biraz zor oluyor. Yeni bilgi edinmenin amacı ne olabilir? Tabii ki, bunların pratikte uygulanması. Günlük yaşamda bu oldukça sorunludur ancak büyük bir şirketle yapılan görüşme sırasında kolaydır. Hızlı bir Google, Google'ın (totolojiyi bağışlayın) Avrupa'nın bu tür röportajlar yürüten en büyük şirketlerinden biri olduğunu (ve özellikle Avrupa'ya bakıyordum) gösterdi. Yani ofisleri İsviçre'nin Zürih şehrinde bulunmaktadır. Böylece karar verildi; hadi ders çalışalım ve Google'da bir röportaja gidelim.

İlk yaklaşıma hazırlanıyoruz

12 hafta hızla geçti ve her iki kursu da tamamladım. Kurslarla ilgili izlenimlerim fazlasıyla olumlu ve ilgilenen herkese tavsiye edebilirim. Kursları aşağıdaki nedenlerden dolayı sevdim:

  • Öğretim görevlisi oldukça net İngilizce konuşuyor
  • Malzeme iyi yapılandırılmıştır
  • Her algoritmanın içini gösteren muhteşem sunumlar
  • Yetkili malzeme seçimi
  • İlginç egzersizler
  • Egzersizler sitede otomatik olarak kontrol edilir ve ardından bir rapor oluşturulur.

Derslerdeki çalışmalarım genelde bu şekilde ilerliyordu. 1-2 günde dersleri dinledim. Daha sonra materyalle ilgili bilgilerini hızlı bir şekilde test ettiler. Haftanın geri kalanında egzersizi birkaç tekrarla yaptım. İlkinden sonra %30-70'imi aldım, sonrakiler sonucu %97-100'e getirdi. Alıştırma genellikle bazı algoritmaların uygulanmasını içeriyordu; dikiş oyma veya bzip.

Kursları tamamladıktan sonra çok fazla bilginin çok fazla acıyı beraberinde getirdiğini fark ettim. Daha önce hiçbir şey bilmediğimi biliyorken, şimdi bilmeyenin ben olduğumu fark etmeye başladım.

Henüz mayıs ayı olduğundan ve görüşmeyi sonbahara planladığımdan eğitimime devam etmeye karar verdim. Açık pozisyon için gereklilikler incelendikten sonra paralel olarak iki yöne gitmeye karar verildi: algoritmaları incelemeye devam etmek ve makine öğrenimi konusunda temel bir ders almak. İlk hedef olarak derslerden kitaba geçmeye karar verdim ve Steven Skiena'nın anıtsal eseri Algoritmalar'ı seçtim. Algoritma Tasarım Kılavuzu. Knut'unki kadar anıtsal değil ama yine de. İkinci gol için Coursera'ya geri döndüm ve Andrew Ng'nin kursuna kaydoldum. Makine öğrenme.

3 ay daha geçti ve kursu ve kitabı bitirdim.

Kitapla başlayalım. Okumanın kolay olmasa da oldukça ilginç olduğu ortaya çıktı. Prensip olarak kitabı tavsiye ederim ama hemen değil. Genel olarak kitap, kursta öğrendiklerime daha derinlemesine bir bakış sağlıyor. Ayrıca buluşsal yöntem ve dinamik programlama gibi şeyleri (resmi bir bakış açısıyla) keşfettim. Doğal olarak daha önce de kullanmıştım ama isimlerini bilmiyordum. Kitapta ayrıca, sunumun akademik doğasını biraz sulandıran, yazarın hayatından (Savaş Hikayesi) bir dizi hikaye yer alıyor. Bu arada, kitabın ikinci yarısı atlanabilir, daha ziyade mevcut sorunların bir tanımını ve bunları çözme yöntemlerini içerir. Pratikte düzenli kullanılırsa faydalıdır, aksi halde hemen unutulur.

Kurstan fazlasıyla memnun kaldım. Yazar açıkça işini biliyor ve ilginç bir şekilde konuşuyor. Artı, doğrusal cebir ve sinir ağlarının temelleri gibi önemli bir kısmını üniversiteden hatırladım, bu yüzden herhangi bir zorluk yaşamadım. Kursun yapısı oldukça standarttır. Kurs haftalara bölünmüştür. Her hafta kısa testlerle karışık dersler verilmektedir. Derslerden sonra size yapmanız, göndermeniz gereken bir ödev veriliyor ve otomatik olarak kontrol ediliyor. Kısaca derste öğretilenlerin listesi şu şekildedir:
- maliyet fonksiyonu
- doğrusal regresyon
- dereceli alçalma
- özellik ölçeklendirme
- normal denklem
- lojistik regresyon
— çok sınıflı sınıflandırma (bire karşı hepsi)
- nöral ağlar
- geri yayılım
- düzenlileştirme
— önyargı/varyans
— öğrenme eğrileri
— hata ölçümleri (hassasiyet, geri çağırma, F1)
— Vektör Makinelerini Destekleyin (geniş marj sınıflandırması)
— K-anlamına gelir
-Temel bileşenler Analizi
- anomali tespiti
— işbirliğine dayalı filtreleme (önerme sistemi)
— stokastik, mini-toplu, toplu gradyan inişleri
- çevrimiçi öğrenme
- Harita indirgeme
- tavan analizi
Kursu tamamladıktan sonra tüm bu konulara dair bir anlayış mevcuttu. 2 yıl sonra doğal olarak neredeyse her şey unutuldu. Makine öğrenimine aşina olmayan ve ilerlemek için temel şeyleri iyi anlamak isteyenlere tavsiye ederim.

İlk çalıştırma

Zaten eylül ayıydı ve bir röportaj düşünmenin zamanı gelmişti. Site üzerinden başvuru yapmak oldukça felaket olduğundan Google'da çalışan arkadaşlar aramaya başladım. Seçim düştü vericompboy, çünkü doğrudan tanıdığım tek kişi oydu (kişisel olarak olmasa bile). Özgeçmişimi iletmeyi kabul etti ve çok geçmeden işe alım görevlisinden ilk görüşme için takviminde bir yer ayırmayı teklif eden bir mektup aldım.Birkaç gün sonra arama gerçekleşti. Hangouts aracılığıyla iletişim kurmayı denedik ama kalite çok kötüydü, bu yüzden telefona geçtik. Öncelikle standardın nasıl, neden ve niçin olduğunu hızla tartıştık ve ardından teknik taramaya geçtik. "Bir hash haritasına eklemenin zorluğu nedir", "hangi dengeli ağaçları biliyorsunuz?" ruhuyla bir düzine sorudan oluşuyordu. Bu konularda temel bilgiye sahipseniz zor değil. Tarama iyi geçti ve sonuçlara göre ilk görüşmeyi bir hafta sonra düzenlemeye karar verdiler.

Röportaj Hangouts aracılığıyla da gerçekleşti. Önce yaklaşık 5 dakika kadar benim hakkımda konuştular, sonra soruna geçtiler. Sorun grafiklerdeydi. Ne yapılması gerektiğini hemen anladım ama yanlış algoritmayı seçtim. Kod yazmaya başladığımda bunu fark ettim ve başka bir seçeneğe geçtim ve onu da tamamladım. Görüşmeci, algoritmanın karmaşıklığı hakkında birkaç soru sordu ve bunun daha hızlı yapılıp yapılamayacağını sordu. Bir şekilde donuklaştım ve yapamadım. Bu noktada zaman doldu ve vedalaştık. Yaklaşık 10 dakika sonra, bu özel problemde kullandığım Dijkstra algoritması yerine genişlik öncelikli aramayı kullanabileceğimi ve bunun daha hızlı olacağını anladım. Bir süre sonra işe alım görevlisi aradı ve görüşmenin genel olarak iyi gittiğini ve bir başka görüşmenin düzenlenmesi gerektiğini söyledi. Bir hafta daha kararlaştırdık.

Bu sefer işler daha da kötüye gitti. Görüşmeyi yapan kişi ilk seferinde arkadaş canlısı ve girişken olsa da, bu sefer biraz kasvetliydi. Aklıma gelen fikirler prensipte çözüme yol açsa da sorunu hemen çözemedim. Sonunda görüşmecinin birkaç yönlendirmesinden sonra çözüm aklıma geldi. Bu kez, yalnızca birkaç noktadan, yine geniş kapsamlı bir arama olduğu ortaya çıktı. Çözümleri yazdım, zamanında karşıladım ama uç durumları unuttum. Bir süre sonra işe alım görevlisi aradı ve bu sefer görüşmecinin mutsuz olduğunu, çünkü ona göre çok fazla ipucuna (3 veya 4 parça) ihtiyacım olduğunu ve yazarken kodu sürekli değiştirdiğimi söyledi. İki görüşmenin sonuçlarına göre daha ileri gitmemeye, eğer istenirse bir sonraki görüşmenin bir yıl ertelenmesine karar verildi. Bu yüzden vedalaştık.

Ve bu hikayeden birkaç sonuç çıkardım:

  • Teori iyidir, ancak hızlı bir şekilde gezinmeniz gerekir
  • Pratik olmadan teorinin faydası olmaz. Sorunları çözmemiz ve kodlamayı otomatikleştirmemiz gerekiyor.
  • Pek çok şey görüşmeyi yapan kişiye bağlıdır. Ve bu konuda hiçbir şey yapılamaz.

İkinci koşuya hazırlanıyor

Durumu düşündükten sonra bir yıl sonra tekrar denemeye karar verdim. Ve hedefi biraz düzenledik. Daha önce asıl amaç ders çalışmaksa ve Google'da röportaj yapmak uzak bir havuç gibiydi, şimdi ise amaç röportajı geçmek, araç ise çalışmaktı.
Böylece aşağıdaki noktaları içeren yeni bir plan geliştirildi:

  • Kitap ve makaleler okuyarak teoriyi incelemeye devam edin.
  • 500-1000 adetlik algoritmik problemleri çözün.
  • Videoları izleyerek teoriyi öğrenmeye devam edin.
  • Kurslar aracılığıyla teoriyi incelemeye devam edin.
  • Google'daki röportajlarla diğer insanların deneyimlerini inceleyin.

Planı bir yıl içinde tamamladım. Daha sonra her bir nokta için tam olarak ne yaptığımı anlatacağım.

Kitaplar ve makaleler

Okuduğum makalelerin sayısını bile hatırlamıyorum, hem Rusça hem de İngilizce okudum. Muhtemelen en yararlı site Bunu. Burada çok sayıda ilginç algoritmanın açıklamasını kod örnekleriyle bulabilirsiniz.

5 kitap okudum: Algorithms, 4th edition (Sedgewick, Wayne), Introduction to Algorithms 3rd Edition (Cormen, Leiserson, Rivest, Stein), Cracking the Coding Interview 4th edition (Gayle Laakmann), Programming Interviews Exposed 2nd edition (Mongan, Suojanen) , Giguere), Programlama Röportajlarının Unsurları (Aziz, Lee, Prakash). 2 kategoriye ayrılabilirler. İlki Sedgwick ve Corman'ın kitaplarını içeriyor. Bu bir teori. Gerisi röportaj için hazırlıktır. Sedgwick derslerinde anlattığının aynısını kitapta da anlatıyor. Sadece yazılı olarak. Kursu aldıysanız dikkatlice okumanın pek bir anlamı yok, ama yine de göz atmaya değer. Kursu izlemediyseniz okumanızda fayda var. Cormen bana çok sıkıcı geldi. Doğrusunu söylemek gerekirse bu konuda ustalaşmakta zorlandım. hemen oradan çıkardım ana teorive nadiren kullanılan birkaç veri yapısı (Fibonacci yığını, van Emde Boas ağacı, radix yığını).

Bir röportaja hazırlanmak için en az bir kitap okumaya değer. Hepsi yaklaşık olarak aynı prensip üzerine inşa edilmiştir. Büyük teknoloji şirketlerindeki mülakat sürecini anlatıyorlar, Bilgisayar Bilimlerinden temel şeyleri, bu temel şeylere yönelik problemleri, problemlerin çözümlerini ve çözümlerin analizini veriyorlar. Yukarıdaki üçü arasında, muhtemelen Kodlama Röportajını Cracking'i ana röportaj olarak öneriyorum ve geri kalanı isteğe bağlıdır.

Algoritmik problemler

Bu muhtemelen hazırlığın en ilginç noktasıydı. Elbette oturup sorunları aptalca çözebilirsiniz. Bunun için birçok farklı site var. Esas olarak üçünü kullandım: Hackerrank, Codechef и LeetKodu. CodeChef'te sorunlar, konuya göre değil, zorluğa göre bölünür. Hackerrank'ta hem karmaşıklığa hem de konuya göre.

Ama hemen kendim öğrendiğim gibi, daha ilginç bir yol var. Ve bunlar yarışmalardır (programlama zorlukları veya programlama yarışmaları). Her üç site de bunları sağlıyor. Doğru, LeetCode ile ilgili bir sorun var - uygunsuz bir saat dilimi. Bu yüzden bu siteye katılmadım. Hackerrank ve CodeChef, 1 saatten 10 güne kadar süren oldukça fazla sayıda farklı yarışma sunuyor. Farklı formatların farklı kuralları vardır ama bunun hakkında uzun süre konuşabiliriz. Yarışmaların iyi olmasının ana noktası, öğrenme sürecine rekabetçi (ve yine totoloji) bir unsurun dahil edilmesidir.

Toplamda Hackerrank'ta 37 yarışmaya katıldım. Bunlardan 32'si reyting amaçlıydı ve 5'i ya sponsorluydu (hatta bir tanesinden 25 dolar bile almıştım) ya da eğlence amaçlıydı. Sıralamada 10 kez ilk %4'te, 11 kez ilk %12'de ve 5 kez de ilk %25'te yer aldım. En iyi sonuçlar 27 saatte 1459/3 ve haftada 22/9721 oldu.

Hackerrank yarışmalara daha az ev sahipliği yapmaya başlayınca CodeChef'e geçtim. Toplamda 5 yarışmaya katılmayı başardım. On gün süren yarışmada en iyi skor 426/5019 oldu.

Toplamda yarışmalarda ve bunun gibi plana uyan 1000'den biraz fazla problemi çözdüm. Artık maalesef rekabetçi faaliyetlere devam etmek için boş zaman yok, tıpkı boş zamanın silinebileceği bir hedef olmadığı gibi. Ama eğlenceliydi. Bu konuyla ilgilenenlerin benzer düşünen insanlar bulmasını tavsiye ederim. Birlikte veya grup halinde çok daha ilginç. Bir arkadaşımla bununla eğlendim, belki de iyi geçmiştir.

Videoyu görüntüle

Skiena'nın kitabını okuduktan sonra onun ne yaptığı ilgimi çekmeye başladı. Sedgwick gibi o da bir üniversite profesörüdür. Bu bağlamda derslerinin videoları internette bulunabilir. Kursu gözden geçirmeye karar verdim COMP300E - Programlama Zorlukları - 2009 HKUST. Çok beğendiğimi söyleyemem. Öncelikle video kalitesi pek iyi değil. İkinci olarak derste tartışılan problemleri kendim çözmeye çalışmadım. Yani katılım çok yüksek değildi.
Ayrıca problemleri çözerken, doğru algoritmayı bulmaya çalışırken Tushar Roy'un videosuna rastladım. Amazon'da çalıştı ve şimdi Apple'da çalışıyor. Daha sonra kendi adıma öğrendiğim gibi, o youtube kanalı, burada çeşitli algoritmaların bir analizini yayınlıyor. Bu yazının yazıldığı sırada kanalda 103 video bulunuyordu. Ve analizinin çok iyi yapıldığını söylemeliyim. Diğer yazarları izlemeye çalıştım ama bir şekilde işe yaramadı. Bu yüzden kesinlikle bu kanalı izlemenizi tavsiye edebilirim.

Ders almak

Burada özel bir şey yapmadım. Google'ın Android Geliştiricisi Nanodegree'den bir video izledim ve ITMO'dan bir kurs aldım Kodlama Yarışmaları Nasıl Kazanılır: Şampiyonların Sırları. Nanodegree oldukça iyi ama doğal olarak ondan yeni bir şey öğrenmedim. ITMO'nun kursu teori açısından biraz çarpıktı ama sorunlar ilginçti. Bununla başlamanızı tavsiye etmem ama prensipte iyi harcanmış bir zamandı.

Başkalarının deneyimlerinden öğrenin

Elbette pek çok kişi Google'a girmeye çalıştı. Kimisi girdi, kimisi girmedi. Bazıları bununla ilgili makaleler yazdı. Muhtemelen bahsedeceğim ilginç şeylerden Bu и Bu. İlk durumda kişi, Yazılım Mühendisi olmak ve Google'a girmek için öğrenmesi gerekenlerin bir listesini kendisi için hazırladı. Sonunda Amazon'a ulaştı ama bu artık o kadar da önemli değil. İkinci kılavuz Google mühendisi Larisa Agarkova tarafından yazılmıştır (Larrr). Bu belgeye ek olarak şunları da okuyabilirsiniz: onun blogu.

Glassdoor'daki röportajların incelemelerini okumak mantıklı. Hepsi aşağı yukarı benzer, ancak bazı yararlı bilgiler edinebilirsiniz.

Diğer küçük makalelere bağlantı vermeyeceğim; bunları Google'da kolayca bulabilirsiniz.

İkinci çalıştırma

Ve şimdi bir yıl geçti. Çalışmalar açısından oldukça yoğun olduğu ortaya çıktı. Ancak yeni sonbahara çok daha derin teorik bilgilerle ve gelişmiş pratik becerilerle yaklaştım. Hazırlık için bana ayrılan yılın sonuna hâlâ birkaç hafta kalmıştı ki birdenbire Google'dan bir işe alım görevlisinin bana hâlâ Google'da çalışmak isteyip istemediğimi sorduğu bir mektup postaya düştü. Onunla konuşmayı düşünüyorum. Doğal olarak umursamadım. Bir hafta sonra aramaya karar verdik. Ayrıca benden, yıl boyunca işyerinde ve genel olarak neler yaptığımın kısa bir açıklamasını eklediğim güncellenmiş bir özgeçmiş istediler.

Ömür boyu iletişim kurduktan sonra, geçen yıl olduğu gibi bir hafta içinde Hangout görüşmesi yapmaya karar verdik. Bir hafta geçti, görüşme zamanı gelmişti ama görüşmeyi yapan kişi gelmedi. 10 dakika geçti, birdenbire sohbete birisi daldığında ben çoktan gerilmeye başlamıştım. Kısa bir süre sonra ortaya çıktığı gibi, görüşmecim bir nedenden dolayı ortaya çıkamadı ve onun yerine acilen bir yedek bulundu. Kişi hem bilgisayarı kurma konusunda hem de görüşmeyi yapma konusunda biraz hazırlıksızdı. Ama sonra her şey yolunda gitti. Sorunu hızlı bir şekilde çözdüm, tuzakların nerede mümkün olduğunu ve bunların nasıl aşılabileceğini anlattım. Sorunun birkaç farklı versiyonunu ve algoritmanın karmaşıklığını tartıştık. Sonra 5 dakika daha konuştuk, mühendis bize Münih'te çalışma konusundaki izlenimlerini anlattı (görünüşe göre Zürih'te acil bir yedek bulamadılar) ve sonra ayrıldık.

Aynı gün işe alım sorumlusu benimle iletişime geçti ve görüşmenin iyi geçtiğini ve beni ofiste görüşmeye davet etmeye hazır olduklarını söyledi. Ertesi gün Hangouts üzerinden aradık ve detayları konuştuk. Vize başvurusu yapmam gerektiğinden bir ay sonra görüşme ayarlamaya karar verdik.

Belgeleri hazırlarken eş zamanlı olarak işe alım görevlisiyle yapılacak röportajı da tartıştım. Google'da standart bir röportaj, 4 algoritmik röportaj ve bir Sistem Tasarımı röportajından oluşur. Ancak Android geliştiricisi olarak başvuruda bulunduğum için röportajın bir kısmının Android'e özel olacağı söylendi. Detayların tam olarak ne ve ne olacağını işe alan kişiden öğrenemedim. Anladığım kadarıyla bu nispeten yakın zamanda tanıtıldı ve kendisi de pek farkında değildi. Ayrıca iki eğitim oturumuna da kaydoldum: algoritmik bir mülakatın nasıl geçileceği ve Sistem Tasarımı mülakatının nasıl geçileceği. Seanslar ortalama düzeyde faydalıydı. Orada da kimse bana Android geliştiricilerine ne sorduklarını söyleyemedi. Bu nedenle bu ayki hazırlığım şu şekilde özetlendi:

  • Bir işaretleme tahtası satın almak ve üzerine en popüler algoritmalardan 2-3 düzinesini hafızadan yazmak. Her gün 3-5 adet. Toplamda her biri birkaç kez yazılmıştır.
  • Android'de her gün kullanmadığınız çeşitli bilgilerin hafızasını tazeleyin
  • Büyük Ölçek ve buna benzer şeyler hakkında birkaç video izlemek

Daha önce de söylediğim gibi aynı zamanda yolculuk için belgeler hazırlıyordum. Başlangıç ​​olarak davet mektubu hazırlamak için benden bilgi istediler. Daha sonra uzun süre Kıbrıs'ta İsviçre'ye kimin vize verdiğini bulmaya çalıştım, çünkü İsviçre büyükelçiliği bununla ilgilenmiyor. Anlaşıldığı üzere Avusturya konsolosluğu bunu yapıyor. Arayıp randevu aldım. Bir sürü belge istediler ama özellikle ilginç bir şey yoktu. Fotoğraf, pasaport, oturma izni, bir sürü farklı sertifika ve tabii ki bir davet mektubu. Bu arada mektup ulaşmadı. Sonunda normal bir çıktı aldım ve oldukça iyi çalıştı. Mektubun kendisi 3 gün sonra geldi ve Kıbrıs FedEx adresimi bulamadı ve gidip kendim almak zorunda kaldım. Aynı zamanda aynı FedEx'ten, adresi bulamadıkları için bana da teslim edemedikleri ve Haziran ayından beri (5 ay, Karl) orada duran bir paket aldım. Bunu bilmediğim için doğal olarak ellerinde olduğunu varsaymadım. Vizemi zamanında aldım, sonrasında bana otel rezervasyonu yaptırdılar ve uçuş seçenekleri sundular. Daha kullanışlı hale getirmek için seçenekleri ayarladım. Artık direkt uçuşlar yoktu, bu yüzden Atina üzerinden oraya uçup Viyana üzerinden geri döndüm.

Geziyle ilgili tüm formaliteler halledildikten sonra birkaç gün daha geçti ve Zürih'e uçtum. Olaysız bir şekilde oraya vardım. Havaalanından şehre trenle hızlı ve rahat bir şekilde gittim. Şehirde biraz dolaştıktan sonra bir otel buldum ve yerleştim. Otele yemeksiz rezervasyon yapıldığı için yan tarafta akşam yemeği yedim ve yattım çünkü uçuş sabahtı ve zaten uyumak istiyordum. Ertesi gün otelde kahvaltı yaptım (ekstra para karşılığında) ve Google ofisine gittim. Google'ın Zürih'te birkaç ofisi bulunmaktadır. Görüşmem merkezde değildi. Ve genel olarak ofis oldukça sıradan görünüyordu, bu yüzden "normal" bir Google ofisinin tüm güzelliklerine bakma şansım olmadı. Yöneticiye kaydoldum ve beklemek için oturdum. Bir süre sonra işe alım görevlisi dışarı çıktı ve bana günün planını anlattı, ardından beni görüşmelerin yapılacağı odaya götürdü. Aslında planda 3 görüşme, öğle yemeği ve 2 görüşme daha vardı.

Bir numaralı röportaj

İlk röportaj sadece Android'deydi. Ve bunun algoritmalarla hiçbir ilgisi yoktu. Sürpriz ama. Tamam, bu şekilde daha da yaygın. Bizden belirli bir kullanıcı arayüzü bileşeni yapmamız istendi. Önce ne ve nasıl olduğunu tartıştık. RxJava kullanarak bir çözüm yapmayı teklif etti, tam olarak ne yapacağını ve nedenini anlattı. Bunun kesinlikle iyi olduğunu söylediler ama hadi Android çerçevesini kullanarak yapalım. Ve aynı zamanda kodu tahtaya yazacağız. Ve yalnızca bir bileşen değil, bu bileşeni kullanan Etkinliğin tamamı. Hazır olmadığım şey buydu. Tahtaya 30-50 satırlık bir algoritma yazmak başka bir şey, "pekala, zaten belli olduğu için bunu yazmayacağım" ruhuyla kısaltmalar ve yorumlarla bile Android kodu erişteleri yazmak başka bir şey. Sonuç, 3 tahta için bir tür salata sosu oldu. Onlar. Sorunu çözdüm ama saçma görünüyordu.

İki numaralı röportaj

Bu seferki röportaj algoritmalarla ilgiliydi. Ve iki görüşmeci vardı. Biri gerçek görüşmeci, ikincisi ise genç bir padawan (gölge görüşmeci). Belirli özelliklere sahip bir veri yapısı oluşturmak gerekiyordu. Öncelikle sorunu her zamanki gibi tartıştık. Farklı sorular sordum, görüşmeci cevapladı. Bir süre sonra, icat edilen yapının birkaç yöntemini tahtaya yazmaları istendi. Bu sefer, birkaç küçük hatayla da olsa az çok başarılı oldum ve görüşmeyi yapan kişinin yönlendirmesi üzerine bunları düzelttim.

Üç numaralı röportaj

Bu sefer Sistem Tasarımı'nın birdenbire Android olduğu ortaya çıktı. Belirli işlevlere sahip bir uygulama geliştirmek gerekiyordu. Uygulamanın, sunucunun ve iletişim protokolünün gereksinimlerini tartıştık. Daha sonra uygulamayı oluştururken hangi bileşenleri veya kütüphaneleri kullanacağımı anlatmaya başladım. Ve sonra, Job Scheduler'dan bahsederken bazı karışıklıklar yaşandı. Mesele şu ki, onu pratikte hiç kullanmadım, çünkü piyasaya sürüldüğü sırada, kullanımı için hiçbir görevin olmadığı uygulamaları desteklemeye yeni geçmiştim. Sonrakileri geliştirirken de aynı şey oldu. Yani teorik olarak bu şeyin ne olduğunu, ne zaman ve nasıl kullanıldığını biliyorum ama kullanma konusunda hiçbir tecrübem yok. Ve görüşmeci bundan pek hoşlanmamış gibi görünüyordu. Daha sonra benden bir kod yazmamı istediler. Evet, uygulama geliştirirken hemen kod yazmanız gerekiyor. Yine tahtada Android kodu. Yine korkutucu çıktı.

Öğle yemeği

Birinin daha gelmesi gerekiyordu ama gelmedi. Ve Google hata yapar. Sonuç olarak, önceki görüşmeciyle, onun meslektaşıyla öğle yemeğine gittim ve kısa bir süre sonra bir sonraki görüşmeci de katıldı. Öğle yemeği oldukça iyiydi. Yine burası Zürih'teki ana ofis olmadığı için yemek odası çok güzel olmasına rağmen oldukça sıradan görünüyordu.

Dördüncü röportaj

Son olarak, en saf haliyle algoritmalar. İlk sorunu oldukça hızlı ve anında etkili bir şekilde çözdüm, her ne kadar uç bir durumu kaçırmış olsam da, görüşmeyi yapan kişinin yönlendirmesi üzerine (bu çok uç durumu verdi) sorunu buldum ve düzelttim. Tabii ki kodu tahtaya yazmam gerekiyordu. Daha sonra benzer bir görev verildi, ancak daha zordu. Bunun için birkaç optimal olmayan çözüm buldum ve neredeyse en uygun olanı buldum, düşünceyi bitirmek için 5-10 dakika yeterli değildi. Tabi bunun kodunu yazmaya vaktim olmadı.

Beş numaralı röportaj

Ve yine Android röportajı. Neden bütün yıl algoritmalar üzerinde çalıştığımı merak ediyorum.
İlk başta birkaç basit soru vardı. Daha sonra görüşmeci tahtaya kod yazdı ve içindeki sorunları bulmasını istedi. Buldum, açıkladım, düzelttim. Tartışıldı. Ve ardından “Y yöntemi X sınıfında ne yapar”, “Y yönteminin içinde ne var”, “Z sınıfı ne yapar” ruhuyla beklenmedik sorular başladı. Tabii bir şeye cevap verdim ama sonra son zamanlarda yaptığım işlerde bununla karşılaşmadığımı ve doğal olarak kimin neyi, nasıl yaptığını detaylı olarak hatırlamadığımı söyledim. Bundan sonra görüşmeci şu anda ne yaptığımı sordu. Ve sorular bu konuyla ilgiliydi. Burada zaten çok daha iyi cevap verdim.

Son görüşmenin bitiminden sonra geçiş kartımı aldılar, iyi şanslar dileyerek yoluma uğurladılar. Şehirde biraz dolaştım, akşam yemeği yedim ve otele gittim, uçuş yine sabah erken olduğu için orada yattım. Ertesi gün sağ salim Kıbrıs'a vardım. İşverenin talebi üzerine, görüşme hakkında geri bildirim yazdım ve harcanan parayı iade etmek için özel bir hizmette bir form doldurdum. Google, tüm masraflardan yalnızca biletleri doğrudan öder. Otel, yemek ve yol masrafları adaya aittir. Daha sonra formu doldurup makbuzları ekleyip özel bir ofise gönderiyoruz. Bunu işliyorlar ve parayı oldukça hızlı bir şekilde hesaba aktarıyorlar.

Mülakat sonuçlarının işlenmesi bir buçuk hafta sürdü. Daha sonra bana “çıtanın biraz altında” olduğum bilgisi verildi. Yani biraz eksik kaldım. Daha spesifik olarak, 2 görüşme iyi geçti, 2 görüşme pek iyi gitmedi ve Sistem Tasarımı pek iyi değildi. Şimdi en az 3 tanesi iyi gitseydi rekabet edebilirdik, yoksa şansımız yok. Bir yıl daha gelmeyi teklif ettiler.

İlk başta elbette üzüldüm çünkü hazırlık için çok çaba harcanmıştı ve görüşme sırasında zaten Kıbrıs'tan ayrılmayı düşünüyordum. Google'a katılmak ve İsviçre'ye taşınmak harika bir seçenek gibi görünüyordu.

Sonuç

Ve geldik yazımızın son kısmına. Evet, Google röportajında ​​iki kez başarısız oldum. Bu üzücü. Orada çalışmak muhtemelen ilginç olurdu. Ancak olaya diğer taraftan da bakabilirsiniz.

  • Bir buçuk yıl içinde yazılım geliştirmeyle ilgili pek çok şey öğrendim.
  • Programlama yarışmalarına katılmaktan çok keyif aldım.
  • Birkaç günlüğüne Zürih'e gittim. Oraya tekrar ne zaman gideceğim?
  • Dünyanın en büyük bilişim şirketlerinden birinde ilginç bir mülakat deneyimi yaşadım.

Dolayısıyla bu bir buçuk yılda olup biten her şey basitçe eğitim veya eğitim olarak değerlendirilebilir. Ve bu eğitimin sonuçları kendini hissettirdi. Kıbrıs'tan ayrılma fikrim olgunlaştı (bazı ailevi nedenlerden dolayı), başka bir tanınmış şirketle yapılan birçok görüşmeyi başarıyla geçtim ve 8 ay sonra taşındım. Ama bu tamamen farklı bir hikaye. Ancak yine de hem kendi başıma çalıştığım bir buçuk yıl hem de Zürih'te geçirdiğim 2 ilginç gün için Google'a teşekkür etmem gerektiğini düşünüyorum.

Son olarak ne söyleyebilirim? BT alanında çalışıyorsanız Google'daki (Amazon, Microsoft, Apple vb.) röportajlara hazırlanın. Belki bir gün oraya gitmek için oraya gidersiniz. İstemeseniz bile inanın bana, böyle bir hazırlık sizi daha da kötüleştirmeyecektir. Bu şirketlerden biriyle (şansla da olsa) röportaj yapabileceğinizi anladığınız anda, hazırlığınıza başlamadan önce karşınıza çok daha fazla yol açılacaktır. Ve bu yolda ihtiyacınız olan tek şey amaç, kararlılık ve zamandır. Sana başarılar diliyorum :)

Kaynak: habr.com

Yorum ekle