Googleda intervyuga qanday tayyorgarlik ko'rish va muvaffaqiyatsiz bo'lish kerak. Ikki marta

Googleda intervyuga qanday tayyorgarlik ko'rish va muvaffaqiyatsiz bo'lish kerak. Ikki marta

Maqolaning sarlavhasi epik muvaffaqiyatsizlikka o'xshaydi, lekin aslida hamma narsa unchalik oddiy emas. Va umuman olganda, bu hikoya Googleda bo'lmasa ham, juda ijobiy yakunlandi. Ammo bu boshqa maqola uchun mavzu. Xuddi shu maqolada men uchta narsa haqida gapiraman: mening tayyorgarlik jarayonim qanday o'tdi, Googledagi intervyular qanday bo'lib o'tdi va nima uchun, mening fikrimcha, hamma narsa ko'rinadigan darajada aniq emas.

Qanday qilib hamma narsa boshlandi

Kiprning sovuq qish oqshomida to'satdan mening klassik kompyuter fanlari bo'yicha bilimim o'rtacha darajadan juda uzoq va buning uchun nimadir qilish kerak degan fikr paydo bo'ldi. Aytgancha, kimdir nega kechqurun kipr va sovuq ekanligini hali o'qimagan bo'lsa, unda siz bu haqda bilib olishingiz mumkin. shu yerda. Biroz o'ylangandan so'ng, algoritmlar va ma'lumotlar tuzilmalari bo'yicha onlayn kursni o'tashdan boshlashga qaror qilindi. Men sobiq hamkasblarimdan Robert Sedjvikning Coursera kursi haqida eshitganman. Kurs ikki qismdan iborat (1-qism и 2-qism). Agar havolalar to'satdan o'zgarsa, siz har doim Google'da muallifning ismini topishingiz mumkin. Har bir qism 6 hafta davom etadi. Haftaning boshida ma'ruzalar o'qiladi va hafta davomida siz hali ham mashqlar qilishingiz kerak. Kursning birinchi qismida asosiy ma'lumotlar tuzilmalari, saralashning asosiy turlari va algoritmlarning murakkabligi yoritilgan. Ikkinchi qism allaqachon rivojlangan bo'lib, grafiklardan boshlanib, chiziqli dasturlash va murakkablik kabi narsalar bilan tugaydi. Yuqoridagilarning barchasini o'ylab ko'rganimdan so'ng, men aynan shu narsa menga kerak degan xulosaga keldim. Aytgancha, qiziquvchan o'quvchi so'rashi mumkin, Googlening bunga nima aloqasi bor? Va haqiqatan ham, shu paytgacha u bunga umuman aloqasi yo'q edi. Ammo menga maqsad kerak edi, chunki 12 hafta davomida kechqurun maqsadsiz o'qish biroz qiyin. Yangi bilimlarni egallashdan maqsad nima bo'lishi mumkin? Albatta, ularning amalda qo'llanilishi. Kundalik hayotda bu juda muammoli, ammo yirik kompaniya bilan suhbat paytida bu oson. Tezkor Google shuni ko'rsatdiki, Google (tavtologiyani kechir) Evropadagi eng yirik kompaniyalardan biri (va men ayniqsa Evropaga qaragan edim) bunday intervyularni o'tkazadi. Ya'ni, ularning ofisi Shveytsariyaning Tsyurix shahrida joylashgan. Shunday qilib, qaror qilindi - keling, o'rganamiz va Google-da suhbatga boramiz.

Birinchi yondashuvga tayyorgarlik

12 hafta tezda o'tdi va men ikkala kursni ham tugatdim. Kurslar haqidagi taassurotlarim ijobiy emas va men ularni qiziqqanlarga tavsiya qilishim mumkin. Menga quyidagi sabablarga ko'ra kurslar yoqdi:

  • O'qituvchi ingliz tilida juda aniq gapiradi
  • Material yaxshi tuzilgan
  • Har bir algoritmning ichki tomonlarini ko'rsatadigan ajoyib taqdimotlar
  • Materialni malakali tanlash
  • Qiziqarli mashqlar
  • Mashqlar avtomatik ravishda saytda tekshiriladi, shundan so'ng hisobot tuziladi

Kurslardagi ishim odatda shunday kechardi. 1-2 kun ichida ma'ruzalarni tingladim. Keyin ular material bo'yicha bilimlarini tezkor sinovdan o'tkazishdi. Haftaning qolgan qismida men mashqni bir necha marta takrorladim. Birinchisidan keyin men 30-70% ni oldim, keyingilari natijani 97-100% ga yetkazdi. Mashq odatda ba'zi algoritmlarni amalga oshirishni o'z ichiga oladi, masalan. Chok o'ymakorligi yoki bzip.

Kurslarni tugatgandan so'ng, ko'p bilim ko'p qayg'u bilan kelishini angladim. Agar ilgari men hech narsani bilmasligimni bilgan bo'lsam, endi men bilmaganligimni tushuna boshladim.

