Jakhongir Rakhmonov - IT


Kanal geosi va tili: O‘zbekiston, O‘zbekcha
Toifa: Ta’lim


Software Engineer at Amazon. Dasturchilar uchun foydali ma’lumotlar beraman.
Kurslar: https://skillup.uz/author/jakhongir-rakhmonov
Ikkinchi kanal: @JR_TwitGram
Contact: jrahmonov2@gmail.com

Связанные каналы  |  Похожие каналы

Kanal geosi va tili
O‘zbekiston, O‘zbekcha
Statistika
Postlar filtri


Biror kishi sizga “Data Structure va Algorithmlarni o’rganma, ular uncha kerak emas, ishingda deyarli ularni ishlatmaysan” desa ishonmang.

Ha, CRUD loyiha qiladigan ishlarda kerak bo’lmasligi mumkin. Lekin loyihangizni darajasi oshgan sari ularni yaxshi bilish muhimlashib boraveradi. Deyarli har kuni ishlatiladigan, yangilarini yozish kerak bo’ladigan bo’ladi.

@jakhonrakhmonov

4k 1 23 43 253

Kuchli o’qituvchining eng zo’r hususiyatlaridan biri bu nimani o’rgatishdan tashqari nimani o’rgatmaslikni ham bilishida.

Ba’zida mavzularni umuman tashlab ketish yoki dasturning ohirrog’iga surish o’quvchilarga katta yordam beradi. Ularni adashtirib yubormaydi.

@jakhonrakhmonov


Qanday qilib shuncha Leetcode masala ishlagansiz? Qanday qilib yoqtirib qolish mumkin bu ishni?

deb kuni kecha so’rab qolishdi.

Ochig’ini aytaman - menga Leetcode masala ishlash yoqmaydi.

Menga FAANGda ishlash yoqadi. FAANGda ishlash uchun nima kerak? Leetcode masalalarini ishlash kerak.

O’yinning qonun-qoidasi shunaqa. It is the rule of the game.

Shuning uchun ham o’zimni majburlaganman.

Bu narsa faqat Leetcodeda emas. Har doim ham faqat sizga yoqadigan ishni qilish nasib qilavermaydi. Ko’zlagan maqsadingizga erishish uchun bazida o’sha joyingizni qo’yib o’tirib ishlashga to’g’ri keladi.

Welcome to the real world, deyisharmidi?

@jakhonrakhmonov

13.5k 6 86 84 364

Kir yuvish mashinasi bilan dasturchilik o’rtasida nima o’xshashlik bor?

Bugun uyda kir yuvish mashinamiz ishlamay qolibdi. Albatta, uydagi senior erkak uni tuzatishi kerak. YouTubeda 20ga yaqin videolar ko’rdim. Birortasi yordam bermadi. Hatto hind aka qilgan video ham foyda bermadi.

Ohiri ichini ochdim. Suv qanday harakatlanishini kuzatdim. Bir nechta trubalar bir biriga ulanganini ko’rdim. Birini yopib qo’ysam nima bo’lishini kuzatdim. Ikkinchisini yopsamchi? Va hokazo.

Shunday qilib muammo qayerdaligini yani suv qayerda tiqilib qolayotganini bildim. Muammoni izolyatsiya qildim, debugging orqali.

O’sha joyini ochib, ichini tozalab, qayta yig’ib qo’ydim.

Ishladi.

Dasturchilik ham tahminan shunaqa. Faqat unda suv bir nechta trubalardan o’tishini emas, ma’lumotlar bir nechta servislardan o’tishini kuzatsa bo’ladi.

Muammo chiqqanda, qaysi servisda muammo borligini izolyatsiya qilib topib o’sha servisni tuzatiladi.

Hullas, hamma hursand.

Ana endi AI ishimni olib qo’ysa ham butunlay ishsiz qolib ketmas ekanman. Kirmashinangiz buzilib qolsa ustaxonamga kelaversizlar. Arzon narxda sifatli tuzatib beraman.

@jakhonrakhmonov

12.1k 1 33 37 506

Iloji boricha ko’proq muvaffaqiyatsizlikka erishishni xohlayman

