How database indexing works
Tasavvur qiling yonimda 1000 betli kitob, Sarah va Lisa turibdi. Men Sarahga qarab "Hey, men seni seva... e uzur, menga Hamlet asarini topib ber shu kitobdan" dedim. U varoq titkilashga o'tdi. Ho'sh u asarni topganicha men zerikib ketib u bilan bo'lgan aloqani uzvordim. Chunki juda sekin qidirardi.
Endi esa Lisaga qarab xuddi shunday murojaat qildim. Lisa aqlli edi shuning uchun u darrov mundarija (book index) ni ochdiyu Hamlet asarini nechanchi pageda joylashganini topib menga o'sha pageni darrov ochib ko'rsatdi. Men uni yana ham yaxshi ko'ra boshladim.
Bu hikoyadan keyin siz "haa, database indexing shunday ishlar ekanda" deyayotgan bo'lsangiz shoshilmang, qisman ha ammo to'laqonlik unday emas. Keling internally nimalar bo'lishi haqida to'xtalib o'tamiz.
What is an Index?
Well, o'tgan maqaolada database barcha ma'lumot(page)larni RAMga olib o'tib keyin birma-bir ko'rib chiqishi haqida gaplashgandik va agar bizda millionlab rowlar bo'lsa bu bizga qimmatga tushishini tushungandik. Agar biz barcha pagelarni emas balkim aniq bir pageni olib o'tsakchi? Aynan shu ish indexing deyiladi. Bilamizki pagelarda qanchadir miqdorda cheklangan rowlar bo'ladi va biz bir necha pagelarni RAMga yuklab har bir pageni scan qilishimiz emas, shunchaki bitta pageni olamiz va undagi rowlarni qarab chiqish orqali operatsiyalar sonini sezilari tushirishimiz mumkin bo'ladi, voila 🤲 (Khabiyni qo'li)
Cost of Indexing
Indexing operatsiyalar sonini tushuradi va boshqa tomonnikini ko'taradi🥲. Misol uchun CRUD operatsiyalaridan Read qilish tezlashgani bilan CUD (Create, Update, Delete) uchun qo'shimcha ishlar paydo bo'ladi. Oldin faqat tablega ma'lumot yozsangiz endi indexga ham yozasiz va qancha ko'p index bo'lsa shuncha ko'p operatsiya bo'ladi.
Post foydali bo'lgan bo'lsa uni share qilmang, bu juda xavli. Hamma senior bo'lib ketmasin deymanda 😉
@otabekswe
Tasavvur qiling yonimda 1000 betli kitob, Sarah va Lisa turibdi. Men Sarahga qarab "Hey, men seni seva... e uzur, menga Hamlet asarini topib ber shu kitobdan" dedim. U varoq titkilashga o'tdi. Ho'sh u asarni topganicha men zerikib ketib u bilan bo'lgan aloqani uzvordim. Chunki juda sekin qidirardi.
Endi esa Lisaga qarab xuddi shunday murojaat qildim. Lisa aqlli edi shuning uchun u darrov mundarija (book index) ni ochdiyu Hamlet asarini nechanchi pageda joylashganini topib menga o'sha pageni darrov ochib ko'rsatdi. Men uni yana ham yaxshi ko'ra boshladim.
Bu hikoyadan keyin siz "haa, database indexing shunday ishlar ekanda" deyayotgan bo'lsangiz shoshilmang, qisman ha ammo to'laqonlik unday emas. Keling internally nimalar bo'lishi haqida to'xtalib o'tamiz.
What is an Index?
Well, o'tgan maqaolada database barcha ma'lumot(page)larni RAMga olib o'tib keyin birma-bir ko'rib chiqishi haqida gaplashgandik va agar bizda millionlab rowlar bo'lsa bu bizga qimmatga tushishini tushungandik. Agar biz barcha pagelarni emas balkim aniq bir pageni olib o'tsakchi? Aynan shu ish indexing deyiladi. Bilamizki pagelarda qanchadir miqdorda cheklangan rowlar bo'ladi va biz bir necha pagelarni RAMga yuklab har bir pageni scan qilishimiz emas, shunchaki bitta pageni olamiz va undagi rowlarni qarab chiqish orqali operatsiyalar sonini sezilari tushirishimiz mumkin bo'ladi, voila 🤲 (Khabiyni qo'li)
Cost of Indexing
Indexing operatsiyalar sonini tushuradi va boshqa tomonnikini ko'taradi🥲. Misol uchun CRUD operatsiyalaridan Read qilish tezlashgani bilan CUD (Create, Update, Delete) uchun qo'shimcha ishlar paydo bo'ladi. Oldin faqat tablega ma'lumot yozsangiz endi indexga ham yozasiz va qancha ko'p index bo'lsa shuncha ko'p operatsiya bo'ladi.
Post foydali bo'lgan bo'lsa uni share qilmang, bu juda xavli. Hamma senior bo'lib ketmasin deymanda 😉
@otabekswe
#interview
Intel kompaniyasi bilan bo’lgan interviewdan rejact oldim. Ammo bu ham tajriba. Ushbu postni bir kun reply qilish nasib qilsin deya shu yerga joylab qo’yayabman.
Bollar biz yutamiz!
Intel kompaniyasi bilan bo’lgan interviewdan rejact oldim. Ammo bu ham tajriba. Ushbu postni bir kun reply qilish nasib qilsin deya shu yerga joylab qo’yayabman.
Bollar biz yutamiz!
Ushbu ko'rib turgan funksiyalaringiz siz pythonda sevib ishlatadigan logical operatorlar.
Ularni implement qilish uchun print ichidagi ifodalarni run qilib ko'ring (stringsiz) va keyin men tuzgan funksiyalar bilan run qilib ko'ring.
Qarabsizki bir xil natija olasiz. Savol endi ham math kerak emasmi?
For more
@otabekswe
Ularni implement qilish uchun print ichidagi ifodalarni run qilib ko'ring (stringsiz) va keyin men tuzgan funksiyalar bilan run qilib ko'ring.
Qarabsizki bir xil natija olasiz. Savol endi ham math kerak emasmi?
For more
@otabekswe
API Throttling
Hop, menimcha ushbu postni o'qib turgan barcha insonlar API nimaligi haqida bilishadi. API Throttling - API ga yuboriladigan requestlar sonini qanchadir vaqt oralig'i uchun cheklash. Tasavvur qiling telegramda xabar yozib yuborish uchun ko'k "samalyotcha"ni bosdingiz ho'sh bu yerda nimalar sodir bo'ldi?
Ushbu jarayonda o'sha "samalyotcha" event sodir bo'lgani haqida xabar topadi va API ga request yuboradi (albatta xabaringiz o'sha request ichida ketadi). API esa telegram web serveri bilan bog'lanadi va ushbu buttonni vazifasi nima uchun bo'lsa o'sha vazifani bajarishga kirishadi (ya'ni server sizni xabaringizni oladi va boshqa user, bot yoki e.t.c. ga jo'natadi).
Throttling faqat Backendga yoki APIga tegishli yechim emas balkim umumiy callable larga tegishli. Misol uchun Frontend da ham throttling qilish mumkin ya'ni siz dasturlash tiliga "hey mana bu funksiyani har minutda faqat 5 marta chaqrishga ruxsat ber" deysiz tamom (kod yozish bilan aytasizda).
Ko'p xolatlarda resurs tejashlik maqsadida ko'proq ishlatiladi chunki keladigan requestlarni barchasiga server javob berishi orqali ko'p resurs sarflanadi (downtime). Misol uchun Leetcode subscription sotib olmasangiz code run qilishingiz uchun rate limit ya'ni cheklov o'rnatib qo'yadi. Bu ham aynan throttle qilish orqali yuzaga keladi.
Ko'proq bu yerdan...
@otabekswe
Hop, menimcha ushbu postni o'qib turgan barcha insonlar API nimaligi haqida bilishadi. API Throttling - API ga yuboriladigan requestlar sonini qanchadir vaqt oralig'i uchun cheklash. Tasavvur qiling telegramda xabar yozib yuborish uchun ko'k "samalyotcha"ni bosdingiz ho'sh bu yerda nimalar sodir bo'ldi?
Ushbu jarayonda o'sha "samalyotcha" event sodir bo'lgani haqida xabar topadi va API ga request yuboradi (albatta xabaringiz o'sha request ichida ketadi). API esa telegram web serveri bilan bog'lanadi va ushbu buttonni vazifasi nima uchun bo'lsa o'sha vazifani bajarishga kirishadi (ya'ni server sizni xabaringizni oladi va boshqa user, bot yoki e.t.c. ga jo'natadi).
Throttling faqat Backendga yoki APIga tegishli yechim emas balkim umumiy callable larga tegishli. Misol uchun Frontend da ham throttling qilish mumkin ya'ni siz dasturlash tiliga "hey mana bu funksiyani har minutda faqat 5 marta chaqrishga ruxsat ber" deysiz tamom (kod yozish bilan aytasizda).
Ko'p xolatlarda resurs tejashlik maqsadida ko'proq ishlatiladi chunki keladigan requestlarni barchasiga server javob berishi orqali ko'p resurs sarflanadi (downtime). Misol uchun Leetcode subscription sotib olmasangiz code run qilishingiz uchun rate limit ya'ni cheklov o'rnatib qo'yadi. Bu ham aynan throttle qilish orqali yuzaga keladi.
Ko'proq bu yerdan...
@otabekswe
Application Layer (part-1)
Backendga Sayohat loyihasi davom etadi. Endigi navbat OSI modelini eng yuqori qavati "application layer"ni kashf qilishga.
Ba'zi joylarda adashgan yoki xato qilgan bo'lsa izohlarda aytib o'ting.
Post foydali bo'lgan bo'lsa bizni duo qilib turing )
@otabekswe
Backendga Sayohat loyihasi davom etadi. Endigi navbat OSI modelini eng yuqori qavati "application layer"ni kashf qilishga.
Ba'zi joylarda adashgan yoki xato qilgan bo'lsa izohlarda aytib o'ting.
Post foydali bo'lgan bo'lsa bizni duo qilib turing )
@otabekswe
Nima uchun FAANGda DS Algo bo'yicha interview qilishadi?
FAANG kompaniyalariga shu paytgacha 5ta interview qilishga ulgurdim va 4tasidan rejact bittasi bilan davom etayabmiz (hozircha sir 😉). Intel, Amazon, Nokia va Bank of New York Mellon kompaniyalarida ham bir xil DS Algo interviewlari bo'ldi. Xo'sh interview oxirida 2ta ajoyib insonlar bilan connection qilib oldim va savollar berdim. Bulardan biri bu "Nima uchun FAANGda DS Algo bo'yicha interview qilishadi?" Javoblarni umumiy va soddalashtirib quydigachi xulosalarga keldim:
1. Problem analysis - Dasturchilar muammolarni yechuvchi insonlar bo'lgani uchun ham ulardan kuchli "muammo tahlil qilish" ko'nikmalari talab qilinadi. Bu orqali esa dasturchi qachon, qayerda va qanday qilib muammoga to'g'ri yondashuv qila olishini kuzatish mumkin.
2. Language proficiency - Dasturchilarda til borasidagi bilimlari bo'yicha savollar berib o'tirgandan ko'ra, ularni amaliyotda qanchalik to'g'ri va moxirlik bilan ishlata olishini tekshirish osonroq ekan. Tasavvur qiling siz nazariyda zo'r bilimga egasiz ammo amaliyot qilib ko'rmagansiz, bu yomon va ushbu muammoni oldini olish uchun sizdan ko'proq amaliy vazifalar berish orqali aniqlash ancha vaqtdan yutish imkonini beradi.
3. Soft skills - Jamoaga sizni kiritishdan oldin sizni qanday soft skillga egaligingizni tekshirish uchun ham bu interviewlar juda zo'r, chunki muammo aniq, yechim uchun sizda ko'plab aniq va sodda fikrlar so'raladi. Siz qanchalik yaxshi tushuntirish qobilyatiga ega bo'lsangiz, qanchalik muammoni yechimini sherigingiz (interviewer) bilan tahlil qilsangiz shuncha yaxshi soft skillga egasiz degani )
... va boshqa sabablar ham bor, ammo eng asosiylar menimcha shular.
Latofat Bobojonova: Internship qilish uchun tajriba emas yaxshi project(lar) va kuchli bilm bo’lsa yetadi. Sinab ko’rilgan uslub :)
P.S: Ushbu postni o'z tajriba va fikrlarim asosida yozayabman
@otabekswe
FAANG kompaniyalariga shu paytgacha 5ta interview qilishga ulgurdim va 4tasidan rejact bittasi bilan davom etayabmiz (hozircha sir 😉). Intel, Amazon, Nokia va Bank of New York Mellon kompaniyalarida ham bir xil DS Algo interviewlari bo'ldi. Xo'sh interview oxirida 2ta ajoyib insonlar bilan connection qilib oldim va savollar berdim. Bulardan biri bu "Nima uchun FAANGda DS Algo bo'yicha interview qilishadi?" Javoblarni umumiy va soddalashtirib quydigachi xulosalarga keldim:
1. Problem analysis - Dasturchilar muammolarni yechuvchi insonlar bo'lgani uchun ham ulardan kuchli "muammo tahlil qilish" ko'nikmalari talab qilinadi. Bu orqali esa dasturchi qachon, qayerda va qanday qilib muammoga to'g'ri yondashuv qila olishini kuzatish mumkin.
2. Language proficiency - Dasturchilarda til borasidagi bilimlari bo'yicha savollar berib o'tirgandan ko'ra, ularni amaliyotda qanchalik to'g'ri va moxirlik bilan ishlata olishini tekshirish osonroq ekan. Tasavvur qiling siz nazariyda zo'r bilimga egasiz ammo amaliyot qilib ko'rmagansiz, bu yomon va ushbu muammoni oldini olish uchun sizdan ko'proq amaliy vazifalar berish orqali aniqlash ancha vaqtdan yutish imkonini beradi.
3. Soft skills - Jamoaga sizni kiritishdan oldin sizni qanday soft skillga egaligingizni tekshirish uchun ham bu interviewlar juda zo'r, chunki muammo aniq, yechim uchun sizda ko'plab aniq va sodda fikrlar so'raladi. Siz qanchalik yaxshi tushuntirish qobilyatiga ega bo'lsangiz, qanchalik muammoni yechimini sherigingiz (interviewer) bilan tahlil qilsangiz shuncha yaxshi soft skillga egasiz degani )
... va boshqa sabablar ham bor, ammo eng asosiylar menimcha shular.
Latofat Bobojonova: Internship qilish uchun tajriba emas yaxshi project(lar) va kuchli bilm bo’lsa yetadi. Sinab ko’rilgan uslub :)
P.S: Ushbu postni o'z tajriba va fikrlarim asosida yozayabman
@otabekswe
#TechTalks
Google kompaniyasida 2 marotaba ketma-ket internship (amaliyot) qilgan o'zbek qizi, va loyihamizning birinchi mexmoni Latofat Bobojonova bilan o'zgacha suxbat.
Ushbu suhbat ochiq, samimiy va boshqalaridan qiziq bo'ladi.
Vaqt: 18:00 (Toshkent vaqti bilan)
Sana: 22-Oktyabr
Mavzu: Life at Google
@otabekswe
Google kompaniyasida 2 marotaba ketma-ket internship (amaliyot) qilgan o'zbek qizi, va loyihamizning birinchi mexmoni Latofat Bobojonova bilan o'zgacha suxbat.
Ushbu suhbat ochiq, samimiy va boshqalaridan qiziq bo'ladi.
Vaqt: 18:00 (Toshkent vaqti bilan)
Sana: 22-Oktyabr
Mavzu: Life at Google
@otabekswe
Latofat Bobojonova
Otabek - SWE
Speaker: Latofat Bobojonova
Topic: Life at Google
Duration: 55 minutes
Topic: Life at Google
Duration: 55 minutes
Database normalization
Database implement qilishdan oldin juda puxta va uzoq fikr qilishni tavsiya qilaman. Chunki har bir o'zgartirish yoki yangi qo'shimchalar kiritish sizga qimmatga tushishi, ba'zan esa katta muammolar ham keltirishi mumkin. Xuddi shunday muammolarni keltirib chiquvchi omillardan biri bu ne-normal database xisoblanadi.
Database normalization - ma'lumotlarni tartibli va izchil tarzda orginize qilish uchun ma'lumotlar bazasini dizaynlash tamoyili. Keling misollar bilan ko'rib chiqamiz.
1NF - First Normal Form
Birinchi normal formada ma'lumotlar atomic va unique bo'lishi kerak bo'ladi va uzunroq qilganda ushbu prinsiplarga amal qilishi kerak:
- hech bir cell bittadan ko'p ma'lumot saqlamasligi kerak (atomicity)
- identifikatsiya qilish uchun primary key bo'lishi kerak
- duplicate row yoki column bo'lmasligi kerak
...
Tasavvur qiling, foydalanuvchini "Address"ini saqlamoqchisiz. Siz nazarda tutgan "Address" = "Toshkent shahar, Mirobod tumani, Amir Temur ko'chasi, 56 uy" ammo yuqorida aytilganidek atomicity bo'yicha bunday ma'lumot saqlash yaxshi emas. Siz buning o'rniga manzillarni saqlash uchun alohida table yaratasiz va saqlangan ma'lumotni user tabledagi user_id ga foreign key sifatda aloqasini ta'minlaysiz, tamam )
2NF - Second Normal Form
Birinchi normal forma asosan uniqueness va atomicity ga e'tibor qaratsa, Ikkinchi normal forma redundancy and data dependency ni ta'minlashga ximzt qiladi:
- 1NF ni saqlab qolgan holatda ishlashi kerak
- Barcha non-key attributelar faqat primary-keyga dependen bo'lishi kerak.
...
Tasavvur qiling, kutubxona uchun database qildingiz. Sizga keladigan ma'lumotlar asosan kitoblar va avtorlar haqida bo'ladi. Ya'ni bitta avtor ko'p kitob yozishi yoki bitta kitob ko'p avtorlar tomonidan yozilgan bo'lishi mumkin. 2NF da huddi shu muammoni 1NF dan kelib chiqib hal qilasiz. Ya'ni books va authors degan tablelar yaratasiz. har bir kitob uchun book_id bo'lsa, avtor uchun author_id bo'ladi. Bu degani ManyToMany relationshipni endi juda osonroq yo'l bilan yecha olasiz degani. book tableda avtor haqida ma'lumotlarni author tablega, author tableda book haqida ma'lumotlarni olish uchun book tablega foreign key qilasiz holos, tamam.
Post juda cho'zilib ketmasligi uchun qolganlarini o'zingizga sovg'a qilaman, oling va meni eslab yuring (so'kinmasdan)🎁.
@otabekswe
Database implement qilishdan oldin juda puxta va uzoq fikr qilishni tavsiya qilaman. Chunki har bir o'zgartirish yoki yangi qo'shimchalar kiritish sizga qimmatga tushishi, ba'zan esa katta muammolar ham keltirishi mumkin. Xuddi shunday muammolarni keltirib chiquvchi omillardan biri bu ne-normal database xisoblanadi.
Database normalization - ma'lumotlarni tartibli va izchil tarzda orginize qilish uchun ma'lumotlar bazasini dizaynlash tamoyili. Keling misollar bilan ko'rib chiqamiz.
1NF - First Normal Form
Birinchi normal formada ma'lumotlar atomic va unique bo'lishi kerak bo'ladi va uzunroq qilganda ushbu prinsiplarga amal qilishi kerak:
- hech bir cell bittadan ko'p ma'lumot saqlamasligi kerak (atomicity)
- identifikatsiya qilish uchun primary key bo'lishi kerak
- duplicate row yoki column bo'lmasligi kerak
...
Tasavvur qiling, foydalanuvchini "Address"ini saqlamoqchisiz. Siz nazarda tutgan "Address" = "Toshkent shahar, Mirobod tumani, Amir Temur ko'chasi, 56 uy" ammo yuqorida aytilganidek atomicity bo'yicha bunday ma'lumot saqlash yaxshi emas. Siz buning o'rniga manzillarni saqlash uchun alohida table yaratasiz va saqlangan ma'lumotni user tabledagi user_id ga foreign key sifatda aloqasini ta'minlaysiz, tamam )
2NF - Second Normal Form
Birinchi normal forma asosan uniqueness va atomicity ga e'tibor qaratsa, Ikkinchi normal forma redundancy and data dependency ni ta'minlashga ximzt qiladi:
- 1NF ni saqlab qolgan holatda ishlashi kerak
- Barcha non-key attributelar faqat primary-keyga dependen bo'lishi kerak.
...
Tasavvur qiling, kutubxona uchun database qildingiz. Sizga keladigan ma'lumotlar asosan kitoblar va avtorlar haqida bo'ladi. Ya'ni bitta avtor ko'p kitob yozishi yoki bitta kitob ko'p avtorlar tomonidan yozilgan bo'lishi mumkin. 2NF da huddi shu muammoni 1NF dan kelib chiqib hal qilasiz. Ya'ni books va authors degan tablelar yaratasiz. har bir kitob uchun book_id bo'lsa, avtor uchun author_id bo'ladi. Bu degani ManyToMany relationshipni endi juda osonroq yo'l bilan yecha olasiz degani. book tableda avtor haqida ma'lumotlarni author tablega, author tableda book haqida ma'lumotlarni olish uchun book tablega foreign key qilasiz holos, tamam.
Post juda cho'zilib ketmasligi uchun qolganlarini o'zingizga sovg'a qilaman, oling va meni eslab yuring (so'kinmasdan)🎁.
@otabekswe
Oltinga teng loyihalar
Ilm olishni hamma eplaydi. Ammo olingan ilm orqali muammolar yechishni hamma ham eplay olmaydi.
Loyiha qilish menga kompaniya bera olmaydigan tajribalarni bergan. Ayniqsa yangi til va texnologiyani tez o'rganib ketishimga sababchi bo'lgan.
Misol uchun:
gylo - Ushbu loyiha menga Cloudflare bilan interviewni olib bergan loyiha xisoblanadi
Menda bunday qiziq loyihalar ko'p afsuski ular private, rasmiyatchilikda aylanay 😉
Tez orada ba'zilarini public qilish niyatidaman. Ammo hozircha dsalgo.uz ustida ishlayabman )
@otabekswe
Ilm olishni hamma eplaydi. Ammo olingan ilm orqali muammolar yechishni hamma ham eplay olmaydi.
Loyiha qilish menga kompaniya bera olmaydigan tajribalarni bergan. Ayniqsa yangi til va texnologiyani tez o'rganib ketishimga sababchi bo'lgan.
Misol uchun:
gylo - Ushbu loyiha menga Cloudflare bilan interviewni olib bergan loyiha xisoblanadi
Menda bunday qiziq loyihalar ko'p afsuski ular private, rasmiyatchilikda aylanay 😉
Tez orada ba'zilarini public qilish niyatidaman. Ammo hozircha dsalgo.uz ustida ishlayabman )
@otabekswe
Kamchilik nimada?
Bir tanishim bilan project qilish bo'yicha suxbat qilib ba'zi fikrlarni muhokama qildik. Hozir ishga topshiruvchilarni fail bo'lishini asosiy sababi ular qilayotgan yoki qilishni istagan projectlarda ekan.
Kimni qarasa E-Commerce, VideoStream ishlarni qilishadi. Vaxolangki bunda projectlarga misollar internetda qalashib yotibdi va eng qiziq tomoni shundaki soxani chala o'rganib olib, kodlarni ko'chirib, tutorialga ergashib qilgan ishini githubga "kerilib" yuklab qo'yishadida "mana shunday ishlar qilganman" deyishadi.
Kompaniyalarda ko'p shunday projectlar qilinishi to'g'ri ammo bu degani siz ham shunday ish qilishiz kerak degani emas. Loyihalar qachon ko'zga tashlanadi qachonki biror ishni nargisidan (loyihadan) yaxshiroq qila olsa. Yoki ko'pchilik qilmaydigan ishlarni qilishda misol uchun DB yaratib ko'rish, tool yaratish generic ishlatish uchun.
Loyiha yasang, faqat o'zingiz uchun emas barcha uchun xizmat qiluvchi loyiha yasang. Bor loyihani qayta yasang, ammo sizniki qaysidir jihatlama yaxshiroq bo'lsin narigisidan.
@otabekswe
Bir tanishim bilan project qilish bo'yicha suxbat qilib ba'zi fikrlarni muhokama qildik. Hozir ishga topshiruvchilarni fail bo'lishini asosiy sababi ular qilayotgan yoki qilishni istagan projectlarda ekan.
Kimni qarasa E-Commerce, VideoStream ishlarni qilishadi. Vaxolangki bunda projectlarga misollar internetda qalashib yotibdi va eng qiziq tomoni shundaki soxani chala o'rganib olib, kodlarni ko'chirib, tutorialga ergashib qilgan ishini githubga "kerilib" yuklab qo'yishadida "mana shunday ishlar qilganman" deyishadi.
Kompaniyalarda ko'p shunday projectlar qilinishi to'g'ri ammo bu degani siz ham shunday ish qilishiz kerak degani emas. Loyihalar qachon ko'zga tashlanadi qachonki biror ishni nargisidan (loyihadan) yaxshiroq qila olsa. Yoki ko'pchilik qilmaydigan ishlarni qilishda misol uchun DB yaratib ko'rish, tool yaratish generic ishlatish uchun.
Loyiha yasang, faqat o'zingiz uchun emas barcha uchun xizmat qiluvchi loyiha yasang. Bor loyihani qayta yasang, ammo sizniki qaysidir jihatlama yaxshiroq bo'lsin narigisidan.
@otabekswe
Forwarded from Otabek Nurmuhammad
Davis Steve: Falcon 1 raketasi uchun aktuator kerak!
Elon Musk: Necha pul ekan bozorda?
Davis Steve: 120 000$
Elon Musk: Garajning qulfi kabi sodda matox bu, bor o'zing yasa. Tannarxi 5 000$ dan oshmasin!
⏰ 9 oydan so'ng:
Davis Steve: Aktuator yasadim va narxi 3 900$ ga tushdi
.
.
2004 - yil Ilon Mask va SpaceX injeneri Stiv Davis o'rtasidagi suxbat ekan.
Ilon Mask boshqalar oddiy qabul qilib ketgan narsalarni ham so'roqga tutib ko'p texnologiyalarni 0 dan yaratishga sababchi bo'lgan ekan.
@otabeknurmatov_1
Elon Musk: Necha pul ekan bozorda?
Davis Steve: 120 000$
Elon Musk: Garajning qulfi kabi sodda matox bu, bor o'zing yasa. Tannarxi 5 000$ dan oshmasin!
⏰ 9 oydan so'ng:
Davis Steve: Aktuator yasadim va narxi 3 900$ ga tushdi
.
.
2004 - yil Ilon Mask va SpaceX injeneri Stiv Davis o'rtasidagi suxbat ekan.
Ilon Mask boshqalar oddiy qabul qilib ketgan narsalarni ham so'roqga tutib ko'p texnologiyalarni 0 dan yaratishga sababchi bo'lgan ekan.
@otabeknurmatov_1
#TechTalks 2-soni efirda!
Applied Labs kompaniyasida Software Engineer bo'lib ishlagan, Backend va Data Engineering sohasiga aloqador ko'plab foydali postlar yozgan mexmon - Bobosher Musurmonov bilan o'zgacha suxbat.
Ushbu suhbat ochiq, samimiy va boshqalaridan qiziq bo'ladi, ishonavering. Sizga qiziq bo'lgan savollarni esa izohlarda qoldiring.
Vaqt: 21:00 (Toshkent vaqti bilan)
Sana: 26-Noyabr
Mavzu: Trip to Database internals
@otabekswe
Applied Labs kompaniyasida Software Engineer bo'lib ishlagan, Backend va Data Engineering sohasiga aloqador ko'plab foydali postlar yozgan mexmon - Bobosher Musurmonov bilan o'zgacha suxbat.
Ushbu suhbat ochiq, samimiy va boshqalaridan qiziq bo'ladi, ishonavering. Sizga qiziq bo'lgan savollarni esa izohlarda qoldiring.
Vaqt: 21:00 (Toshkent vaqti bilan)
Sana: 26-Noyabr
Mavzu: Trip to Database internals
@otabekswe
Otabek’s I/O
#TechTalks 2-soni efirda! Applied Labs kompaniyasida Software Engineer bo'lib ishlagan, Backend va Data Engineering sohasiga aloqador ko'plab foydali postlar yozgan mexmon - Bobosher Musurmonov bilan o'zgacha suxbat. Ushbu suhbat ochiq, samimiy va boshqalaridan…
Please open Telegram to view this post
VIEW IN TELEGRAM
Data Representation Formats
Ma'lumotlar network orqali bir joydan ikkinchisiga ko'chib o'taveradi. Ammo ularni qandaydir formatda clientga ko'rsatish kerak bo'ladi. Bir paytlar bitlarni encode qilib represent qilish muammo edi hozir esa XML va JSON kabi formatlar mavjud. Hop bu postda aynan shu ikki type haqida gaplashamiz.
XML
Agarda GraphQL orqali biror backend dastur, HTML orqali biror vector rasm qilib ko'rgan bo'lsangiz bu formatni juda yaxshi bilasiz. Siz bilgan SOAP (servicelar o'rtasida aloqa almashish protokoli), RSS, HTML5, SVG va boshqalar technologylarnini misol qilishimiz mumkin. Ularning barchasi XML formatidan foydalanadi. Balkim bilarsiz balkim yo'q
JSON
REST desa hayolingizga birinchi bo'lib json datalarni almashishi kelishi tabiiy. AJAX xisobiga mashxurlikga erishgan, hamda hozirda deyarli barcha loyihalarda aynan ishlatilishini sababi ham shu deb tahmin qilaman.
JSON zo'r XML yomon emas ular nimaligi haqida tushunishingiz kerak. XML juda kuchli va ba'zan JSONdan ham yaxshi ko'rsatkichlar ko'rsata oladi ayniqsa validationlar bilan. JSONda esa bunday featurelar mavjud emas. Ammo JSON readable va more flexible bo'lgan bir paytda XML complex va less flexible xisoblanadi. Ya'ni ikkisida ham pros-conslar mavjud.
Bizda boshqa formatlar ham bor misol uchun YAML (Yet another markup language), TOML va h.k.z. Agar bu postdan ma'no topa olmasangiz o'zim aytib o'taman, bu sizga kelasi postlar nima haqidaligi haqida xabar bermoqda.
Kelasi postlar nima haqidaligini topdingizmi?
@otabekswe
Ma'lumotlar network orqali bir joydan ikkinchisiga ko'chib o'taveradi. Ammo ularni qandaydir formatda clientga ko'rsatish kerak bo'ladi. Bir paytlar bitlarni encode qilib represent qilish muammo edi hozir esa XML va JSON kabi formatlar mavjud. Hop bu postda aynan shu ikki type haqida gaplashamiz.
XML
Agarda GraphQL orqali biror backend dastur, HTML orqali biror vector rasm qilib ko'rgan bo'lsangiz bu formatni juda yaxshi bilasiz. Siz bilgan SOAP (servicelar o'rtasida aloqa almashish protokoli), RSS, HTML5, SVG va boshqalar technologylarnini misol qilishimiz mumkin. Ularning barchasi XML formatidan foydalanadi. Balkim bilarsiz balkim yo'q
docx
degan bu microsoft documentation (word) ham xattoki document in xml format degan ma'noda docx ishlatadi. Ya'ni ma'lumotlarni webda ham xatoliklarsiz ishlashini ta'minlash uchun.JSON
REST desa hayolingizga birinchi bo'lib json datalarni almashishi kelishi tabiiy. AJAX xisobiga mashxurlikga erishgan, hamda hozirda deyarli barcha loyihalarda aynan ishlatilishini sababi ham shu deb tahmin qilaman.
JSON zo'r XML yomon emas ular nimaligi haqida tushunishingiz kerak. XML juda kuchli va ba'zan JSONdan ham yaxshi ko'rsatkichlar ko'rsata oladi ayniqsa validationlar bilan. JSONda esa bunday featurelar mavjud emas. Ammo JSON readable va more flexible bo'lgan bir paytda XML complex va less flexible xisoblanadi. Ya'ni ikkisida ham pros-conslar mavjud.
Bizda boshqa formatlar ham bor misol uchun YAML (Yet another markup language), TOML va h.k.z. Agar bu postdan ma'no topa olmasangiz o'zim aytib o'taman, bu sizga kelasi postlar nima haqidaligi haqida xabar bermoqda.
@otabekswe
Functional Programming
Sodda va oddiy tilda ajoyib blog post yozdim. Bu sizga aniq nimadir o'rgata olishiga ishonaman.
Ushbu postda siz:
- Lambda Calculus bilan tanishasiz
- Ajoyib bir misolga yechim topasiz
- Bilimlaringizni amaliyotda sinay oladigan bo'lasiz.
Postni o'qish
@otabekswe
Sodda va oddiy tilda ajoyib blog post yozdim. Bu sizga aniq nimadir o'rgata olishiga ishonaman.
Ushbu postda siz:
- Lambda Calculus bilan tanishasiz
- Ajoyib bir misolga yechim topasiz
- Bilimlaringizni amaliyotda sinay oladigan bo'lasiz.
Postni o'qish
@otabekswe
Yaxshi bilish muhim
O'zingiz ishlatadigan "tool"larni yaxshi bilish juda ko'plab foyda olib keladi. Ko'plab loyihalar yaratishimda yoki muammolar yechishimda bu bilimlarim juda azq otgan. Masalan gylo.io (tez-kunda) ni yaratishda SSHdan boshlaganman. Birinchi ta'surot "WOW, I built it!" deganim esimda. Hozir Goda yozayabman.
Doim OSni yaxshi tushunishga harakat qiling resurslarni qadrlay boshlaysiz. O’rganayotgan dasturlash tilingizni yaxshi o’rganing, so’zdagi yoki go’yadagi loyihalarni bemalol qura olasiz va frameworklarda qiynalmaysiz. Networking o’rganing ko’plab muammolar ba’zan backend yoki frontendda emas balkim networkda ham yuz berishi mumkin. Database yaxshi o’rganing, ma’lumotlarni samarali va kamchiqim saqlashga harakat qilasiz.
O’rganishni o’rganing, shunda yutasiz!
LinkedIndagi so’ngi postimni o’qing tunneling qilishni o’rganasiz 😎
@otabekswe
O'zingiz ishlatadigan "tool"larni yaxshi bilish juda ko'plab foyda olib keladi. Ko'plab loyihalar yaratishimda yoki muammolar yechishimda bu bilimlarim juda azq otgan. Masalan gylo.io (tez-kunda) ni yaratishda SSHdan boshlaganman. Birinchi ta'surot "WOW, I built it!" deganim esimda. Hozir Goda yozayabman.
Doim OSni yaxshi tushunishga harakat qiling resurslarni qadrlay boshlaysiz. O’rganayotgan dasturlash tilingizni yaxshi o’rganing, so’zdagi yoki go’yadagi loyihalarni bemalol qura olasiz va frameworklarda qiynalmaysiz. Networking o’rganing ko’plab muammolar ba’zan backend yoki frontendda emas balkim networkda ham yuz berishi mumkin. Database yaxshi o’rganing, ma’lumotlarni samarali va kamchiqim saqlashga harakat qilasiz.
O’rganishni o’rganing, shunda yutasiz!
@otabekswe