May oyi bo'lgani va suhbatni kuzga belgilaganim uchun o'qishni davom ettirishga qaror qildim. Vakansiyaga qo‘yiladigan talablarni ko‘rib chiqib, parallel ravishda ikki yo‘nalishda borishga qaror qilindi: algoritmlarni o‘rganishni davom ettirish va mashinani o‘rganish bo‘yicha asosiy kursni o‘tash. Birinchi maqsad uchun men kurslardan kitobga o'tishga qaror qildim va Stiven Skienaning "Algoritmlar" monumental asarini tanladim. Algoritm loyihalash bo'yicha qo'llanma. Knut kabi monumental emas, lekin baribir. Ikkinchi gol uchun men Kurseraga qaytib, Endryu Ng kursiga yozildim. Machine Learning.

Yana 3 oy o'tdi va men kurs va kitobni tugatdim.

Keling, kitobdan boshlaylik. O'qish oson bo'lmasa ham, juda qiziqarli bo'lib chiqdi. Asosan, men kitobni tavsiya qilaman, lekin darhol emas. Umuman olganda, kitob men kursda o'rganganlarim haqida chuqurroq ma'lumot beradi. Bundan tashqari, men (rasmiy nuqtai nazardan) evristika va dinamik dasturlash kabi narsalarni kashf qildim. Tabiiyki, men ularni oldin ishlatganman, lekin ular nima deb atalganini bilmasdim. Kitobda shuningdek, muallifning hayotidan (Urush hikoyasi) bir qator ertaklar mavjud bo'lib, ular taqdimotning akademik xarakterini biroz susaytiradi. Aytgancha, kitobning ikkinchi yarmini o'tkazib yuborish mumkin, unda mavjud muammolar va ularni hal qilish usullari tasvirlangan. Amalda muntazam ravishda qo'llanilsa foydali bo'ladi, aks holda u darhol unutiladi.

Men kursdan ko'proq mamnun bo'ldim. Muallif o'z narsalarini aniq biladi va qiziqarli tarzda gapiradi. Bundan tashqari, uning etarli miqdori, ya'ni chiziqli algebra va neyron tarmoqlar asoslari, men universitetdan esladim, shuning uchun men hech qanday qiyinchilikka duch kelmadim. Kursning tuzilishi juda standartdir. Kurs haftalarga bo'lingan. Har hafta qisqa testlar bilan aralashtirilgan ma'ruzalar mavjud. Ma'ruzalardan so'ng sizga bajarishingiz, topshirishingiz kerak bo'lgan topshiriq beriladi va u avtomatik ravishda tekshiriladi. Qisqacha aytganda, kursda o'qitiladigan narsalar ro'yxati quyidagicha:
- xarajat funktsiyasi
- chiziqli regressiya
- gradient tushishi
- xususiyatni masshtablash
- normal tenglama
- logistik regressiya
- ko'p klassli tasnif (bitta va hamma)
- neyron tarmoqlar
- orqaga tarqalish
- tartibga solish
- tarafkashlik/variant
- o'rganish egri chiziqlari
- xato ko'rsatkichlari (aniqlik, eslab qolish, F1)
— Vektorli mashinalarni qo'llab-quvvatlash (katta marj tasnifi)
- K- degani
-Asosiy komponentlar tahlili
- anomaliyalarni aniqlash
— hamkorlikdagi filtrlash (tavsiya qiluvchi tizim)
— stokastik, mini-partiya, partiya gradienti tushishi
- onlayn ta'lim
- xaritani qisqartirish
- shiftni tahlil qilish
Kursni tugatgandan so'ng, ushbu mavzularning barchasi haqida tushuncha mavjud edi. 2 yildan keyin deyarli hamma narsa tabiiy ravishda unutildi. Men buni mashinani o'rganish bilan tanish bo'lmagan va davom etish uchun asosiy narsalarni yaxshi tushunmoqchi bo'lganlarga tavsiya qilaman.

Birinchi yugurish

Bu allaqachon sentyabr edi va intervyu haqida o'ylash vaqti keldi. Sayt orqali ariza topshirish juda halokatli bo'lgani uchun men Googleda ishlaydigan do'stlarni qidira boshladim. Tanlov oldiga tushdi datakompboy, chunki u men bevosita bilgan yagona odam edi (shaxsan bo'lmasa ham). U mening rezyumeimni yuborishga rozi bo'ldi va ko'p o'tmay men yollovchidan birinchi suhbat uchun taqvimidan joy band qilishni taklif qilgan xat oldim.Bir necha kundan keyin qo'ng'iroq bo'ldi. Biz Hangouts orqali muloqot qilishga harakat qildik, lekin sifati dahshatli edi, shuning uchun biz telefonga o'tdik. Birinchidan, biz standartni qanday qilib, nima uchun va nima uchun tezda muhokama qildik va keyin texnik skriningga o'tdik. U “xesh-xaritaga kiritishning qiyinligi nima”, “qanday muvozanatli daraxtlarni bilasiz” ruhidagi o‘nlab savollardan iborat edi. Agar siz bu narsalar haqida asosiy bilimga ega bo'lsangiz, bu qiyin emas. Skrining yaxshi o'tdi va natijalarga ko'ra, ular bir hafta ichida birinchi suhbatni tashkil etishga qaror qilishdi.

