Javlonbek Mirzaabdullayev
113 subscribers
24 photos
8 videos
13 files
40 links
Download Telegram
Forwarded from Jakhongir Rakhmonov - IT
FAANGga ishga kirish uchun Leetcode yechish kerak. Leetcode yechish qobiliyatingizni qanday qilib oshirish kerak?
Yohud “Hayotdagi har qanday muammoga yechim topish usuli”

Menga notanish bo’lgan Leetcode masalasini ko’rganimda shunchalik qo’rqinchili tuyuladiki xatto bu masala haqida fikr ham yurita olmayman. U shunchalik qiyin tuyulganidan mening miyyam “o’chib qoladi”.

Keyin boshqalar bu masalani qanday qilib yechganini ko’rib chiqaman. 100% tushuna olmayman lekin qandaydir qismlari miyyaga yetib boradi.

Bir necha kun o’tib yana bir bor shu masalani yechishga harakat qilib ko’raman. Bu safar panika bo’lmaydi va men hech bo’lmasa yechim haqida fikr yurita olaman. Lekin baribir yecha olmayman ohirigacha.

Bu masala haqida yana o’qiyman, izlanaman.

Bir necha kun o’tib yana bir bor harakat qilib ko’raman. Bu safar bu masala ancha tushunarliroq tuyuladi. Xattoki eng oddiy brute-force yechim ham yoza olaman. Yana ozgina izlanib yanada yaxshiroq bo’lgan yechim topa olaman.

Keyingi kuni shunga o’xshash masala ko’rsam o’zimga ishongan holda bemalol yecha olaman.

Ho’sh, bu qanday sodir bo’ldi?

O’ylashimcha bizning miyyamizda har bitta muammo/masala uchun qandaydir o’lchov bor. Bu haqida osonroq fikr yurita olishimiz uchun keling shu o’lchovni TU (tolerance unit) da o’lchaylik. Huddi metr, litr va hokazolar kabi.

Misol uchun tepada eslatib o’tilgan masalani birinchi marta ko’rganimda menda bu masala uchun 0 TU bor edi. Lekin bu masalani yechish uchun esa 75 TU kerak edi, shartli ravishda. Yani, agar sizda bu masala uchun 75 TU bo’lmasa siz bu masalani ishlay olmaysiz.

Men boshqalarning yechimlarini ko’rib chiqqanimdan so’ng mening TU darajam 20ga ko’tarildi. Panika qilmasdan bu masala haqida fikr yurita boshladim. Izlanib o’qib chiqqanimdan so’ng esa TU darajam 60ga ko’tarildi. Oddiyroq brute-force yechim yoza oldim. Yanada ko’proq izlanib TU darajamni 75ga ko’tardim va natijada optimal bo’lgan yechim yoza oldim. Shunga o’xshash boshqa masala ko’rganimdan so’ng esa TU darajam 100ga ko’tarilib ketib qoldi. Yanagi safar agar shunday masala yo’limdan chiqib qolsa ortiqcha qiyinchiliksiz yecha olaman. Chunki ularning shart 75 TU, menda esa 100dan ortiq TU yig’ilib qolgan.

Menimcha bu fikrlashni hayotdagi hohlagan muammo uchun qo’llash mumkin. Intervyulardan qo’rqasizmi? Ko’proq intervyu qiling. Yaxshi ko’rgan qizingizga o’zingizga ishonch bilan gapira olmayabsizmi? Ko’proq gapiring 😉 Leetcode masala yecha olmayapsizmi? Ko’proq yeching. Va hokazo.

Birinchi 1, 2, 3 balki 4chi martasida ham yaxshi natija chiqmas balki. Lekin ko’proq muammoga o’zingizni duchor qilganingiz sari o’zingizga bo’lgan ishonch oshib boradi. Kamida bu muammodan qo’rqmaydigan bo’lasiz.

Original post ingiz tilida: https://t.me/jakhonrakhmonov/128

