Mukhammadjon Muminov | Tech
64 subscribers
24 photos
1 video
5 links
Software Engineer | CE & CS

Blog: @mukhammadjons_blog
CT: @pip_sudo
Download Telegram
Kech qolmayapsiz... , Siz vaqtidasiz...

Kimdir 22 yoshida universitetni bitiradi, lekin shu bitirishi uchun ham 4 yil kutdi.

Kimdir 25 yoshida boshliq bo'ldi va 50 yoshida vafot etdi.

Va kimdir 50 yoshida muvaffaqiyatga erishib 90 yil yashadi.

Kimdir uylanib/turmush qurib farzandli bo'lib ham ketti, kimdir hali ham juftini topmadi.

Obama 55 yoshida iste'foga chiqdi va Trump Obama o'rniga 70 yoshida erishdi.

Hammaning o'zi uchun belgilangan vaqti bor. Atrofingizdagilar sizdan o'zib ketayotgandek yana kimdir sizdan qolib ketayotgandek tuyulishi mumkin. Lekin hamma o'z chizig'i boylab marra sari intilmoqda. Hayot musobaqa emaski men o'zib ketishim, kimnidir ortda qoldirishim kerak deb yashasangiz. Hasad qilmang, havas qiling. Ular o'zlarining vaqt zonalarida, siz o'ziznikida. Hayot shunchaki harakat qilishga mos vaqtni tanlay bilishda.

@mukhammadjon_tech
Muammo

Atrofimizni o'rab olgan kundalik hayotdagi deyarli barcha muammolar allaqachon qaysidur yerni uyog'ida o'z yechimini topgan. Biz u muammolarga endi duch kelmoqdamiz. Shunchaki Google, YouTube va *GPT lardan tóg'ri sórashni bilsak kifoya.

Lekin ba'zi muammolarga bu yechim bóla olmaydi. Ularga tajriba kerak.

@mukhammadjon_tech
Deyarli 2 haftadan beri full time tarzda  uydan ishlashga harakat qilyapman. Ortiqcha energiya sarflashlar, yólga ketadigan vaqtlar va shovqinli office dan xoli tarzda. Lekin buni o'ziga yarasha + va - tomonlari bor.

Officedan (Onsite) shaklda ishlasangiz qisqa vaqtga bólsa ham work mode yóqilib, life mode o'chiriladi. Agar masofaviy (Remote) shaklda ishlasangiz ham work, ham life mode yóqilgan tarzda ishlashingizga tóg'ri keladi. Lekin vaqtingizni va butun kun tartibingizni ózingiz belgilagan xolda ishlaysiz. Officeda esa belgilangan  vaqt intervali bóyicha ishlashga tóg'ri keladi.

Agar siz dasturchi sifatida bir xillikdan tez zerikadigan va komfort zonaga tushib qolishni istamasangiz, siz Hybrid rejimini tanlashingiz mumkin. O'zimga ham mana shunday rejimda ishlash yóqadi :) Ya'ni ham onsite ham remote shaklda.

Lekin yuqorida aytib ótgan ishlash rejimlari hamma soha vakllariga ham to'g'ri kelmaydi.

@mukhammadjon_tech
Ehtiyoj

"Eng shirin taom — bu qorin ochgan paytdagi taom", deyishadi. Bu ayni haqiqat. Qorningiz qanchalik och bo'lsa, ovqat ham shunchalik mazali tuyuladi. Qorningiz to'q vaqtida esa eng shirin taom ham siz uchun bemaza.

Demak, ehtiyoj hissi bizni vaziyatga real baho berishdan to'sib qo'yadi. Shuning uchun biror narsaga muhtoj vaqtingizda tanlov qilmang. "Svejiy kalla" bilan ozgina o'ylab ko'ring. Hech bo'lmasa, biror soat.)

@mukhammadjon_tech
System Design Interview: Throttling

Tasavvur qiling sizda oilaviy biznes bor. Uyingizda non yopib sotasiz. Sizda har kuni keladigan doimiy klientlar bor. Undan tashqari o’zingizning oilangiz ham har kuni shu nonlarning qaysidir qismini iste’mol qiladi.