FAANGa topshiray, o’xshamasin.

Loyihalar qilay, o’xshamasin.

Business qilay, o’xshamasin.

Postlar yozay, o’xshamasin.

Bularning barchasi qo’rqib, hech narsa qilmaslikdan yaxshiroq.

Ko’proq o’xshamasa, ko’proq o’xshaydi.

@jakhonrakhmonov

13k 6 103 56 442

AI ishlatish dasturchilikni o’rganishni endi boshlaganlar uchun zarar

Hammasini qo’lda yozish kerak.

O’zingiz bilgan narsani tezroq qilish uchun ishlatsangiz boshqa gap. Biror narsa haqida ChatGPT/Google dan anglab savol so’rash boshqa gap. Copilot, Cursor, Windsurf kabi editorlardan foydalanib, TAB TAB TAB bosish esa yaramaydi.

O’chirib tashlang.

@jakhonrakhmonov

12.8k 8 100 46 265

Help me help you

Dasturchilikda, va umuman boshqa sohalarda ham, tez o‘rganishning eng yaxshi usullaridan biri bu savollar so‘rash orqali. Ishxonadagi dasturchilardan, chat jipidi akadan, claude opadan, stockoverflowdan, mendan va boshqalardan savol so‘rash orqali tez va to‘g‘ri yo‘nalishda harakatlanish mumkin.

Shaxsan o‘zim va men bilgan ko‘pchilik yordam berishni chin dildan xohlaydi. Juda xursand ham bo‘ladi, agar yordam bera olsa. Lekin hech kim, qaytaraman hech kim, sizning ishingizni siz uchun qilib berishni xohlamaydi.

- Menga rezyume yozib bera olasizmi?

- Mana-bu ishni qila olmayapman, yordam bera olasizmi?

- Shu loyihaning arxitekturasini chizib bera olasizmi?

kabi savollar ochiqsachiga odamga yoqmaydi. Sababi bu va shunga o‘xshash savollarga to‘g‘ri va to‘liq javob berish uchun ancha bosh qotirish va vaqt sarflash talab qilinadi. Undan ham yomoni - savol berayotgan odam shu ishni qilishga yoki savolni to‘g‘ri yozishga erinayotganida.

Men ishda biror kishidan savol so‘rasam, odatda taxminan quyidagicha shaklda ifodalayman:

Salom Alexandro. Men loyihaning shu qismida bir muammoga duch kelyapman. Sen shu qismda juda ko‘p ishlar qilgan ekansan. Bilsang va yordam bera olsang zo‘r bo‘lar edi. Lekin agar boshqa odam yaxshiroq biladi deb o‘ylasang, iltimos o‘sha odamga meni jo‘natvor. Savolim: ‘Shu ishni qilmoqchiman. Uning uchun 3 ta yo‘ldan ketishim mumkin. 1 chisi bunaqa, 2 chisi shunaqa, 3 chisi esa munaqa. Menimcha 2 chi yo‘l eng zo‘ri, chunki shunday qilsam bunday bo‘ladi. Uni qilish mana bu yerda shunday o‘zgarish qilmoqchiman, lekin mana bunday xato chiqyapti. Bilasanmi, qayerda xato qilayotgan bo‘lishim mumkin?’

Mening maqsadim Alexandroga iloji boricha tez va to‘g‘ri javob bera olishi uchun sharoit yaratib berish. Butun contextni tushuntirib berish.

Umuman olganda birovdan nimanidir xohlasangiz, sizga u o‘sha narsani berishi uchun ishini osonlashtirishingiz kerak. Yana bitta misol. Odatda ishxonalarda promotion olishingiz uchun sizning manageringiz siz haqingizda report yozishi kerak va boshliqlarga siz promotionga arzishingizni isbotlab berishi kerak. Bu oson ish emas. Manageringiz siz qilgan ishlarni eslashi, aniq misollar berishi talab qilinadi. Siz manageringizga shu reportni yozib berish orqali katta yordam qilishingiz va promotion jarayonini ancha tezlashtirib berishingiz mumkin. Siz o‘zingiz nima ishlar qilganingizni manageringizdan yaxshiroq bilasiz har holda.