@jakhonrakhmonov
Forwarded from Jakhongir Rakhmonov - IT
Juniordan middlega, middledan seniorga o’sishning siri

Siz anchadan beri yaxshi ishlaysiz va harakat qilasiz lekin negadir o’z darajangizda qotib qolgandeksiz. Juniordan Middlega yoki Middledan Seniorga negadir chiqa olmayapsiz. Nima yetishmayotganini bilmayapsiz. Unda bu maqola siz uchun. Shu maqolada aytilgan narsani qilsangiz va rostdan ham yaxshi ishlab kelayotgan bo’lsangiz yil ohirigacha bir marta promotion olishingiz ehtimolligi ancha oshadi.

Bu sirni aytishimdan oldin bir narsani yaxshilab tushunib olaylik. Karyerangizda o’sish bu sizning masuliyatingiz. Menejeringizniki emas, jamoa leadining vazifasi emas. Sizniki. Agar siz o’zingiz mu masuliyatni his qilmasdan yuraversangiz, 2 yilda olishingiz kerak bo’lgan promotionni 5 yilda olasiz. “Menejerim ko’rib turibdiku yaxshi ishlayotganimni. Bir kun kelib menga promotion bersa kerak” deb yuraverish noto’g’ri. Kerak bo’lsa bazi bir kompaniyalar uchun siz middle sifatida kamroq oylik olib seniorning ishini ko’proq qilib yurishingiz afzalroq.

Demak promotion olishingiz uchun sizga 2ta narsa kerak:
- Yaxshi ishlashingiz kerak
- Qolganlar, ayniqsa menejeringiz siz yaxshi ishlayotganingizni bilishi kerak

Menejer o’zidan o’zi siz va qolganlar qanday ishlayotganini bilib qolmaydi. Siz unga o’zingiz aytishingiz kerak. Shunchaki aytibgina qolmay, yaxshilab aytishingiz kerak. Yaxshilab aytish uchun esa siz ohirgi 1 yil, 2 yil davomida qilgan ishlaringizdan o’zingiz ham bilishingiz kerak. “O’zim qilgan ishni albatta bilaman, qanday qilib bilmasligim mumkin?” deysizmi? Chunki 1, 2 yil bu uzoq vaqt va ko’p ma’lumotlar, detallar esingizdan chiqishi aniq. Esingizdan chiqdi degani qilgan ishingiz yo’q degani. U sizga promotion olishga yordam bera olmaydi. Chunki u haqida hech kim, hattoki o’zingiz ham bilmaysiz.

Ho’sh nima qilish kerak? Har hafta yoki kamida har oy ohirida shu vaqt oralig’ida nima qilganingizni yozib olish kerak. Muhim bir ishni mustaqil ravishda tez muddatda tugatdingizmi? Yozib qo’ying. Zo’r code review qildingiz va natijada katta bugni oldini oldingizmi? Yozib qo’ying. Kimdirga mentorlik qildingizmi? Yozib qo’ying. Hullas meni tushundingiz.

Yozganda ham barcha detallarini yozib qo’ying. Menga va boshqa ko’pchilikka yoqadigan format bu STAR metodi. Yani Situation, Task, Action, Result degani. Masalan:

Situation: Bizning dastur foydalanuvchilar ko’paygan paytda sekin ishlashni boshladi.
Task: Men nega bunday bo’layotganini tushunib, to’g’irlamoqchi bo’ldim.
Action: Loglarni va monitoringni tekshirdim. Bazibir malumotlar bazasiga borayotgan querylar soatlab qotib qolayotganini va natijada serverlar resursini yeb qo’yayotganini ko’rdim. Bu querylarni tezlashtirish ustida ancha ishladim va ularni optimallashtirdim.
Result: Natijada foydalnuvchilarimiz sonidan qatiy nazar dasturimiz oldingiday tez ishlashni boshladi. Bu esa foydalanuvchilariz tomonidan kelayotgan shikoyatlarni kamaytirdi va brandimiz obro’sini ko’tardi.