Bir kuni qaysidir klientlaringizdan biri kelib sizda bor barcha nonlarni sotib olib ketdi. Natijada undan keyin kelgan klientlar hafa bo’lib qoldi, oilangizning esa o’sha kuni qorni och qolib ketdi. Hammani kayfiyati buzildi.

Yanagi safar shu ish qaytarilmasligi uchun siz bitta klient faqatgina kuniga 2ta non sotib oladigan qilib qo’ydingiz. Undan ko’piga ruhsat yo’q. Natijada hamma hursand. Ha, qaysidir klientingiz sal hafa bo’ldi, chunki 10ta non olishni o’rniga 2ta oldi holos. Lekin umuman olganda biznesingiz yuryapti, klientlar hursand va oilangiz to’q.

Backend olami ham huddi shunga o’xshab ketadi.

Tasavvur qiling siz qandaydir loyiha qilgansiz. Sizda har kuni shu loyihani ishlatadigan doimiy foydalanuvchilar bor. Bu foydalanuvchilarni qoniqtirish uchun siz CPU, RAM, Storage kabi resurslar ishlatasiz va ularrning kuchi/hajmi cheksiz emas. Undan tashqari sizda asosiy sistemadan tashqari ichki va foydalanuvchilarga ko’rinmaydigan kichik sistemalar ham bor. Ularga ham bu resurslar kerak.

Bir kuni qaysidir foydalanuvchingiz to’satdan juda ko’p va katta requestlar yuborishni boshladi va siz barcha resurslarni aynan shu foydalanuvchining o’ziga ishlatishga majbur bo’ldingiz. Natijada boshqa foydalanuvchilar uchun resurslar qolmadi. Resurslar qolmagani uchun o’zingizning ichki sistemalaringiz ham ishlamay qolishni boshladi. Asosiy sistemangiz ham qulab tushdi. Endi loyihangizni hech kim ishlata olmaydi. Hammani kayfiyati buzildi.

Yanagi safar shu ish qaytarilmasligi uchun siz bitta foydalanuvchiga faqatgina sekundiga 50ta request yuborishga ruhsat berdingiz holos. Undan ko’piga ruhsat yo’q. Ha, o’sha ko’p resurs yeydigan foydalanuvchingiz sal hafa bo’ldi, shunki 500ta request o’rniga sekundiga 50ta request yubora olyapti holos. Lekin umuman olganda loyihangiz yiqilib tushmay ishlab turibdi, deyarli barcha foydalanuvchilar hursand va ichki sistemalarngiz ham ishlab turibdi.

Mana shu narsani “Throttling” deydi. To’g’ridan to’g’ri tarjima qilsak “bo’g’ish” degani. Ma’nosi bitta foydalanuvchiga juda ko’p resurs iste’mol qilishga ruhsat bermaslik. Juda muhim va deyarli barcha backend sistemalari ishlatadigan g’oya.

Throttle qiling, yiqilib tushmang.

P.S. bunday o’xshatishlar 100% to’g’ri bo’lmaydi. Lekin asosiy ma’noni tushuntirishga yordam beradi.

© Jahongir Rahmonov

@mukhammadjon_tech
"Muvaffaqiyatli IT Start - Up" qurish mavzusi meni anchadan beri qiynab keladi. Shu mavzuda bir necha marotaba researching qilib kórdim. Fikrlarimni yanada tiniqlashtirish maqsadida ularni ketma - ketlikda tushuntirishga harakat qilaman. Umid qilamanki siz uchun ham foydali bo'ladi.

1. Tajriba va bilim: Dastlab, sizda bo'lgan tajribangiz va bilimingizni ko'rib chiqish kerak. IT start-up kompaniyasi qurish uchun sizda dasturlash, veb-dizayn, UX/UI, ma'lumotlar ombori va boshqa texnologiyalar haqida bilim bo'lishi kerak.

2. Idea: Sizda yangi, original va bozorning muammolariga yechim beruvchi g'oya bo'lishi kerak. Bu g'oya sizning asosiy mahsulotingiz bo'ladi.

3. Biznes reja: Ta'lim va g'oyadan keyin, biznes rejangizni yozishga kirishingiz kerak. Bu sizning kompaniyangizning maqsadini, strategiyasini, moliyaviy proyeksiyalarni va boshqa muhim ma'lumotlarni o'z ichiga oladi.