@jakhonrakhmonov


💯bir kuni shunga tegishli postizni o'qib keyingi kundan boshlab react kutubxonasini yozishni boshludm. 2-3 oy o'tib no-dependency react kutubxonamni tugattim, va ustida 2ta mini-loyiha ko'tardim. Shu pet-project interview lada juda yordam berdi va kotta rol o'ynadi. Raxmat.

7.9k 0 16 19 201

Menga shu ro’yxatda ikkitasi juda yoqqan:

1. Framework yaratish
2. ORM (Object Relational Mapper) yaratish

Django, FastAPI kabi frameworklarni ishlatganimda doim ichida qanday ishlashi o’ylantirar edi. Django ORM, SQLAlchemy kabi ORMlarniku gapirmasa ham bo’ladi.

Sehrgarlik. Juda ko’p ishni biz uchun qilib berishadi.

Shuning uchun ham ular qanday ishlashini o’rganib chiqqanman va sizlar uchun ikkita video darsliklar tayyorlaganman:

1. O’zingizning Frameworkingizni Yozing
2. O’zingizning ORMingizni Yozing

Ismidan bu darsliklar nima haqida bo’lishi ochiq oydin bilin turgan bo’lsa kerak. Qanday framework yoki ORM yozilishi haqida o’ylanayotgan bo’lsangiz ushbu Github reponi ko’rishingiz mumkin: https://github.com/rahmonov/alcazar.

Menimcha bunday loyihalar portfolioda bo’lsa kompaniyalar boshqacha munosabat bildirsa kerak. Chunki bunday loyihalarni hamma ham qilmaydi. Qila olmaydi.

Kurslarni ochib ko’ring. Bir nechta darslari ochiq, yani to’lash shart emas. Ko’ring, yoqsa oling. Yoqmasa kommentda nimaga yoqmaganini yozib qoldirsangiz hursand bo’lgan bo’lar edim. Yanagi safar yaxshilashga harakat qilaman.

Fursatdan foydalanib chegirma belgilab qo’yganman ikkala kursga ham. Keyingi 3 kun davomida Framework Yozish kursi 300 ming emas, 250 ming va ORM kursi esa 250 ming emas, 200 ming bo’ladi.

Savolingiz bo’lsa ushbu post tagida qoldiring. Barchasiga javob berishga harakat qilaman.

@jakhonrakhmonov

9k 0 98 18 84

Jakhongir Rakhmonov - IT dan repost
Bilasizlarmi men nima qilgan bo’lar edim? Qadamma qadam tushuntiraman:

1. https://github.com/codecrafters-io/build-your-own-x repositoriyasiga kirardim
2. Loyihalar ro’yxatini yaxshilan o’rganib chiqqan bo’lar edim
3. Eng yoqqanini tanlagan bo’lar edim.
4. O’sha mavzuni yaxshilab o’rganib chiqqan bo’lar edim.
5. Qurmoqchi bo’lgan narsamni kerak bo’lsa chizib chiqib dizayn qilgan bo’lar edim. Grafik dizayn bo’lishi shart emas. Hattoki Command-Line loyihalarni ham dizayn qilinadi. API tarafdan.
6. Loyihani o’zimga yoqadigan qilib qurgan bo’lar edim. Huddi o’zim uchun uy qurgan kabi. Bu loyiha men uchun. Boshqalarga arendaga bergani emas. Ichidagi hamma narsani sifatli qilgan bo’lar edim. Boshqalar “mehmonga” kelganda hayratda qolsin. Lekin eng asosiysi o’zim hursand bo’lay.

@jakhonrakhmonov

7.4k 0 147 17 139

Jakhongir Rakhmonov - IT dan repost
“Umid yo’q. Siz xohlagan ishingizni topa olmaysiz. Balki 1000ta joyga topshirsangiz chiqib qolar. Vaqtingizni bekorga sarflayapsiz”

deb Computer Science yo’nalishini o’qib tugatgan bir odam dardini yozibdi.

Bu gaplarga Y Combinator kompaniyasi CEOsining javobini qarang:

Haqiqiy loyihlarda, side projectlarda, open source loyihalarda, shunchaki qiziqish uchun qilinayotgan loyihalarda ishlash bu muammoga davodir.

Computer Science bitiruvchilarining ko’pchiligi hech narsa yasay olmaydilar.

Agar siz nafaqat loyihalar qura olishingizni, balki o’zingiz qiziqqaningiz uchun loyihalar qilganingizni isbotlay olsangiz, imkoniyatlar eshiklari siz uchun ochiladi.


E’tibor beringa. Loyiha, loyiha, loyiha. Qurish, yasash, qiziqish.

Ish topa olmayotganlardan so’rasangiz qilgan ishi CRUDdan uyo’giga o’tmagan. Oddiy web loyihadan uyog’iga o’tmagan.

Dasturchilikdek imkoniyatlari cheksiz kasbni o’rganasizu, o’zingizga qiziq bo’lgan birorta proyekt qilib ko’rmaysizmi? Nima bu hamma yoq CRUD bo’lib yotibdi? Bu hamma yozayotgan blog, internet magazin, yangiliklar sayti hech kimni e’tiborini tortmaydigan bo’lib qolgan. Eng yomon tarafi bularning hammasi uchun deyarli bir xil qobiliyatlar kerak. Qisman farq qiladi holos.

O’yin yozib ko’rmaysizmi? Linux uchun Command-Line loyiha qilib ko’rmaysizmi? Data Engineering qilib ko’rmaysizmi? Bot yozib ko’rmaysizmi? 3D qilib ko’rmaysizmi? Yangi dasturlash tili yozib ko’rmaysizmi? Yangi framework yozib ko’rmaysizmi?

Boshqalardan ajralib turish vaqti keldi.

@jakhonrakhmonov

6k 1 127 13 257

0 ta foydalanuvchidan 1 million foydalanuvchigacha bo’lgan yo’l
System Design - 4chi qism

Salom do’stlar. Men bir loyihani 0 ta foydalanuvchidan 1 million foydalnuvchigacha olib chiqayotgan dasturchiman. Ko’rishmaganimizga ham ancha bo’lib qoldi. Men boshqa bir loyihani millionlab foydalanuvchilarga olib chiqish bilan band edim.

Bu postni o’qishdan oldin hikoyamning birinchi, ikkinchi va uchinchi qismlarini albatta o’qib chiqing.

O’tgan safar cache haqida gaplashgan edik. Bu safar biz sizlar bilan CDN haqida suhbat olib boramiz.

https://sable-cheshire-34d.notion.site/0-ta-foydalanuvchidan-1-million-foydalanuvchigacha-bo-lgan-yo-l-15956ce39dab80d1b257cafb2b2e607f

@jakhonrakhmonov


Lavozimingizni oshirishningiz, yani promotion olish uchun buni bilishingiz shart.

Ish xonangizdagi hamma loyihalarning o‘rni bir xil emas. 

Qaysidirlari juda muhim - bajargan inson hammaning nazariga tushadi, mijozlar rahmat aytadi, kompaniyaga pul keltiradi va hokazo.

Qaysidirlari esa o‘rtacha darajada muhim - kimdirlarning nazariga tushadi, biror kishi rahmat aytishi mumkin ha hokazo.

Qaysidirlari esa umuman muhim emas - hech kimga ko‘rinmaydi, hech kim rahmat aytmaydi va hokazo.

Mening oldingi strategiyam menga berilgan ishni zo‘r qilish edi. Menejerdan ish kelishini kutar edim va berilgan ishni juda zo‘r qilishga harakat qilar edim. Yaxshi ishlayapman-ku, meni shuning uchun rag‘batlantirishlari kerak deb o‘ylar edim. Lekin bu noto‘g‘ri strategiya. Ming zo‘r ishlaganim bilan, uncha muhim bo‘lmagan loyihalar ustida ishlasam, men qilayotgan ishlarning ta’siri sezilmaydi.

Menejer menga ish berishini kutish xuddi karyeramni uni qo‘liga topshirib qo‘yayotgandek tuyulishni boshladi. Bu esa albatta noto‘g‘ri. Karyeramda o‘sishni o‘zim boshqarishim kerak. Bu o‘zimning qo‘limda.