Suhbat ham Hangouts orqali bo'lib o'tdi. Avvaliga ular men haqimda taxminan 5 daqiqa gaplashishdi, keyin muammoga o‘tishdi. Muammo grafiklarda edi. Men nima qilish kerakligini tezda angladim, lekin noto'g'ri algoritmni tanladim. Kod yozishni boshlaganimda buni tushunib etdim va boshqa variantga o'tdim, uni yakunladim. Suhbatdosh algoritmning murakkabligi haqida bir nechta savollar berdi va uni tezroq bajarish mumkinmi, deb so'radi. Men qandaydir zerikarli bo'lib qoldim va buni qila olmadim. Bu vaqtda vaqt tugadi va biz xayrlashdik. Keyin, taxminan 10 daqiqadan so'ng, men foydalanadigan Dijkstra algoritmi o'rniga, ushbu muammoda men birinchi navbatda kenglikdagi qidiruvdan foydalanishim mumkinligini angladim va bu tezroq bo'ladi. Biroz vaqt o'tgach, ishga yollovchi qo'ng'iroq qildi va suhbat umuman yaxshi o'tganini va boshqasini tashkil qilish kerakligini aytdi. Biz yana bir haftaga kelishib oldik.

Bu safar ishlar yomonlashdi. Agar suhbatdosh birinchi marta do'stona va ochiqko'ngil bo'lsa, bu safar u biroz g'amgin edi. Muammoni darhol aniqlay olmadim, garchi men o'ylab topgan g'oyalar, asosan, uni hal qilishga olib kelishi mumkin edi. Oxir-oqibat, suhbatdoshning bir nechta takliflaridan so'ng, yechim menga keldi. Bu safar u yana bir necha nuqtadan keng ko'lamli qidiruv bo'lib chiqdi. Men echimlarni yozdim, ularni o'z vaqtida uchratdim, lekin chekka holatlar haqida unutdim. Biroz vaqt o'tgach, ishga yollovchi qo'ng'iroq qildi va bu safar suhbatdoshning baxtsizligini aytdi, chunki uning fikriga ko'ra, menga juda ko'p maslahatlar kerak edi (3 yoki 4 dona) va men yozish paytida doimo kodni o'zgartirdim. Ikki intervyu natijalariga ko'ra, uzoqqa bormaslikka, agar xohlasam, keyingi suhbatni bir yilga kechiktirishga qaror qilindi. Shuning uchun ham xayrlashdik.

Va bu hikoyadan men bir nechta xulosalar qildim:

  • Nazariya yaxshi, lekin siz uni tezda boshqarishingiz kerak
  • Amaliyotsiz nazariya yordam bermaydi. Biz muammolarni hal qilishimiz va kodlashni avtomatlashtirishimiz kerak.
  • Ko'p narsa suhbatdoshga bog'liq. Va bu haqda hech narsa qilish mumkin emas.

Ikkinchi yugurishga tayyorgarlik

Vaziyat haqida o'ylab, bir yildan keyin yana urinib ko'rishga qaror qildim. Va golni biroz tahrir qildi. Agar ilgari asosiy maqsad o'qish bo'lsa va Googleda intervyu uzoq sabzidek bo'lsa, endi intervyudan o'tish maqsad, o'qish esa vosita bo'ldi.
Shunday qilib, quyidagi fikrlarni o'z ichiga olgan yangi reja ishlab chiqildi:

  • Kitoblar va maqolalarni o'qish orqali nazariyani o'rganishni davom eting.
  • 500-1000 dona hajmdagi algoritmik masalalarni yechish.
  • Videolarni tomosha qilish orqali nazariyani o'rganishni davom eting.
  • Kurslar orqali nazariyani o'rganishni davom eting.
  • Googledagi intervyularda boshqalarning tajribasini o'rganing.

Men rejani bir yil ichida bajardim. Keyinchalik men har bir nuqta uchun nima qilganimni tasvirlab beraman.

Kitoblar va maqolalar

Men o'qigan maqolalarimni ham eslay olmayman, ularni rus va ingliz tillarida o'qidim. Ehtimol, eng foydali sayt mana bu. Bu erda siz kod misollari bilan ko'p sonli qiziqarli algoritmlarning tavsifini topishingiz mumkin.