4. Jamoa tuzish: Sizning IT start-upingiz uchun muvaffaqiyatli jamoa muhim ahamiyatga ega. Sizda dasturchilar, dizaynerlar, menejerlar va boshqa mutaxassislar bo'lishi kerak.

5. Mablag' to'plash: Sizga start-up kompaniyaning boshlanishini moliyalashtirish uchun mablag' kerak bo'ladi. Bu mablag'ni o'z kapitalingizdan, investitsiyalardan, grantlardan yoki kreditlardan (kreditni maslahat bermagan bólardim) olishingiz mumkin.

6. Mahsulotni ishlab chiqish: Keyin sizning jamoangiz mahsulotingizni ishlab chiqishi kerak. Bu protsess bir necha oydan bir necha yilgacha davom etishi mumkin.

7. Marketing va sotish: Mahsulotni tayyorlagandan keyin, uni bozorga chiqarish va sotish kerak. Bu uchun sizga marketing strategiyasi va sotish kanallari kerak bo'ladi.

8. Mijozlarni qo'llab-quvvatlash: So'nggi, lekin juda muhim qadam - bu sizning mijozlarni qo'llab-quvvatlash strategiyangiz. Mijozlar sizning mahsulotingizga qanday qo'llanayotganini tushunish uchun ular bilan aloqada bo'lishingiz kerak.

P.s: Bu yuqorida aytib o'tganlarim IT start-up kompaniyasini qurishning umumiy qadamlari. Bu qadamlar sizning shaxsiy holatingizga va yónalishingizga qarab o'zgarishi mumkin.

@mukhammadjon_tech
Qanday qilib odam energiyasini to’ldirishi mumkin?

Energiyani oladigan va beradigan ikki hil turdagi narsalar bor.

Energiya paydo bo’lishi uchun energiyani oladigan narsalardan qutilish kerak.

1. O’zini o’zi yo’monlash (samosabotaj)
2. Negativ atrof muxit (sizga ishonmaydigan va qo’llab quvvatlamaydigan do’stlar va hamkasblar)
3. Yomon, nopok, buzilgan muxit. (Chang bosgan uy, yirtiq va kir kiyim, buzuq telefon yoki kompyuter va hokazo)
4. Xayotda ritm yo’qligi. (24 soat ish, 1 maxal ovqat, uyqusiz tunlar, dam olish siz ishlash va boshqalar)

Bularni hammasi energiyani so’ruvchi qo’ra tuynuk.

Energiyani qayerdan olamiz?

1. Sayohat, lokatsiya almashishi
2. Yaxshi uyqu, yaxshi ovqat, sport.
3. Ilm olish, rivojlanish
4. Maqsadlarga erishish

@mukhammadjon_tech
❤2
Dominant (boshqaruv) pozitsiniyani egallash uchun sizda 3-5 daqiqa bo‘ladi.

Bu vaqtdan o‘tib ketsa, keyin bu pozitsiyani egallash juda qiyin kechadi.

Bu o‘zi nimaga kerak?

Bosim ostida o‘zingiz istamagan qarorlarni qabul qilmaslik.

Yoqtirmagan narsalaringizga chidab yurmaslik.

Yo‘q deyishga kuch topish uchun.

Birinchi taʼsirot bir marta bo‘ladi, ikkinchi marta qoldirish imkoningiz yo‘q.

Hayotiy misol, taksida ko‘p yuraman, haydovchilarning jinnicha qo‘shiqlarini baland qilib qo‘yishini juda yomon ko‘raman.

Ammo ulovga o‘tirganingizdan so‘ng 20 daqiqa o‘tib qo‘shiqni o‘chirib qo‘yishini so‘rasangiz juda g‘alati bo‘ladi.

Shuning uchun ulovga o‘tirishingiz bilan bu narsani jiddiy aytish kerak! Masala hal.

Boshqa vaziyatlarda ham xuddi shunday, birinchi soniyadayoq o‘zingizni qoidangizni tushuntiring!

Har doim kulib yurgan boshqaruvchi birdaniga jiddiy bo‘lib qolsa buni hech kim jiddiy qabul qilmaydi.

Sizda ham shunday holatlar bo‘lganmi?

