Amazon intervyusiga qanday tayyorlangadim?

Amazon intervyusiga qanday tayyorlangadim?

Miradham

Assalomu alaykum,

Ushbu matnda Amazon interviewga qanday tayyorlanganim haqida yozib o’tmoqchiman. Yozganlarim biron kishiga foydali bo’ladi deb umid qilaman. Shu bilan birga hammaning o’z yo’li, o’z tanlovi borligini unutmaslik kerak


Quyida keltirilgan gaplar mening tajribamdan kelib chiqib yozilgan shaxsiy fikrim bo’lib, mening ish beruvchimning bunga aloqasi yo’q. Qo’limdan kelganicha aniq va to’g’ri ma’lumot berishga harakat qilaman, shunga qaramay adashgan va/yoki noaniq gapirgan joylarim ham bo’lishi mumkin. Shuningdek, internetda men yozganlarimdan ham yaxshi maslahat va yo’qirnomalarni topish mumkin. Aziz o’quvchim faqat men yozganlar bilan chegaralanib qolmay, boshqa manbaalardan ham foydalanadi deb umid qilaman.


Amazon intervyusi uchun algoritmlarni bilish, bir necha yil ish tajribasiga ega bo’lish va shu asosida leadership principle va system design savollariga javob bera olish kerak. Intervyu qanday bo’lishi haqida mana avval yozgandim. 


Algoritmlar va data structures(ADS). 

Bu albatta hamma intervyularda talab qilinadi deb o’ylayman, mobile developermi, front endmi, backendmi, boshqa system developerlarmi - hammadan algoritmlarni bilish talab qilinadi. ADS dan tayyorlanish uchun masala ishlash kerak. Masala ishlash bo’yicha online platformalar juda ko’p. Shaxsan o’zim hackerrank va leetcode ni ko’p ishlatganman. Hackerrank ko’proq beginner level uchun yaxshi deb o’ylayman. Leetcode dagi masalalar ancha murakkab bo’lib, u yerda asosiy ADS larni bilibgina qolmay ularni to’g’ri qo’llay bilish ham talab etiladi. Hackerrankda ko’p masalalar basic ADS ni qo’llash orqali ishlaniladi. Shu sababdan ham boshida hackerrank bilan boshlash yaxshiroq. Boshlovchilar uchun hackerrankda 100 tacha masala ishlab keyin leetcodega o’tgan yaxshi deb o’ylayman. Leetcode da ham boshida faqat easy masalalarni ishlab keyin medium va hard larga o’tilsa yaxshiroq. 


Masalalarning o’ziga kelsak, boshlanishida oson bo’lmaydi. Lekin vaqt o’tib 100-300 ta masala ishlay olganizdan keyin, jarayon avtomatlashib ketadi. Masalani o’qishiz bilan, bu masala aynan qaysi algoritm orqali ishlanishi darrov xayolizga keladi. Man buni O’zbekistonda universitet kirish imtihonlaridagi axborotnomani ishlashga qiyosliman. Boshida bilmisiz, keyin keyin, ishlab ishlab usta bo’lib ketasiz.

Aytganimdek boshida onson emas. Motivation ni o’ldirmaslik uchun nima qilish kerak? Masala qiyin, o’qidim, o’yladim, javob yo’q. Nima qilaman? Bunaqa masala ishlash menga emasmi? Yo’q! Practice makes perfect! Sabr va mehnat albatta mevasini beradi.


Shaxsan man bitta masala ustida 10-15 minutdan ko’p bosh qotirish kerak emas deb o’ylayman.(O’zi bu narsa boshqa forumlarda ham aytib o’tilgan) Umuman masala ishlash va intervyu jarayonida 3 ta narsaga e’tibor qilinadi deb o’ylayman: 

  1. Communication - masalani qanday eshitdiz, qanday savollar berdiz, umuman muloqot qanday o’tdi
  2. Idea - masalani eshitgandan keyin uni ishlash yo’lini topdizmi? Qanday (to’g’ri) usul bilan ishlash kerakligini taklif qildizmi?
  3. Coding - o’ziz taklif qilgan usulni o’ziz code da yoza oldizmi?