Men 5 ta kitobni o'qidim: Algoritmlar, 4-nashr (Sedgewick, Wayne), Introduction to Algoritms 3rd Edition (Cormen, Leiserson, Rivest, Stein), Cracking the Coding Interview 4-nashr (Gayle Laakmann), Programming Interviews Exposed 2nd nashr, Suojann (Mon). , Giguere), Dasturlash intervyusining elementlari (Aziz, Li, Prakash). Ularni 2 toifaga bo'lish mumkin. Birinchisiga Sedgwick va Cormanning kitoblari kiradi. Bu nazariya. Qolganlari suhbatga tayyorgarlik. Sedgwick o'z kurslarida bo'lgani kabi kitobda ham xuddi shu narsa haqida gapiradi. Faqat yozma ravishda. Agar siz kursni o'qigan bo'lsangiz, uni diqqat bilan o'qishning ma'nosi yo'q, lekin baribir uni ko'rib chiqishga arziydi. Kursni ko'rmagan bo'lsangiz, uni o'qish mantiqan to'g'ri keladi. Kormen menga juda zerikarli tuyuldi. To‘g‘risini aytsam, uni o‘zlashtirib olishga qiynalganman. Men uni shunchaki u yerdan olib chiqdim master nazariyasi, va bir nechta kamdan-kam ishlatiladigan ma'lumotlar tuzilmalari (Fibonachchi uyasi, van Emde Boas daraxti, radix uyasi).

Intervyuga tayyorgarlik ko'rish uchun kamida bitta kitobni o'qishga arziydi. Ularning barchasi taxminan bir xil printsip asosida qurilgan. Ular yirik texnologiya kompaniyalarida intervyu jarayonini tasvirlaydi, kompyuter fanidan asosiy narsalarni, bu asosiy narsalar uchun muammolar, muammolarni hal qilish va echimlarni tahlil qiladi. Yuqoridagi uchtasidan men, ehtimol, Cracking the Coding Interview-ni asosiysi sifatida tavsiya qilaman, qolganlari esa ixtiyoriy.

Algoritmik masalalar

Bu, ehtimol, tayyorgarlikning eng qiziqarli nuqtasi edi. Siz, albatta, o'tirib, muammolarni ahmoqona hal qilishingiz mumkin. Buning uchun juda ko'p turli xil saytlar mavjud. Men asosan uchtadan foydalandim: Hackerrank, CodeChef и LeetCode. CodeChef-da muammolar qiyinchilik bo'yicha bo'linadi, lekin mavzu bo'yicha emas. Hackerrankda ham murakkablik, ham mavzu bo'yicha.

Ammo men darhol o'zim uchun bilib olganimdek, yanada qiziqarli yo'l bor. Va bu musobaqalar (dasturlash muammolari yoki dasturlash musobaqalari). Barcha uchta sayt ularni taqdim etadi. To'g'ri, LeetCode bilan muammo bor - noqulay vaqt zonasi. Shuning uchun men bu saytda qatnashmadim. Hackerrank va CodeChef 1 soatdan 10 kungacha davom etadigan juda ko'p turli xil musobaqalarni taqdim etadi. Turli formatlar turli qoidalarga ega, ammo biz bu haqda uzoq vaqt gaplashishimiz mumkin. Musobaqalarning yaxshi bo'lishining asosiy jihati o'quv jarayoniga raqobatbardosh (va yana tavtologiya) elementni kiritishdir.

Hammasi bo'lib men Hackerrank bo'yicha 37 ta musobaqada qatnashganman. Ulardan 32 tasi reyting bo'lib, 5 tasi homiylik qilingan (hatto ulardan birida 25 dollar olganman) yoki o'yin-kulgi uchun. Reytingda 10 marta kuchli 4%, 11 marta 12% va 5 marta 25% ga kirganman. Eng yaxshi natijalar 27 soat ichida 1459/3 va haftada 22/9721 edi.

Hackerrank musobaqalarni kamroq o'tkaza boshlaganida men CodeChef-ga o'tdim. Hammasi bo'lib 5 ta musobaqada qatnashishga muvaffaq bo'ldim. O'n kunlik musobaqada eng yaxshi ball 426/5019 bo'ldi.

Umuman olganda, musobaqalarda va shunga o'xshash tarzda men rejaga mos keladigan 1000 dan ortiq muammolarni hal qildim. Endi, afsuski, raqobatbardosh faoliyatni davom ettirish uchun bo'sh vaqt yo'q, xuddi bo'sh vaqtni hisobdan chiqarish mumkin bo'lgan maqsad yo'q. Lekin bu qiziqarli edi. Men bunga qiziquvchilarga o'xshash odamlarni topishni tavsiya qilaman. Birgalikda yoki guruhda bu juda qiziqroq. Men do'stim bilan xursand bo'ldim, shuning uchun hammasi yaxshi o'tdi.

Videoni tomosha qiling