@mukhammadjon_tech
👍1
Ish quroling soz bo'lsa, mashaqqating oz bo'lur!

JetBrans ning productlarini yangi interfeysda chiqarishni boshlabdi. Sodda, ko'p fuksiyali, asosiysi CPU ga bosim bermaydigan va yangicha user interface ega xolatda. Shaxsan menga Datalore va Pycharm larning yangilangan versiyasi maqul keldi.

Shunday imkoniyatlarni yaratish, siz va men undan qulay tarzda foydalanishligimiz uchun orqa fondagi dasturchilarning mehnati katta albatta. Lekin deyarli barcha imkoniyatlarni premium versiyadagi foydalanuvchilar uchun chiqargan. Faqat birinchi oy bepul foydalanishingiz mumkin, undan keyin sizdan pullik versiyasiga o'tishizni so'raydi. Taxminan oyiga 15$ - 23$ evaziga. Agar siz talaba, maktab o'quvchisi yoki o'qituvchi bo'lsangiz bunday imkoniyatlardan bepul foydalanishligiz mumkin bo'ladi. Agar sizga qiziq bo'lsa keyingi postlarda qanday foydalanishni batafsil tushuntirishga harakat qilaman.

@mukhammadjon_tech
👍2
Agar siz talaba, o'qituvchi, dasturchi yoki boshqa bir soha vakili bo'lsangiz ham JetBrans va ko'plab servicelardan mutlaqo bepul foydalanishingiz mumkin.

Ba'zan imkoniyatimizni yo'qligi ham biz uchun imkoniyat bo'lishi mumkin. Dasturchi ushun muhim bo'lgan resurslardan biri bu yaxshi ishchi qurolga ega bo'lish hisoblanadi. Ular Visual Studio Code, Sublime Text, WebStorm, PyCharm, IntelliJ IDEA va boshqa ko'plab kodlash muhitlari bo'lishi mumkin. Ushbu postimda aytib o'tganimdek, JetBrans Productlaridan bepul foydalanishni va o'zim foydali deb bilgan bir qancha imkoniyatlarni batafsil tushuntirishga harakat qilaman. education.github.com ushbu saytdan ro'yxatdan o'tish orqali siz Student Programga ega bo'lishiz, JetBrans productlari va ko'plab pullik bo'lgan xizmatlardan foydalanishingiz mumkin. Bu xizmatlarga bepul domendan foydalanish, loyihalaringiz dunyo yuzini ko'rishi uchun turli mintaqadagi serverlardan bepul foydalanishingiz, Microsoft Azure, GitHub, DigitalOcean tomonidan $200 pul miqdoridagi depozitga ega bo'lish va boshqa ko'plab imkoniyatlar bilan tanishib chiqishingiz mumkin. Bulardan foydalanish uchun shunchaki saytdan ro'yxatdan o'tib, talaba yoki boshqa shaxsingizni tasdiqlovchi xujjatlaringizni taqdim etishingizni o'zi kifoya.

@mukhammadjon_tech
❤2
Muzokaralarda kuchli bo'ling!

Erkin dasturchi sifatida faoliyat olib borib kelayotganimga ro'ppa ro'sa bir yil bo'libdi. Shu kungacha 80 ga yaqin job applicationlarga topshirdim. Ulardan jami 23 ta tecnicial va job interviewda qatnashdim, qolganlarida men topshirgan positionlarga tajribam yetmaganligi va skilllarim mos kelmaganligi uchun so'zsiz rad etildim. 23 ta interviewlardan 9 tasida offer, 8 tasida rejact oldim. Qolgan 6 tasida muzokara olib borish jarayonida menga to'g'ri kelmagan ayrim sabablar tufayli rad jevobini berdim.

Bu narsalarni nega aytyapman?
Atrofimdagi o'zimga o'xshagan bollar va kuzatuvlarim natijasida shu narsaga amin bo'ldimki, ko'pchilik birinchi rejactdan keyin shashti tushib ketadi. Bu tabiiy xolat albatta, rejact olish kimga ham yo'qardi. Muammo ham, yechim ham aynan shunda. Har safar rejact olganingda keyingi safar yana rejact olish xavotir hissi seni qayta xarakat qilishga undamaydi. Men ham shunday bosqichdan o'tdim va hozir ham shu bosqichdaman. Har safar interviewda qatnashganimda yangi narsa o'rganardim, nimalarni yaxshi bilishim, nimalarni bilmasligimni, ba'zi narsalar haqida menda noto'g'ri tushunchalar paydo bo'lib qolganligini, qaysi ko'nikmalarim kuchli, qaysi ko'nikmalarim ustida ishlashim kerakligini interviewlarda bilganman.