Boshqa strategiyaga o‘tdim.

Jamoamiz qilayotgan ishlarni yaxshilab o‘rganib chiqib, eng keraklilarini o‘zim uchun belgilab qo‘yadigan bo‘ldim. Hozirgi qilayotgan ishim tugashiga shu muhim bo‘lgan loyihalardan berishlarini so‘raydigan bo‘ldim. Natijada men qilayotgan ishlarning ta’siri sezila boshladi va bu bir nechta promotionlarga olib keldi.

Bu strategiya ish berishi uchun esa albatta menejer sizga ishonishi kerak. Uning ishonchini qozonish uchun esa karyerangiz boshida ishingiz qanchalik zerikarli va ahamiyatsiz bo‘lmasin, uni yuqori darajada bajarishingiz lozim bo‘ladi.

@jakhonrakhmonov

17.2k 7 132 22 323

Dasturlashni o’rganishni boshidan boshlaganingizda nimadan boshlagan bo’lar edingiz?

Agar Windows yoki Mac ishlatayotgan bo’lsam, darhol Linuxga o’tgan bo’lar edim.

Shunchaki dasturchilarga yaqin bo’lgan operatsion sistema. Ko’p kerakli narsalarni o’rganishga majbur bo’lasiz. Mac va Windows esa “erkalab” qo’yishi mumkin.

@jakhonrakhmonov

14.9k 3 49 126 233

Oxirgi 2 yilda asosan Rust tili bilan ishlab keldim. Undan oldin esa 7-8 yilcha Pythonda ishlaganman. Bitta narsaga ishonchim komil.

Siz Python, PHP, JavaScript kabi “dynamically typed” tillarda ishlasangiz yoki o‘rgangan bo‘lsangiz, shularni o‘zi bilan kifoyalanib qolmang. 

Statically typed tillar sizga ancha-muncha narsa o‘rgatadi. Nafaqat kodingiz bilan ishlash osonlashadi, balki sizni dasturchi sifatida keyingi darajaga olib chiqadi. Chunki typelar bilan yana o‘ziga yarasha patternlar ham kelib chiqadi. Ularni o‘rganasiz. Katta-katta jamoalarda typelar qanday katta yordam berishini ko‘rasiz. Katta katta refactorlar qanchalik oson bo‘lishini va umuman qo‘rqmasdan kodingizni o‘zgartira olishingizni ko‘rasiz.

Bu degani tepada eslatib o‘tilgan tillar yomon degani emas. Men haligacha Pythonni sevaman desam yolg‘on gapirmagan bo‘laman. Lekin bundan buyog‘iga qandaydir jiddiy loyihalarni faqatgina Rust, Go va boshqa statically typed tillarda yozishga harakat qilaman. 

Sizga ham o‘zingiz uchun shunday bitta til o‘rganishni maqsad qilib olishingizni maslahat beraman.

@jakhonrakhmonov

19k 0 49 59 257

Siz orzu qilgan FAANG kompaniyalarning biriga kirdingiz deylik. Qachon qo’shilganingizga qarab u yerdan topadigan daromadingiz bir xil darajadagi ham kasblaringizga nisbatan ancha ko’proq yoki ancha kamroq bo’lishi mumkin.

Odatda ularda “total compensation” - yani barcha oladigan daromadingiz yig’indisi - 3ta qismdan tashkil topadi:

1. Base compensation
2. Sign-on bonus
3. Stocks

Base compensation bu yiliga oladigan “fixed” summa. Sign-on bonus bu shu kompaniyaga kirganingizda beriladigan bir martalik summa (katta bo’lsa bir necha oylarga bo’lib to’lanishi mumkin). Stocks - bu shu kompaniya aksiyalari.

Deylik sizga umuman olganda yiliga $100.000 berishmoqchi:
1. $60.000 - base
2. $10.000 - sign-on bonus
3. $30.000 - stocks

Siz qo’shilgan paytda bir dona stock $100 turadi deb faraz qilaylik. Demak sizga kompaniya 300 dona stock beribdi.