Skienaning kitobini o'qiganimdan so'ng, men uning nima qilayotganiga qiziqib qoldim. Sedgvik singari u ham universitet professori. Shu munosabat bilan uning kurslari videolarini Internetda topish mumkin. Men kursni ko'rib chiqishga qaror qildim COMP300E - Dasturlash muammolari - 2009 HKUST. Bu menga juda yoqdi deb ayta olmayman. Birinchidan, video sifati unchalik yaxshi emas. Ikkinchidan, kursda muhokama qilingan muammolarni o‘zim hal qilishga urinmadim. Shunday qilib, munosabatlar unchalik yuqori emas edi.
Shuningdek, masalalarni yechish, to‘g‘ri algoritm topishga harakat qilayotib, Tushar Royning videosiga duch keldim. U Amazon’da ishlagan, hozir esa Apple’da ishlaydi. Keyinchalik men o'zim bilganimdek, u bor youtube kanali, u erda u turli xil algoritmlarning tahlilini joylashtiradi. Yozish vaqtida kanalda 103 ta video bor. Va shuni aytishim kerakki, uning tahlillari juda yaxshi o'tkazildi. Men boshqa mualliflarni tomosha qilishga harakat qildim, lekin qandaydir tarzda ishlamadi. Shuning uchun men ushbu kanalni ko'rish uchun albatta tavsiya qilaman.

Kurslarda qatnashish

Men bu erda hech qanday maxsus ish qilmadim. Google’ning Android Developer Nanodegree dasturidan videoni tomosha qildim va ITMO’dan kurs oldim Kodlash musobaqalarida qanday g'alaba qozonish mumkin: Chempionlar sirlari. Nanodegree juda yaxshi, garchi men undan yangi hech narsa o'rganmagan bo'lsam ham. ITMO kursi nazariy jihatdan biroz chalkash, ammo muammolar qiziqarli edi. Men u bilan boshlashni tavsiya etmayman, lekin printsipial jihatdan vaqt yaxshi o'tkazildi.

Boshqa odamlarning tajribalaridan o'rganing

Albatta, ko'p odamlar Google-ga kirishga harakat qilishdi. Ba'zilar kirdi, ba'zilari kirmadi. Ba'zilar bu haqda maqolalar yozdilar. Qiziqarli narsalardan men, ehtimol, eslatib o'taman Bunisi и Bunisi. Birinchi holda, odam o'zi uchun dasturiy ta'minot muhandisi bo'lish va Google-ga kirish uchun nimani o'rganishi kerak bo'lgan narsalar ro'yxatini tayyorladi. Bu oxir-oqibat Amazonda tugadi, ammo bu endi unchalik muhim emas. Ikkinchi qo'llanma Google muhandisi Larisa Agarkova tomonidan yozilgan.Larrr). Ushbu hujjatga qo'shimcha ravishda siz ham o'qishingiz mumkin uning blogi.

Glassdoor-da intervyularning sharhlarini o'qish mantiqan. Ularning barchasi ko'proq yoki kamroq o'xshash, ammo siz foydali ma'lumotlarni olishingiz mumkin.

Men boshqa kichik maqolalarga havola bermayman; ularni Googleda osongina topishingiz mumkin.

Ikkinchi yugurish

Va endi bir yil o'tdi. O'qishlar nuqtai nazaridan juda qizg'in bo'lib chiqdi. Lekin men yangi kuzga ancha chuqurroq nazariy bilimlar, amaliy ko‘nikmalar bilan yaqinlashdim. Menga tayyorgarlik ko'rish uchun ajratilgan yil tugashiga hali bir necha hafta bor edi, birdan pochtaga Google'dan yollovchining xati tushdi, unda u mendan Google'da ishlashni xohlaysizmi yoki yo'qmi, deb so'radi. Men u bilan gaplashmoqchiman. Tabiiyki, men bunga qarshi emasdim. Biz bir haftadan keyin qo'ng'iroq qilishga kelishib oldik. Shuningdek, ular mendan yangilangan rezyumeni so'rashdi, men unga yil davomida ishda va umuman olganda nima qilganligimning qisqacha tavsifini qo'shdim.

Umr davomida muloqot qilganimizdan so'ng, biz o'tgan yilgidek bir haftadan so'ng Hangout suhbati bo'lishiga qaror qildik. Bir hafta o'tdi, suhbat vaqti keldi, ammo suhbatdosh ko'rinmadi. 10 daqiqa o'tdi, men allaqachon asabiylasha boshlagandim, to'satdan kimdir suhbatga kirib ketdi. Birozdan keyin ma'lum bo'lishicha, suhbatdoshim negadir kela olmadi va uning o'rniga zudlik bilan o'rinbosar topildi. Shaxs kompyuterni sozlashda ham, suhbatni o'tkazishda ham biroz tayyor emas edi. Ammo keyin hammasi yaxshi bo'ldi. Men muammoni tezda hal qildim, qayerda tuzoqqa tushish mumkinligini va ularni qanday chetlab o'tish mumkinligini tasvirlab berdim. Biz muammoning bir nechta turli versiyalarini va algoritmning murakkabligini muhokama qildik. Keyin biz yana 5 daqiqa suhbatlashdik, muhandis Myunxenda ishlash haqidagi taassurotlarini aytib berdi (ular Tsyurixda shoshilinch o'rinbosar topmaganlar) va keyin biz ajrashdik.

O'sha kuni ishga yollovchi men bilan bog'lanib, suhbat yaxshi o'tganini va meni ofisda suhbatga taklif qilishga tayyor ekanliklarini aytdi. Ertasi kuni biz Hangouts orqali qo'ng'iroq qildik va tafsilotlarni muhokama qildik. Men viza olishim kerak bo'lganligi sababli, biz bir oy ichida suhbatni rejalashtirishga qaror qildik.