Har bir detalni yozing va isbotlarini ham qoldiring. Shu STAR formatida yozsangiz hikoyalaringiz ham chiroyli chiqadi. Keyin bunday ishlarni yetarllicha qilganingizdan so’ng menejeringizga bemalol borib mana men shu ishlarni qilganman deb aytishingiz mumkin. Sudda yutish uchun dalillar kerakku? Huddi shunaqa narsada bu ham.

Yaxshi ishlang, dalillarni yozib boring, promotion oling, ko’proq pul toping, oilangiz bilan ko’proq vaqt o’tkazing.

@jakhonrakhmonov
Forwarded from Jakhongir Rakhmonov - IT
Amazon interviewsida qanday javob berish kerak

Amazonda interview 2 qismdan iborat: Technical va Behavioral interview. Technical interviewda siz bilan Leetcode masalalari yechiladi yoki System Design qilinadi. Behavioralda esa Amazonning Leadership Principles lariga asoslangan savollar beriladi. Ular asosan quyidagicha formatda bo’ladi: “Karyerangizda bunday holat bo’lganmi? Qanday yo’l tutgansiz? Natijasi nima bo’lgan?”. Siz bu savollarga tapada aytib o’tilgan STAR metodidan foydalanib javob berishingiz kerak.

Bunday savollarning ichida eng ko’p so’raladiganlardan biri bu “Tell me about the time in your career when you dove deep into the problem”. Yani siz karyerangizda bo’lgan va siz chuqur kirishib yechgan muammo haqida aytib berishingiz kerak. “Chuqur” so’zi juda muhim. Siz o’sha muammo va uni qanday hal qilganingiz haqida barcha detallarni aytib bera olishingiz kerak. Ohirida sizdan juda ko’p savol so’raladi, agar yetarlicha chuqur kirmagan bo’lsangiz ushalib qolasiz.

Quyida men shu savolga qanday javob bergan bo’lishimni misol qilib keltiraman.

Biz yaqinda jamoamiz bilan Verified Permissions servisini ishga tushurdik. Bu serviceni o’z loyihangiz uchun “Authorization Microservice” deb tushunishingiz mumkin va u foydali bo’lishi uchun “latency” yani tezlik juda muhim. Shuning uchun ham biz servisimizning tezligini yaqindan monitor qilib boramiz.

Yaqinda servisning asosiy APIlaridan birining tezligi 10ms ga oshib qoldi. Bu kichik yomonlashish biz ujun judda jiddiy. Shuning uchun ham menga aynan nima uchun tezlik sekinlashganini topish va muammoni hal qilish topshirildi.

Birinchi bo'lib ma’lumotlar bazasiga jo’natilayotgan querylarni tezligini tekshirdim. Hammasi joyida. Tezllik o’zgarmagan. Agar ma’lumotlar bazasining tezligi joyida bo’lsa demak kodda nimadir o’zgargan bo’lishi mumkin deb o’yladim va ohirgi o’zgarishlarga qaradim. E’tiborni tortadigan o’zgarish topa olmadim. Qiziq. Kod o’zgarmagan, database tezligi o’zgarmagan. Lekin API tezligi baribir sekinlashgan. Nima sabab bo’lishi mumkin?

Boshqa barcha monitoring dashboardlarimizni tekshira boshladim. Qarasam “Canary Test”lar grafikida testlarning soni ko’payganini ko’rib qoldim. Canary testlar nimaligi haqida Azimjon yaxshi bir post yozgan. Qisqasi servislar "tirikligini" tekshirish uchun "canary test"lar yoziladi va har zamonda yuritib turiladi. Biz har 2 daqiqada yuritamiz. Hullas bu testlarning soni ko’paygan va ular bizning APIga ko’proq request jo’natishni boshlagan.

Lekin bunda hech qanday ma’no yo’q. Trafik o’sgan va tezlik kamaygan. WTF? Bizda haqiqiy foydalanuvchilardan keladigan trafik anchadan beri o’sib keladi va bunday yomonlashishni kuzatmagan edik. Nega aynan canary testlarning soni oshganda bunday yomonlashish kuzatildi?