Oradan bir yil o’tdi.

Huddi shu ishga huddi shu darajada yana bir odam ishga qabul qilindi. U paytga kelib bir dona aksiya qiymati $200 bo’ldi. Natijada unga 300ta emas 150ta stock berishdi.

Oradan 4 yil o’tdi. Bir dona stock qiymati hali ham $200da turibdi. Ikkalangiz ham sotishga qaror qildingiz.

Sizning stocklardan olgan umumiy daromadingiz $60.000 bo’ldi. Hamkasbingizniki esa $30.000.

Tabriklayman.

@jakhonrakhmonov

16.3k 0 37 51 242

0 ta foydalanuvchidan 1 million foydalanuvchigacha bo’lgan yo’l
System Design - 3chi qism.

“Salom do’stlar. Men bir loyihani 0 ta foydalanuvchidan 1 million foydalnuvchigacha olib chiqayotgan dasturchiman. Bu postni o’qishdan oldin hikoyamning birinchi va ikkinchi qismlarini albatta o’qing.

O’tgan safar databaselar haqida gaplashgan edik. Bu safar biz sizlar bilan cache haqida suhbat olib boramiz.”

Maqolani to’liq o’qing va system design bilimlaringizni oshiring: https://sable-cheshire-34d.notion.site/0-ta-foydalanuvchidan-1-million-foydalanuvchigacha-bo-lgan-yo-l-11d56ce39dab808e938bc732bf9281e8

@jakhonrakhmonov

13.5k 0 79 20 108

0 ta foydalanuvchidan 1 million foydalanuvchigacha bo’lgan yo’l
System Design - 2chi qism.

“Salom do’stlar. Men bir loyihani 0 ta foydalanuvchidan 1 million foydalnuvchigacha olib chiqayotgan dasturchiman. Bu postni o’qishdan oldin hikoyamning birinchi qismini albatta o’qing.

O’tgan safar application serverlarimiz haqida gaplashgan edik. Bu safar biz sizlar bilan database taraf bilan shug’illanamiz.

Muammoni eslab olaylik. Bizda database bitta serverda joylashgan edi.”

Maqolani to’liq o’qing va system design bilimlaringizni oshiring: https://sable-cheshire-34d.notion.site/0-ta-foydalanuvchidan-1-million-foydalanuvchigacha-bo-lgan-yo-l-11856ce39dab8064b24cc584d74af87c

@jakhonrakhmonov

14.7k 1 87 15 130

Sun’iy Intellektning eng zo‘r foydasi men uchun kod yozishi emas. U bu narsani o‘rganishda yordam berishida.

Yaqqol misol - https://notebooklm.google.com/

Tasavvur qiling siz biror qiyin mavzudagi kitob o‘qiyapsiz. NotbookLMga joylasangiz shu kitobni podcast shaklidagi “audio overview”sini chiqarib berar ekan.

Undan tashqari kitobda yozilgan narsalar bo‘yicha xohlagan savolingizni bersangiz javob berar ekan. U bu narsani tushunmadingizmi, shu yerda so‘raysiz va javobini olasiz. 

Qiyin kitoblar, whitepaperlar o‘qishni ancha osonlashtirib qo‘yishibdi. Maza!

@jakhonrakhmonov

19.1k 9 346 25 280

0 ta foydalanuvchidan 1 million foydalanuvchigacha bo’lgan yo’l
System Design - 1chi qism.

“Salom. Men dasturchiman va o’zimning loyiham ustida ish olib boryapman. Loyiham hozircha juda ham oddiy va umuman foydalanuvchilarga ega emas lekin mening maqsadim bu loyihani millionlab foydalanuvchilar muammosiz ishlata oladigan darajaga olib chiqish. “

Maqolani to’liq o’qing va system design bilimlaringizni oshiring: https://sable-cheshire-34d.notion.site/0-ta-foydalanuvchidan-1-million-foydalanuvchigacha-bo-lgan-yo-l-10856ce39dab800c9235c5ea1d7b1ba9

@jakhonrakhmonov

17.1k 5 190 41 283
20 ta oxirgi post ko‘rsatilgan.