Yandex'ga Topshirish Haqida

30 June, 2021

Qimmatga Tushgan Dangasalik


Bundan 5 yilcha avval, O'zMU qoshidagi S.H.Sirojiddinov nomli akademik litseyda aniq fanlar bo'yicha norasmiy respublika olimpiadasi bo'lib o'tgan edi. Informatika fani bo'yicha birinchilikni Namangandan bir qiz qo'lga kiritgandi. Eng qizig'i, aytishlaricha, litseyda olimpiadaga tayyorgarlik ko'rish uchun kompyuter bo'lmagan, daftarga kod yozib tayyorgarlik ko'rgan ekan. Men ham shu usulda tayyorgarlik ko'rganimda hozir Yandex'dan "offer" olgan bo'lardim.

May oyi oxirida "Yandex Weekend Offer" haqida eshitib qoldim va yopilishiga bir kun qolganda topshirdim. "Weekend Offer" orqali atiga 2 kun ichida Yandex'ga offer olish imkoniyati bor, hafta-oylab cho'zib yurishmaydi. Birinchi bosqichda Yandex.Contest saytida 4ta masala yuborishdi, kamida 2tasini yechish talab qilingan edi. Keyingi bosqichda rekruter aloqaga chiqib qiziqishlarim, ish tajribam haqida so'radi. Men hozir universitetda o'qiyotganligim va internship'lar qiziqtirishini aytdim. Rekruter internship uchun "weekend offer" usulida emas, balki odatiy intervyu jarayoni orqali suhbatdan o'tishni maslahat berdi. Shu bilan rekruterdan bir haftacha eshitmadim.

Kelasi hafta rekruter ajoyib jamoa topganini va jamoa rahbari bilan intervyu belgilashi haqida xabar berdi. Suhbatda team lead kompaniyaning rejalari, ishlash tarzi va vazifalari haqida aytib berdi. Yandex.Cloud haqida eshitib, haqiqatan men uchun eng qiziq bo'lgan jamoa ekanligiga amin bo'ldim. Cloud texnologiyalariga judayam qiziqaman, ularni yaratishni esa orzu qilardim.

Team lead bilan suhbat davomida ikkita masala haqida gaplashdik, birinchisi "group anagrams"ga juda o'xshash masala edi. Ikkinchi masala yirik fayllarni o'qib, ular ustida "filtering" bajarish haqida edi (partitioning qo'llash orqali). Ikki masalaga ham yechim bera oldim. Biroz "hashing", "memory" vs "disk"dan o'qish/yozish haqida gaplashdik. Bir necha soatdan so'ng rekruter suhbat yaxshi o'tganligini, team lead meni jamoasiga olishga tayyor ekanligini va yana bir suhbatdan o'tishim kerakligi haqida yozdi.

So'ng'i bosqich, bosim kuchli. Bloomberg'dagi system design intervyuda ham huddi shu bosimni his qilgan edim. Ted-Ed'ning bosim ostida yaxshi natija ko'rsatish haqida juda yaxshi darsi bor, menga ko'p yordam berdi. Bosimda yaxshi ishlashning eng yaxshi usuli - ko'proq mashq qilish. Mock intervyular bosimni yengishda samara berdi. Xo'sh bu gal nima muammo bo'ldi?

Leetcode'da masala yechish jarayonida har doim kod yozib bo'lib, osongina "run" qilib ko'rar edim, submit qilish oldidan kodni ishlash ishlamasligni tekshirish ancha oson bo'lardi. Qo'lda ("manually") kodni yuritishni mashq qilmaganligim, algoritmni tasvirlashda aniqlik kiritmaganligim ushbu bosqichda pand berdi. Huddi kalkulyator har doim yoningizda turganida, miyyada hisoblash qobiliyatlaringiz yomonlashgani kabi, interpretator har doim yonimda bo'lganligi sababli qo'lda kod yuritish qobiliyati yomonlashganini sezdim (dangasalik).

So'ngi intervyuda intervyu oluvchi kodimni avtomatik tekshiruv tizimida yuritib ko'rib, har gal "there's still an error" (kodingda hali ham xato bor) deb turaverdi. "Hint" so'raganimda esa testi o'tmagan inputni berib, kodni shu inputda yuritib ko'rishni so'radi. Trial-error ko'p vaqt davom etdi va shu bilan intervyu yakunlandi. Ikkinchi savolga o'tish imkoni bo'lmadi.

Rekruter aloqaga chiqib, eng so'ngi bosqichdagi intervyuda qovun tushurib qo'yganimni aytdi (albatta rasmiy tilda). Xatolarimni angladim, ustida ishlashni boshladim va o'rganganlarim bilan bo'lishdim.

Bollar, biz yutamiz!