Buni tushunish uchun canarylar bilan bizning servisning o’rtasidagi farq haqida o’ylashni boshladim. Eng katta farq bu biz servisni AWS EC2ga qo’yganmiz, testlar esa AWS Fargateda yani containerlar ichida yuritiladi. Har 2 daqiqada yangi containerlar yaratilib canary testlarni yurgizamiz. Bu degani har safar yangi containerlar bizning servisga login qilish uchun request yuborishi kerak. Haqiqiy foydalanuvchilar servisimizni ishlatganda esa unday muammo yo’q. EC2 serverlarimiz or’tacha bir kun o’chmasdan ishlagani uchun biz login requestlarning javobini cachega tiqib uning ichidagi malumotni qayta-qayta ishlata olamiz. Canarylarda esa containerlar sabab bunday imkoniyat yo’q. Demak, canary testlarning soni oshgan, ko’proq login requestlar kelgan, cache ishlamagan va latency yani tezlik ko’paygan. Muammo topildi. Endi yechim topish kerak.

Lekin yechim alohida katta mavzu. Bu yerga sig’maydi. Lekin shu STAR metodidan foydalanib haqiqiy interview savoliga qanday javob berish mumkinligini ko’rishingiz mumkin.

Eng asosiysi muammoning ich ichiga kirilgan va servisning ko’p taraflarini yaxshi bilish isbotlangan. Ishonchim 90% komil, bu javob interviewdan o’tgan bo’lar edi. Bu nafaqat intervyuda balki promotion olishda ham juda yordam beradigan misol. Shunday holatlar bo’lsa albatta yozib boring.

@jakhonrakhmonov
Media is too big
VIEW IN TELEGRAM
Paymedagi "стажировка" haqida.

Payme hozirda "FinTech" kompaniyalari ichida 1-o'rindagi kopmaniyalardan hisoblanadi. Shu sababli unda dasturchilarga bo'lgan talab yuqori.

Payme oxirgi 3 yildan beri o'ziga dasturchilarni tayyorlash maqsadida "стажировка" tashkil qilib keladi.

"Стажировка" siz junior+ dasturchi bo'lib chiqishingiz uchun hamma tajribalar senior dasturchilar tomonidan beriladi. Siz bilan har kuni ishlanadi. Siz huddi kompaniya ishchilari kabi jamoaviy muhit va atmosferani ko'rishingiz mumkin. Bu haqida linkedin da ham post yozgandim.

Yana bir muhim jihatga e'tibor berish kerak: "Стажировка" uchun sizga maosh(~300$+) ham to'lanadi. Buning sababi siz barcha e'tiboringizni ishga qaratishingiz kerak.

Men hozirgi vaqtgacha O’zbekistonda Paymedagi kabi amaliyotni ko'rmaganman va eshitmaganman. Bu dasturlashda karyerasini boshlayotganlar uchun eng zo'r imkoniyat.

Batafsil videoda ko'rishingiz mumkin.

@javlonbek_mirzaabdullayev
Media is too big
VIEW IN TELEGRAM
Payme da "стажировка" qulayliklari haqida aytib o'tgandim.

Taxminan sentabr oyining o'rtalarida Payme da stajirovka qilish imkoniyati ochilishi mumkin va orangizdan bir-nechta dasturchilar unda qatnashish imkoniyatiga ega bo'lishi mumkin.

Batafsil videoni ko'ring.

Murojaat uchun: @community_guide

Ko'proq ma'lumotlar uchun: @javlonbek_mirzaabdullayev
Men hozir 23 yoshdaman va o'zimni to'g'ri yo'lda ketayotgan omadli inson deb hisoblayman.