Hujjatlarni tayyorlayotganimda, men bir vaqtning o'zida ishga qabul qiluvchi bilan bo'lajak suhbatni muhokama qildim. Google'dagi standart intervyu 4 ta algoritmik intervyu va bitta tizim dizayni bo'yicha suhbatdan iborat. Ammo, men Android dasturchisi sifatida ariza topshirganim uchun, menga intervyuning bir qismi Android-ga xos bo'lishini aytishdi. Men uni yollovchidan aniq nima va qanday o'ziga xosliklar bo'lishini ayta olmadim. Men tushunganimdek, bu nisbatan yaqinda kiritilgan va uning o'zi unchalik xabardor emas edi. Men ikkita treningga yozildim: algoritmik suhbatdan qanday o'tish va tizim dizayni bo'yicha suhbatdan qanday o'tish. Mashg'ulotlar o'rtacha foydali edi. U erda ham hech kim menga Android ishlab chiquvchilardan nima so'rashini aytolmadi. Shuning uchun, mening ushbu oyga tayyorgarligim quyidagilarga to'g'ri keldi:

  • Marker taxtasini sotib olish va unga xotiradan 2-3 o'nlab eng mashhur algoritmlarni yozish. Har kuni 3-5 dona. Hammasi bo'lib, har biri bir necha marta yozilgan.
  • Android-da har kuni foydalanmaydigan turli ma'lumotlarning xotirasini yangilang
  • Big Scale va shunga o'xshash narsalar haqida bir nechta videolarni tomosha qilish

Aytganimdek, bir vaqtning o'zida men sayohatga hujjatlarni tayyorlayotgan edim. Boshlash uchun ular mendan taklifnoma yozish uchun ma'lumot so'rashdi. Keyin men uzoq vaqt davomida Kiprda Shveytsariyaga kim viza berishini bilishga harakat qildim, chunki Shveytsariya elchixonasi bu bilan shug'ullanmaydi. Ma'lum bo'lishicha, bu ishni Avstriya konsulligi amalga oshirmoqda. Men qo'ng'iroq qildim va uchrashuv tayinladim. Ular bir nechta hujjatlarni so'rashdi, lekin unchalik qiziq emas. Fotosurat, pasport, yashash uchun ruxsatnoma, turli xil sertifikatlar va, albatta, taklifnoma. Bu orada xat kelmadi. Oxir-oqibat, men oddiy chop etish bilan bordim va u juda yaxshi ishladi. Xatning o'zi 3 kundan keyin keldi va Kipr FedEx mening manzilimni topa olmadi va men uni o'zim olishim kerak edi. Shu bilan birga, men o'sha FedEx-dan posilka oldim, ular ham manzilni topa olmaganligi sababli menga etkazib berolmadilar va iyun oyidan beri u erda yotgan edilar (5 oy, Karl). Men bu haqda bilmaganim uchun, tabiiyki, men ularda bor deb o'ylamagan edim. Men vizamni o‘z vaqtida oldim, shundan so‘ng ular menga mehmonxonani bron qilishdi va parvoz variantlarini taklif qilishdi. Men qulayroq qilish uchun variantlarni o'rnatdim. Endi to'g'ridan-to'g'ri reyslar yo'q edi, shuning uchun men Afina orqali u erga va Vena orqali qaytib keldim.