Siz leetcode da masala ishlashizda #2 va #3 ga e’tibor berasiz. Ya’ni masalani o’qiganda uni qanday ishlash mumkinligini tushunib yetish va o’sha tushungan usulni code da yozish. Siz 10-15 daqiqada qanday ishlashni topa olmadizmi? Hechqisi yo’q, discussion ni oching va tayyor ishlanga code larni ko’rib, o’rganib chiqing. O’rganib chiqqach, u codelarni yopib, o’ziz yozishga harakat qiling. Ya’ni endi sizda idea bor, shuni idea ni codega aylantirishga harakat qiling. Bu yuqoridagi #3 punkt. Idea ni bilib turib uni codega aylantirish ham onson ish emas, lekin ideani topishdan onsonroq deb o’ylayman. Mana shu jarayonni takrorlayverasiz, borib borib idealar o’zizda paydo bo’lishni boshlaydi, code yozishga ketgazgan vaqtingiz kamayadi, code sifati oshadi. Qarabsizki, uncha buncha masalalarni ko’rdim demaydigan bo’lasiz.


Behavioural savollar

Amazon onsite intervyu 4 yoki 5 ta sessiyadan iborat bo’ladi. Xar bir sessiya 45-50 daqiqadan iborat bo’lib, ularning barchasida 2-4 ta behavioral savol berilad. Behavioural savallor uchun alohida sessiya bo’lishi ham mumkin.

Behavioral savollar nima? Sizni ma’lum bir vaziyatda o’zingizni qanday tutganingiz, shu vaziyatdan chiqish uchun nimalar qilganingizni aniqlashtiruvchi savollar.

Amazon intervyusida behavioural savollar amazon leadership principlari bilan bog’liq holda beriladi. Amazonda 14 ta leadership princip bor. Amazonga tayyorlanish jarayonida siz bu principlarni albatta o’qib, xar bittasi nimaligini tushunib oling kamida. Yodlab osez yanada yaxshi.

Bu turdagi savollarga STAR(Situation Task Action Result) modeli asosida javob berish maqsadga muvofiq. Bu model yordamida siz javobingizni nafat lo’nda va tushunarli qilib yetkazasiz, balki javobingiz yaxshi shakllangan formada bo’ladi va bundan siz ham intervyu oluvchi ham yutadi. Ya’ni berilgan savolga siz biron vaziyatni misol qilgan holda javob berishingiz talab qilinadi. Shunda siz vaziyatni tushuntirasiz(Situation), sizdan talab qilingan vazifa nimaligini(Task), siz bajargan ish(lar)ni(Action) va natija qanday bo’lganligini aytib berasiz.

Maslahatim, behavioural savollarga javob sifatida 5-6 ta vaziyat yoki qilgan ishlaringizni tayyorlab oling. Berilgan savolga qarab, siz avvaldan tayyorlagan vaziyatlaringizni biroz o’zgartirib aytib bera olasiz.


System designga qanday tayyorlanish kerak?

Bu tudagi savollar sizning nafaqat bilimingizni, balki tajribangizni ham tekshiradi. Shu sababdan bu savollarga aniq bir turdagi javob kutilmaydi. Ular open ended savollar bo’lib, nomzod o’zini kuchli taraflarini namoyish etishga imkon beradi. Shuningdek ma’lum darajada bahs ham tug’ilishi mumkin. Backend systemalari bo’yicha mana bu resurs menga juda ham foydali bo’lgan: https://github.com/donnemartin/system-design-primer Bundan tashqari, mock intervyular yordamida ham system design savollariga qanday javob berish ko’nikmalarini ancha yaxshilab olish mumkin. Va nihoyat, bunday intervyular odatda backend engineerlar uchun mo’ljallanga bo’lib, mobile app yoki boshqa yo’nalish uchun boshqacharoq ko’rinishdagi intervyu bo’lishi kutiladi.


Mock interviewlar juda muhim!