Sabab:
1. O'zim sevgan ishim bilan shug'illanaman va undan javob sifatida yaxshi daromad ham olaman.
Men dasturlashni yaxshi ko'raman. Hozir O'zbekistondagi eng qimmat proyektlardan birida ishlamoqdaman. Bu yerda men har soniyaga kasbiy o'saman. Chunki o'rganadigan narsalarim juda ko'p va muhit(kompaniyadagi topshiriqlar, seniorlar - odamlar) menga buni to'liq bera oladi. Men o'z komandamni va qilayotgan ishimni sevaman. Shu sababli hozir ishda kunimni 59%(14 soat)ini o'tkazmoqdaman. Bu menga har tomonlama(mablag', tajriba) o'sishni beradi.

2. O'rgatishni yoqtiraman.
Men o'zimda bor hamma narsalarni iloji boricha 100% hammasini odamlarga berishga, o'rgatishga harakat qilaman. Ko'pchilik dasturchilarni introvert(kam gap) deb o'ylaydi. Men unaqa emasman).
Shu sababli ham odamlarga dars berib kelmoqdaman va bu bilan bog'liq reja va maqsadlarim bor.

3. Xotirjamlikdaman.
Mendagi hamma narsa boshimda. Bu bilan nima demoqchiman?) Men o'zimni kasbiy xotirjamlikda his qilaman. Hamma narsalarimni yo'qotsam ham bilim va tajribalarim bilan qayta oyoqqa turishimga ishonaman. Meni yonimda men bilan har qanday vaqtda va holatda birga bo'ladigan onam va buvim bor.

4. Hamma orzular amalga oshishiga ishonaman.
Alhamdulillah! Meni Allohdan so'ragan hamma so'rovlarim amalga oshgan va oshib kelmoqda. Menda hali ham orzu va so'rovlarim bor va men ularni ham Alloh menga berishiga ishonaman. Shuning uchun men sabablarini qilayapman xalos)

Ba'zida atrofimdagi odamlarga qarab o'ylanib qolaman. Naxotki taqdirga tan berildi? Naxotki biz o'zimiz hohlamagan hayotda yashashga? o'zimiz hohlamagan ishni qilishga? hayotda hech qanday maqsad va orzularsiz yashashga? doimo qiynalishga? doimo nolishga va umidsiz bo'lishga? o'zi qisqa hayotni bekorga va keraksiz narsalarga sarflashga rozi bo'ldik? Qani ma'no va mantiq? qayoqqa qarab ketayapmiz va nimaga erishamiz?
Tayyorlov darslari haqida.

Max o’quvchi soni: 15 ta

Darslar formati: offline

Darslar vaqti: Haftada 6 kun 2 soatdan

Boshlanish vaqti: 1-avgustdan

Talablar: Rus tili, Javascript mukammal darajada

Murojaat uchun: @community_guide

@javlonbek_mirzaabdullayev
Javlonbek Mirzaabdullayev
Payme da "стажировка" qulayliklari haqida aytib o'tgandim. Taxminan sentabr oyining o'rtalarida Payme da stajirovka qilish imkoniyati ochilishi mumkin va orangizdan bir-nechta dasturchilar unda qatnashish imkoniyatiga ega bo'lishi mumkin. Batafsil videoni…
Paymedagi stajirovka haqidagi bir-nechta savollarga javob bermoqchiman:

1) Rus tilini mukammal bilish shartmi?
O'z fikringizni bemalol tushuntirib bera olishingiz kerak.

2) Ingliz tilini bilish kerakmi?
Agar o'qib tushuna olsangiz bu katta plyus.

3) O'zimizda kompyuter bo'lishi kerakmi?
Ha albatta. Kompyuter va internet bo'lishi shart.

4) Qabul qilingan yoki qilinmaganligimizni qayerdan bilamiz?
Agar sizga berilgan formani to'ldirgan bo'lsangiz va bizning shartlarimizga mos kelsangiz sizni o'zimiz suhbatga chaqiramiz. Agar sizga 1-avgustgacha xabar qilmasak demak siz qabul qilinmagan bo'lasiz.

5) Darslar necha kun bo'ladi?
6 kun(Yakshanba kuni dam) 2 soatdan va kun davomida aktiv suhbat. Davomiylik 1 yarim oy.