Safar bilan bog'liq barcha rasmiyatchiliklar hal bo'lgach, yana bir necha kun o'tdi va men aslida Tsyurixga uchib ketdim. Voqeasiz yetib keldim. Aeroportdan shaharga poezdga o'tdim - tez va qulay. Shaharni bir oz kezganimdan so'ng mehmonxona topdim va ro'yxatdan o'tdim. Mehmonxona oziq-ovqatsiz bron qilinganligi sababli, kechki ovqatni qo'shnida qildim va uxlashga yotdim, chunki parvoz ertalab edi va men allaqachon uxlashni xohlardim. Ertasi kuni mehmonxonada nonushta qildim (qo'shimcha pul uchun) va Google ofisiga bordim. Googlening Tsyurixda bir nechta ofislari bor. Mening suhbatim markaziy suhbatda bo'lmagan. Va umuman olganda, ofis juda oddiy ko'rinardi, shuning uchun men "oddiy" Google ofisining barcha afzalliklarini ko'rib chiqish imkoniga ega bo'lmadim. Men administratordan ro'yxatdan o'tdim va kutish uchun o'tirdim. Biroz vaqt o'tgach, ishga yollovchi chiqdi va menga kunning rejasini aytdi, shundan so'ng u meni suhbatlar bo'ladigan xonaga olib bordi. Aslida, rejaga 3 ta intervyu, tushlik va yana 2 ta intervyu kiritilgan.

Birinchi raqamli intervyu

Birinchi intervyu faqat Androidda bo'ldi. Va buning algoritmlarga umuman aloqasi yo'q edi. Ajab, lekin. Xo'sh, yaxshi, bu usul yanada keng tarqalgan. Bizdan ma'lum bir UI komponentini yaratishni so'rashdi. Avval biz nima va qanday qilib muhokama qildik. U RxJava yordamida yechim topishni taklif qildi, aynan nima qilishini va nima uchun ekanligini tasvirlab berdi. Ular bu, albatta, yaxshi ekanligini aytishdi, lekin keling, buni Android tizimidan foydalanib qilaylik. Va shu bilan birga biz kodni doskaga yozamiz. Va nafaqat komponent, balki ushbu komponentdan foydalanadigan butun Faoliyat. Bu men tayyor emas edi. Doskaga 30-50 qatorli algoritm yozish boshqa narsa, Android kodining noodlelarini yozish boshqa narsa, hatto qisqartmalar va izohlar bilan ham "yaxshi, men buni yozmayman, chunki bu allaqachon aniq". Natijada 3 ta taxta uchun qandaydir vinaigrette paydo bo'ldi. Bular. Men muammoni hal qildim, lekin u ahmoqona ko'rinardi.

Intervyu raqami ikkinchi

Bu safargi suhbat algoritmlar haqida bo'ldi. Va ikkita suhbatdosh bor edi. Ulardan biri haqiqiy suhbatdosh, ikkinchisi esa yosh padavan (soya suhbatdoshi). Muayyan xususiyatlarga ega bo'lgan ma'lumotlar tuzilishini o'ylab topish kerak edi. Birinchidan, biz odatdagidek muammoni muhokama qildik. Men turli savollar berdim, suhbatdosh javob berdi. Biroz vaqt o'tgach, ulardan ixtiro qilingan tuzilmaning bir nechta usullarini doskaga yozish so'ralgan. Bu safar men ko'proq yoki kamroq muvaffaqiyatga erishdim, garchi bir nechta kichik xatolar bilan bo'lsa-da, men suhbatdoshning iltimosiga binoan tuzatdim.

Uchinchi intervyu

Bu safar tizim dizayni, u ham birdan Android bo'lib chiqdi. Muayyan funksiyaga ega dasturni ishlab chiqish kerak edi. Biz dastur, server va aloqa protokoliga qo'yiladigan talablarni muhokama qildik. Keyinchalik, men dasturni yaratishda qanday komponentlar yoki kutubxonalardan foydalanishimni tasvirlay boshladim. Va keyin, Job Scheduler haqida gapirganda, ba'zi chalkashliklar bor edi. Gap shundaki, men uni hech qachon amalda qo'llamaganman, chunki u chiqarilgan paytda men uni ishlatish uchun hech qanday vazifa bo'lmagan qo'llab-quvvatlovchi ilovalarga o'tgan edim. Xuddi shu narsa keyingilarini ishlab chiqishda sodir bo'ldi. Ya'ni, nazariy jihatdan, men bu narsa nima ekanligini, qachon va qanday ishlatilishini bilaman, lekin uni ishlatishda tajribam yo'q. Suhbatdoshga esa bu unchalik yoqmagan ko‘rinadi. Keyin ular mendan kod yozishimni so'rashdi. Ha, dasturni ishlab chiqishda siz darhol kod yozishingiz kerak. Doskada yana Android kodi. Bu yana qo'rqinchli bo'lib chiqdi.

Tushlik

Boshqa odam kelishi kerak edi, lekin u kelmadi. Va Google xato qiladi. Natijada, men oldingi suhbatdosh, uning hamkasbi bilan tushlikka bordim va birozdan keyin keyingi suhbatdosh qo'shildi. Tushlik juda munosib edi. Shunga qaramay, bu Tsyurixdagi asosiy ofis emasligi sababli, ovqat xonasi juda chiroyli bo'lsa-da, juda oddiy ko'rinardi.

Intervyu raqami to'rtinchi

Nihoyat, eng sof shakldagi algoritmlar. Men birinchi muammoni juda tez va darhol samarali hal qildim, garchi men bir chekka ishni o'tkazib yuborgan bo'lsam ham, lekin suhbatdoshning so'roviga binoan (u bu eng chekka ishni berdi) men muammoni topdim va uni tuzatdim. Albatta, kodni doskaga yozishim kerak edi. Keyin shunga o'xshash vazifa berildi, ammo qiyinroq. Buning uchun men bir nechta optimal bo'lmagan echimlarni topdim va deyarli eng maqbulini topdim, fikrni tugatish uchun 5-10 daqiqa etarli emas edi. Xo'sh, uning kodini yozishga vaqtim yo'q edi.

Intervyu raqami besh

Va yana Android intervyu. Qiziq, nega men algoritmlarni yil bo'yi o'rgandim?
Avvaliga bir nechta oddiy savollar bor edi. Keyin suhbatdosh doskaga kod yozdi va undagi muammolarni topishni so'radi. Uni topdim, tushuntirdim, tuzatdim. Muhokama qilingan. Keyin esa “Y usuli X sinfda nima qiladi”, “Y usulining ichida nima”, “Z sinfi nima qiladi” ruhida kutilmagan savollar boshlandi. Albatta, men bir narsaga javob berdim, lekin keyin men buni yaqinda ishimda uchratmaganimni aytdim va tabiiyki, kim nima qilayotganini va qanday qilib batafsil eslay olmayman. Shundan so‘ng suhbatdosh hozir nima qilayotganimni so‘radi. Va savollar shu mavzuda bo'ldi. Bu erda men allaqachon yaxshiroq javob berdim.

Oxirgi suhbat tugagach, yo‘llanmani olib, omad tilab, yo‘lga jo‘natishdi. Men shaharni bir oz aylanib chiqdim, kechki ovqatlandim va mehmonxonaga bordim, u erda yotdim, chunki parvoz yana erta tongda edi. Ertasi kuni men Kiprga eson-omon yetib keldim. Ishga qabul qiluvchining iltimosiga binoan, men intervyu bo'yicha fikr-mulohaza yozdim va sarflangan pulni qaytarish uchun maxsus xizmatda anketani to'ldirdim. Barcha xarajatlardan Google to'g'ridan-to'g'ri faqat chiptalar uchun to'laydi. Mehmonxona, ovqatlanish va yo‘l haqi nomzod tomonidan to‘lanadi. Keyin biz shaklni to'ldiramiz, kvitansiyalarni biriktiramiz va maxsus idoraga yuboramiz. Ular buni amalga oshiradilar va hisob raqamiga pul o'tkazishadi.

Suhbat natijalarini qayta ishlash uchun bir yarim hafta vaqt ketdi. Shundan so'ng menga "bardan bir oz pastroq" ekanligim haqida xabar berishdi. Ya'ni, men biroz qisqardim. Aniqroq aytganda, 2 ta intervyu yaxshi o'tdi, 2 tasi unchalik yaxshi emas va tizim dizayni unchalik yaxshi bo'lmagan. Endi, agar kamida 3 tasi yaxshi o'tgan bo'lsa, unda biz raqobatlasha olardik, aks holda imkoniyat yo'q. Ular yana bir yildan keyin qaytib kelishni taklif qilishdi.

Avvaliga, albatta, men xafa bo'ldim, chunki tayyorgarlik uchun juda ko'p kuch sarflangan va suhbat paytida men allaqachon Kiprni tark etish haqida o'ylayotgan edim. Googlega qo'shilish va Shveytsariyaga ko'chib o'tish ajoyib variant bo'lib tuyuldi.

xulosa

Va bu erda biz maqolaning yakuniy qismiga keldik. Ha, men Google intervyusida ikki marta muvaffaqiyatsiz bo'ldim. Bu achinarli. Ehtimol, u erda ishlash qiziqarli bo'lar edi. Biroq, siz masalani boshqa tomondan ko'rishingiz mumkin.

  • Bir yarim yil ichida men dasturiy ta'minotni ishlab chiqish bilan bog'liq juda ko'p narsalarni o'rgandim.
  • Dasturlash bo‘yicha musobaqalarda qatnashish menga judayam zavq bag‘ishladi.
  • Men bir necha kunga Tsyurixga bordim. Yana qachon u erga boraman?
  • Men dunyodagi eng yirik IT-kompaniyalardan birida qiziqarli intervyu oldim.

Shunday qilib, bir yarim yil ichida sodir bo'lgan hamma narsani oddiygina mashg'ulot yoki mashg'ulot deb hisoblash mumkin. Va bu treningning natijalari o'zini his qildi. Kiprni tark etish g'oyam pishib yetdi (ba'zi oilaviy sharoitlar tufayli), men boshqa taniqli kompaniya bilan bir nechta intervyulardan muvaffaqiyatli o'tdim va 8 oydan keyin ko'chib o'tdim. Ammo bu butunlay boshqacha hikoya. Shunga qaramay, o'zim ustimda bir yarim yil ishlaganim uchun ham, Tsyurixdagi 2 qiziqarli kun uchun ham Googlega rahmat aytishim kerak deb o'ylayman.

Nihoyat nima deyishim mumkin? Agar siz IT sohasida ishlasangiz, o'zingizni Google (Amazon, Microsoft, Apple va boshqalar) da intervyularga tayyorlang. Ehtimol, bir kun kelib siz u erga borish uchun borasiz. Agar xohlamasangiz ham, menga ishoning, bunday tayyorgarlik sizni yomonlashtirmaydi. Ushbu kompaniyalardan biri bilan intervyu olishingiz mumkinligini (hatto omad bilan bo'lsa ham) tushunganingizdan so'ng, siz tayyorgarlikni boshlashdan oldingidan ko'ra ko'proq yo'llar sizga ochiq bo'ladi. Va bu yo'lda sizga kerak bo'lgan narsa - maqsad, qat'iyat va vaqt. Sizga muvaffaqiyatlar tilayman :)

Manba: www.habr.com

a Izoh qo'shish