Siz texnik tomondan qanchalik kuchli bo’lmang, oylab, yillab tayyorlanmang, o’z bilimingizni intervyu vaqtida namoyish eta olmasangiz, hammasi bir pul. Nomzod sifatida intervyu savollariga to’g’ri va aniq javob berish, kerak bo’lsa intervyu jarayonini boshqarish ham bir qobiliyat. Bu qobiliyatni ham o’rganish va takrorlash orqali rivojlantirsa bo’ladi. Internetda intervyuda o’zini qanday tutish, savollarga qanday javob berish va shu kabilar haqida postlar juda ko’p. Albatta, o’sha ma’lumotlarni bir takrorlab o’tish foydadan holi bo’lmaydi. Bu yerda men mock intervyu haqida alohida to’xtalib o’tmoqchiman. Mock intervyu albatta qilish kerak. Tajribali inson yordamida qilinsa yaxhsi. Bo’lmasa, shu biron do’stingizdan ilitmos qilib, u bilan yuzma-yuz o’tirib, masala ishlab, so’ngra shu do’stingizdan feedback olishingiz mumkin. Yana bir yaxshi resurcs pramp.com sayti bo’lib, uni mock intervyular uchun ishlatish mumkin. Juda zo’r deb ayta olmayman, lekin 1-2 ishlatib ko’rish uchun bo’ladi.

Qisqasi, mock intervyular sizning tayyorlanish rejangizda bo’lishi shart.


Intervyu jarayoni

Intervyuni xotirjam, xayajonlanmasdan o’tkazih lozim. Xayajonni bosib olishning hammada o’z uslubi bo’lsa kerak. Savollarni diqqat bilan eshitib, tushunmagan joylaringizni albatta qayta so’rab, aniqlashtirib olishingiz lozim. Hech ham shoshilmang! Doimo intervyu oluvchi bilan muloqotda bo’ling. Berilgan savolga o’ylab javob bering. Code yozishga darrov o’tib ketmang. Avval masalani tushuning, uni qanday ishlamoqchi ekanligizni aytib bering, shunday keyingina code yozishni boshlashingiz mumkin. Aytmoqchi intervyuda code ni oq doska yoki oddiy matn editorida yozishingizni aytganmidim? Yo’q bo’lsa, shundayligini bilib qo’ying, va shunga tayyor bo’ling.


Recruiter bilan muloqot

Butun ishga kirish jarayonida recruiter bilan yaxshi ishlay olish ham juda muhim. Recruiterning asosiy vazifalaridan biri bu sizga o’z imkoniyatlaringizni to’liqligicha ko’rsatib bera olishingiz uchun barcha sharoitni yaratib berishdir. Yaxshi recruiter nomzodni intervyu jarayoniga xar tomonlama tayyorlay oladi va intervyuni muvafaqiyatli yakunlashda o’z hissasini qo’sha oladi. Shunga hech ikkinlanmay undan xar qanday savollarni so’rash mumkin deb o’ylayman. Shuningdek recruiter beradigan barcha ma’lumotlarni yaxshilab o’rganib chiqish lozimdir.


Xulosa o’rnida

Mening fikrimcha katta kompaniyaga ishga kirish jarayoni marafonga o’xshaydi. Yurakni keng qilib, har kuni biroz-birozdan nimadir foydali qilib borilsa, uzoq muddatda bu albatta azqotadi. Hozir sw developerlarga talab juda katta, o’ylaymanki tayyorlanib yurilsa, kelajakda albatta yaxshi imkoniyatlar bo’ladi. Masala ishlashda yaxshi formada bo’lish shu imkoniyatdan foydalanish ehtimolligini oshiradi. Tayyorlanishga qancha vaqt ketadi degan savol tug’ilishi mumkin. Bu hammada xar xil deb o’ylayman, umuman olganda, yuqorida aytganimdek, tayyorlanishga uzoq muddatli jarayon sifatida qarab, masala ishlashni kundalik odatga aylantirish yaxshi.

Intervyuda omad faktori ham juda muhim rol o’ynaydi. Omadga qarab intervyuda sizga qulay yoki noqulay savol tushishi, intervyu oluvchi bilan muloqotingiz yaxshi yoki yomon kechishi, murakkab masalalarni yaxshi ishlab, soddasiga kelganda kalla ishlamay qolishi mumkin. Shu sababdan, yiqilishdan qo’rqish yoki yiqilganda tushkunlikka tushish kerak emas. Muvaffaqiyat siri doimo g’olib bo’lishda emas, balki mag’lubiyatdan so’ng tiklanib yana olg’a siljiy olishda!


Hozircha shu, fikrlaringiz bo’lsa bemalol. Intervyularda omad!