Albatta bular katta natijalar emas, lekin qaysidur ma'noda kichik tajriba. Kimdur aynan shu bosqichda bo'lganligi uchun xarakat qilishdan to'xtab qolgan bo'lishi mumkin. Muzokara olib borishdagi eng asosiy konikmalardan biri o'zingni kuchli tomonlaringni maksimal ravishda ochiqlab bera olish.

@mukhammadjon_tech
🔥2😁1
Ba'zi narsalarni ishlash mohiyatini tushunishimiz uchun vaqt kerak

Har gal bir marotaba o'qib tugatgan kitobingizni oradan bir muddat o'tgandan keyin qayta o'qiganingizdagi olgan xulosangiz, birinchi marta o'qiganingizdagi olgan xulosalaringizdan tubdan farq qiladi. Keyingilarda qayta - qayta o'qiganingizda ham shunday. Yakun bir xil, xulosalar va tushunchalar o'zchaga.

Bugun Data Scienceda ko'p ishlatiladigan Pythonning pandas kutubxonasining data typelardan biri DataFramelarni o'rgandim. Bu xuddi C++ dagi matritsalarga o'xshaydi, deyarli bir xil. Universitetda bundan 3 yil oldin 1 - kursda matritsa va teskari matritsalarni o'rgangan edim. Lekin bugun ularni qanday ishlashini yaxshiroq tushundim. O'shanda aynan bu xossalarni qayerda ishlatishni va qanday muammoga yechim tariqasida qo'llashimni tushunmagan edim. Bugun bir nechta misollar yordamida tushundim.

Tasavvur qiling sizda ma'lum songa ega foydalanuvchining username va email laridan iborat ma'lumotlari bor. U ma'lumotlar username va email satr ko'rinishida tartiblangan. Lekin sizga u ma'lumotlar ustun shaklida tartiblangan xolatda ular ustida amal bajarishingiz kerak. Agar ma'lumotlar nisbatan ozroq bo'lsa muammo yo'q, bu muammoga yechimni 4 yoki 5 qator code yozib xal qilishingiz mumkin. Lekin ma'lumotlar 100♾ ta bo'lsachi? Manashu muammoga yechim beruvchi codeni ham topdiz ham deylik. Siz bu vaziyatda memory va time managementni ham inobatga olishingiz kerak. Aynan manashunday big datalar bilan ishlashga to'g'ri kelib qo'lsa DataFrame lardan foydalanish yaxshi yechim bo'lar ekan.

Ps: Bu birinchi marta o'rganganimda olgan xulosalar, keyingi gal yana boshqa yechimlarni o'rgansam bu xulosalar balki o'zgarishi mumkin:)

@mukhammadjon_tech
👍3🔥2❤1😁1🐳1
Sizning tanishlaringiz 4 xil tipga bo'linadi

1. Introducer - sizni tanishtirib yuradi, boshqalar bilan ulaydi
2. Passive tanish - shunchaki tanish, eslasangiz eslaydi
3. Investor - sizga, g'oyalaringizga va mahsulotingizga pul tikadi
4. So'ruvchi - eng yomon tip faqat sizdan oladi, tez aloqani uzish kerak

@mukhammadjon_tech
🔥3⚡1😁1
Top 10 Software Architecture Patterns in 2023

1. Layered Pattern (N-Tier Architecture)
2. Client-Server Pattern
3. Microservice Architecture
4. Event-Driven Architecture
5. Model-View-Controller (MVC)
6. Service-Oriented Architecture (SOA)
7. Repository Pattern
8. CQRS (Command Query Responsibility Segregation)
9. Domain-Driven Design (DDD)
10. Peer-to-Peer (P2P) Architecture

@mukhammadjon_tech
👍2❤1🔥1👏1😁1