5) Paymega stajirovkaga kirish extimoli qancha?
Agar siz 1 yarm oylik qattiq mehnatga tayyor bo'lsangiz. Extimol 100% ga yaqinlashadi. O'zingizga ko'p narsa bog'liq.

6) Stajirovkadan keyin ishga kirish mumkinmi?
Ha albatta. Stajirovkadan maqsad kompaniya(Payme) o'ziga kadr tayyorlaydi.

7) Tayyorlov darslari pullikmi va qancha?
Ha. Filtrdan o'tganlar bilan offline suhbatda price ma'lum qilinadi.

yana savollarim bor:
@community_guide
Ro'yhatdan o'tgan va talablarga javob beradigan nomzodlarga javob berib chiqishni boshladik!

Nomzorlarga topshiriq berildi va deadline vaqti ham bor(rasmda ko'rishingiz mumkin).

Topshiriqni muvoffaqiyatli tugatganlar bilan ertadan yuzma-yuz suhbat qilishni boshlaymiz.

ps: bir-nechta ro'yhatdan o'tgan nomzodlarni yozishmasini topa olmadik. Pastdagi izohlarda kim ekanligini qoldiramiz o'zingiz aloqaga chiqing.

@community_guide
Javlonbek Mirzaabdullayev
Ro'yhatdan o'tgan va talablarga javob beradigan nomzodlarga javob berib chiqishni boshladik! Nomzorlarga topshiriq berildi va deadline vaqti ham bor(rasmda ko'rishingiz mumkin). Topshiriqni muvoffaqiyatli tugatganlar bilan ertadan yuzma-yuz suhbat qilishni…
O'rtolar topshiriqni qanchalik sodda js bilan yechsangiz shuncha yaxshi. Ya'ni 1 qator qilib tayyor "магия" si bor methodlarni ishlatmaslikni maslahat beraman!

"Магия" - degani bitta tuynukka qiymat bervorasiz va ichada siz bilmaydigan qandaydur sehr bo'ladi va sizga tayyor javob chiqib keladi.
Hammaga javob yozib chiqdik.
Agar javob qabul qilmagan bo'lsangiz demak o'ta olmagan bo'lasiz.

Yana bitta qo'shimcha o'rtog'iz bergan ssilka bilan formani to'ldirmang!) Chunki sizga javob yoza olmay qolamiz😁

Ko'p odamni yozishmalarini topa olmadik.

Formani ssilkasini faqat shu akkauntdan olishingiz mumkin:
@community_guide
Sehrgarlar ko'p ekan oramizda)

Algoritmlar reversiston(reverse) bo'b ketibti😂

O'rtolar ertadan boshlab(shanba kuni ham) topshiriqni yaxshi bajarganlar bilan yuzma-yuz zoom call o'tkazishni boshlaymiz.

Beradigan savollaringizni tayyorlab turing.

Hammaga alohida vaqt belgilanadi va sizga oldindan xabar qilinadi!

ps: bugun hammani tekshirishga ulgurmayman. Ertaga qolganlarni ham tekshiraman.
Tayyorgarlik darslari Toshkentda Bunker Lab o'quv markazida bo'ladigan bo'ldi.

Xalqlar do'stligi mertosining yonida(yandex map`da chiqadi) menimcha kelish judayam qulay bo'ladi.

Qo'shimcha: o'rtolar sabr qilaylik. Hammani javoblari ko'rib chiqiladi. Yangi message yozib chat`izi tepaga chiqarvoryabsiz) Xech kim tekshirilmay qolib ketmaydi!
Hammani javoblari tekshirib chiqildi.
Agar kimningdir javobi o'qilmastan qob ketgan bo'lsa, eslatib yozvoring!

zoom call`larni maksimum darajada o'tkazyapman.
Agar kimgadir vaqt yetmay qolsa ertaga ham o'tkaziladi.

*iltimos sizga belgilangan vaqtda tayyor turing. Chunki sizdan keyingi odam ham bor.