Forwarded from Bobosher Musurmonov
Slug bu asosan, url tarkibida ishlatishga qulay field.
Masalan, bitta postga id orqali link bersangiz,
Slug buni ancha yaxshi ko'rinishga keltiradi: postdan biror bir qismi(masalan, title)ni olishingiz mumkin. Masalan,
Birinchidan, url tushunarliroq bo'lsa, ikkinchidan, SEOga osonroq bo'ladi.
Masalan, bitta postga id orqali link bersangiz,
/posts/id=12/ kabi bo'ladi. Slug buni ancha yaxshi ko'rinishga keltiradi: postdan biror bir qismi(masalan, title)ni olishingiz mumkin. Masalan,
/posts/what-is-django/ kabi.Birinchidan, url tushunarliroq bo'lsa, ikkinchidan, SEOga osonroq bo'ladi.
Forwarded from Bobosher Musurmonov
while o'zidan keyin shart va o'z blokida kod oladi:
kabi.
Shart rost qiymat qabul qilsa, sikl aylanaveradi. Yolg'on qiymat qabul qilgan zahoti to'xtaydi.
Masalan,
kodning natijasi
1
2
3
Bo'lib chiqadi. Sababi, har safar siklda son chiqarilib, uning qiymatiga 1 qo'shilayapti.
Bu narsa 1, 2 va 3 uchun bo'ladi.
undan keyin son = 4 bo'ladi.
Unda shart bajarilmagani uchun sikl to'xtaydi.
while shart:
kod
kod
...kabi.
Shart rost qiymat qabul qilsa, sikl aylanaveradi. Yolg'on qiymat qabul qilgan zahoti to'xtaydi.
Masalan,
son = 1
while son <= 3:
print(son)
son += 1kodning natijasi
1
2
3
Bo'lib chiqadi. Sababi, har safar siklda son chiqarilib, uning qiymatiga 1 qo'shilayapti.
Bu narsa 1, 2 va 3 uchun bo'ladi.
undan keyin son = 4 bo'ladi.
Unda shart bajarilmagani uchun sikl to'xtaydi.
Forwarded from Bobosher Musurmonov
Sertifikatlarga qiziqmaslikni maslahat bergan bo'lardim.
Muhimi o'sha sertifikat sizga nima uchun berilgani.
O'tgan yili menga ham OMUC sertifikati kerak bo'lib qolib(contestga shusiz qabul qilishmas ekan) fullstack kursini olgandim.
Rostini aytsam, 1 soat ham vaqt ketmadi.
Ertasiga qiziqib kurslariga kirib ko'rdim. Darslari unchalik sifatli emas va butun boshli loyiha ham "Ooooo" deydigan emas. Shunchaki, Udacitydagi kurslarni tagiga subtitr qo'yib, qo'shimchalar kiritishgan.
Bu bilan birovning mehnatiga hurmatsizlik qilib, ko'r-ko'rona yomonlash niyatim yo'q. Shunchaki yangi boshlovchilar vaqtini yo'qotmasin deyapman.
Yaxshi dasturchi bo'lmoqchimisiz?
INGLIZ TILINI ALBATTA O'RGANISHINGIZ KERAK. Bugun bo'lmasa ertaga, baribir shunga to'g'ri keladi.
O'zbekcha darslar orqali o'rganishingiz mumkin, ammo ishlashni boshlagach, ular ortiq sizga foydali bo'lmaydi.
Endi documentation, communitylar bilan ishlaysiz va ular 90% ingliz tilida.
O'zbekcha dars izlashga ketadigan vaqtingizni ingliz tilini o'rganishga sarflasangiz, kelajakda o'zingizga foyda.
Muhimi o'sha sertifikat sizga nima uchun berilgani.
O'tgan yili menga ham OMUC sertifikati kerak bo'lib qolib(contestga shusiz qabul qilishmas ekan) fullstack kursini olgandim.
Rostini aytsam, 1 soat ham vaqt ketmadi.
Ertasiga qiziqib kurslariga kirib ko'rdim. Darslari unchalik sifatli emas va butun boshli loyiha ham "Ooooo" deydigan emas. Shunchaki, Udacitydagi kurslarni tagiga subtitr qo'yib, qo'shimchalar kiritishgan.
Bu bilan birovning mehnatiga hurmatsizlik qilib, ko'r-ko'rona yomonlash niyatim yo'q. Shunchaki yangi boshlovchilar vaqtini yo'qotmasin deyapman.
Yaxshi dasturchi bo'lmoqchimisiz?
INGLIZ TILINI ALBATTA O'RGANISHINGIZ KERAK. Bugun bo'lmasa ertaga, baribir shunga to'g'ri keladi.
O'zbekcha darslar orqali o'rganishingiz mumkin, ammo ishlashni boshlagach, ular ortiq sizga foydali bo'lmaydi.
Endi documentation, communitylar bilan ishlaysiz va ular 90% ingliz tilida.
O'zbekcha dars izlashga ketadigan vaqtingizni ingliz tilini o'rganishga sarflasangiz, kelajakda o'zingizga foyda.
👍5
Forwarded from Bobosher Musurmonov
@python_coderlast
Masalan, kartoshka to'g'ramoqchisiz.
Buni hatto yapon qilichi bilan ham to'g'rash mumkin, ammo aynan oshxona pichog'ida qilishadi.
Qilish mumkin bilan qilishga mo'ljallanganning orasida farq katta.
Desktop yoki game developmentni o'rganmoqchimisiz?
Pythonda ham qilish mumkin, ammo python ular uchun mo'ljallanmagan. Ularning o'zini "oshxona pichog'i" bor.
Masalan, kartoshka to'g'ramoqchisiz.
Buni hatto yapon qilichi bilan ham to'g'rash mumkin, ammo aynan oshxona pichog'ida qilishadi.
Qilish mumkin bilan qilishga mo'ljallanganning orasida farq katta.
Desktop yoki game developmentni o'rganmoqchimisiz?
Pythonda ham qilish mumkin, ammo python ular uchun mo'ljallanmagan. Ularning o'zini "oshxona pichog'i" bor.
👍3
Forwarded from Bobosher Musurmonov
Developmentda kuchli ekaningizdan xabarim bor, hurmat qilaman. Ammo competitive programmingni bilmasligingiz ko'rinib turibdi.
Nimanidir qayerda ishlashini bilmasangiz, u foydasiz degani emas. Shunchaki siz uni vazifasini bilmaysiz.
Siz keraksiz degan narsalarga kelsak, unutmang, siz faqat oddiy userdan 1 qadam tepadasiz. Siz foydalanadigan texnologiyalar(Telegram, Python,...) ham kimlardir tomonidan ishlabb chiqilgan. Va aynan o'sha "keraksiz" narsalar yordamida. O'sha texnologiyalar sharofati bilan siz aytgan "keraksiz" narsalarsiz ham dasturlay olasiz.
Ammo CS aynan ular ustiga qurilgan.
P.S guruhni maqsadi savollarni "yaxshi-yomon"ga ajratish emas, bilsangiz, javob berish.
Nimanidir qayerda ishlashini bilmasangiz, u foydasiz degani emas. Shunchaki siz uni vazifasini bilmaysiz.
Siz keraksiz degan narsalarga kelsak, unutmang, siz faqat oddiy userdan 1 qadam tepadasiz. Siz foydalanadigan texnologiyalar(Telegram, Python,...) ham kimlardir tomonidan ishlabb chiqilgan. Va aynan o'sha "keraksiz" narsalar yordamida. O'sha texnologiyalar sharofati bilan siz aytgan "keraksiz" narsalarsiz ham dasturlay olasiz.
Ammo CS aynan ular ustiga qurilgan.
P.S guruhni maqsadi savollarni "yaxshi-yomon"ga ajratish emas, bilsangiz, javob berish.
Forwarded from Bobosher Musurmonov
Set va frozenset xuddi list va tuple kabi.
Oddiy setdan yagona farqi, frozensetda elementlar immutable, ya'ni o'zgarmas.
Bu orqali ko'plab joylarda qo'llash mumkin, masalan, dictionaryda key kabi ishlatiah mumkin (Xuddi tuple elementlarini ishlata olasiz, list elementlarini esa yo'q kabi).
Oddiy setdan yagona farqi, frozensetda elementlar immutable, ya'ni o'zgarmas.
Bu orqali ko'plab joylarda qo'llash mumkin, masalan, dictionaryda key kabi ishlatiah mumkin (Xuddi tuple elementlarini ishlata olasiz, list elementlarini esa yo'q kabi).
Forwarded from Bobosher Musurmonov
Avval to'la algoritmni tuzib oling:
n ta sahifali hujjat uchun(misol uchun, n=100):
1-listda albatta n (bizda 100) va 1- sahifalar bo'ladi.
2-listdan boshlab har bir listda katta sahifa raqami 2 ga kamayib, kichigi 2 ga oshaveradi, yig'indisi o'zgarmaydi.
(n-2) va 3. Endi shuni rekursiya orqali yana keyingi safar (n-4) va 5, narigi safar (n-6) va 7, ... (n/2+2) va (n/2-1) gacha davom etadi.
Ikkinchi taraf esa qolganlari.
Algoritmni to'la tushunish uchun 2 ta narsani bilishingiz muhim:
1. Jarayon rekursiv. Ya'ni deylik, 100 sahifali hujjat uchun tuzilgan ikki guruh ketma-ketlikning har birining birinchi juftligini olib tashlasak, (n-4) sahifali xujjat uchun har bir sahifaga +2 qo'shilgan ketma-ketlik hosil bo'ladi(sababi, endi sahifalash 1 dan emas, 3 dan boshlanayapti). Bu xuddi har safar kitobning tashqi 1 juft varag'ini yirtib tashlashga o'xshaydi.
2. n sahifali hujjatda ixtiyoriy sahifalar juftligining yig'indisi n+1 ga teng.
2+. Tepani qayta o'qib ko'ring.
n ta sahifali hujjat uchun(misol uchun, n=100):
1-listda albatta n (bizda 100) va 1- sahifalar bo'ladi.
2-listdan boshlab har bir listda katta sahifa raqami 2 ga kamayib, kichigi 2 ga oshaveradi, yig'indisi o'zgarmaydi.
(n-2) va 3. Endi shuni rekursiya orqali yana keyingi safar (n-4) va 5, narigi safar (n-6) va 7, ... (n/2+2) va (n/2-1) gacha davom etadi.
Ikkinchi taraf esa qolganlari.
Algoritmni to'la tushunish uchun 2 ta narsani bilishingiz muhim:
1. Jarayon rekursiv. Ya'ni deylik, 100 sahifali hujjat uchun tuzilgan ikki guruh ketma-ketlikning har birining birinchi juftligini olib tashlasak, (n-4) sahifali xujjat uchun har bir sahifaga +2 qo'shilgan ketma-ketlik hosil bo'ladi(sababi, endi sahifalash 1 dan emas, 3 dan boshlanayapti). Bu xuddi har safar kitobning tashqi 1 juft varag'ini yirtib tashlashga o'xshaydi.
2. n sahifali hujjatda ixtiyoriy sahifalar juftligining yig'indisi n+1 ga teng.
2+. Tepani qayta o'qib ko'ring.
Forwarded from Bobosher Musurmonov
:= (walrus operator) python 3.8 dan boshlab qo'shilgan.Oddiy
= dan asosiy afzal jihati, biror expression(masalan, list comprehension, loop)ni evalute qilish jarayonida yangi variable yaratib ketish imkoniyatini beradi.Forwarded from Bobosher Musurmonov
Yana bir juda oddiy misol, kiritilgan qiymat va uning kvadratini print qilish.
Forwarded from Bobosher Musurmonov
#py
# odatiy
son = int(input())
print(son, son ** 2)
# walrus
print(son := int(input()), son **2)👍2
Forwarded from Bobosher Musurmonov
Kodlarni ixchamlash uchun base funksiyasi yozib olingani developer uchun yaxshi. Lekin, har bir query uchun bir marta connection o'rnatib, yana yopish applicationni sezilarli darajada sekinlashtiradi.
Yaxshisi, bir marta connection o'rnatib, app to'xtab qolguncha shuning o'zidan foydalanish.
Yaxshisi, bir marta connection o'rnatib, app to'xtab qolguncha shuning o'zidan foydalanish.
Forwarded from Bobosher Musurmonov
Yo'q, global scopega o'tkazish ham yaxshi fikr emas. Unda ma'lumot butun dastur bo'ylab tarqab ketadi.
Bu alohida mavzu.
Zarur bo'lganda men alohida faylda databasega ulanib olaman. Keyin kerakli joyda o'sha fayldan connection va cursorni import qilib ishlataveraman.
Bu alohida mavzu.
Zarur bo'lganda men alohida faylda databasega ulanib olaman. Keyin kerakli joyda o'sha fayldan connection va cursorni import qilib ishlataveraman.
Forwarded from Bobosher Musurmonov
Yo'q, bu sekin ishlaydi.
Tasavvur qiling bir kishi bilan suhbat qilayapsiz. Buni bunday yetkazish mumkin:
Salom, men Falonchi.
Savol 1,
Savol 2,
....
Savol 10,
Rahmat, sog' bo'ling.
----------------------------------------
Siz aytgan usulda:
Salom, men falonchi.
Savol 1.
Rahmat, sog' bo'ling.
Salom men falonchi
Savol 2
Rahmat, sog' bo'ling.
...
Tushundingiz deb o'ylayman.
Tasavvur qiling bir kishi bilan suhbat qilayapsiz. Buni bunday yetkazish mumkin:
Salom, men Falonchi.
Savol 1,
Savol 2,
....
Savol 10,
Rahmat, sog' bo'ling.
----------------------------------------
Siz aytgan usulda:
Salom, men falonchi.
Savol 1.
Rahmat, sog' bo'ling.
Salom men falonchi
Savol 2
Rahmat, sog' bo'ling.
...
Tushundingiz deb o'ylayman.
Forwarded from Bobosher Musurmonov
Agar rps katta bo'lmasa, ikkala usul ham deyarli bir xil ishlaydi.
Va har bitta queryga alohida connection qilish nisbatan xavfsizroq, sababi agar query xatolik chiqarsa try except bloki bilan uni bartaraf qilib boshqa connection ochib ishlataverish mumkin.
Bitta connection bilan ishlaganda agar birorta query "tiqilib" qolsa ko'proq muammo keltirib chiqarishi mumkin.
Va har bitta queryga alohida connection qilish nisbatan xavfsizroq, sababi agar query xatolik chiqarsa try except bloki bilan uni bartaraf qilib boshqa connection ochib ishlataverish mumkin.
Bitta connection bilan ishlaganda agar birorta query "tiqilib" qolsa ko'proq muammo keltirib chiqarishi mumkin.
Forwarded from Bobosher Musurmonov
Database va table nomlarini qolganlarga ko'rsatish yaxshi odat emas :-)
P.S. Queryda f string ishlatish ham. Har qanday holatda.
P.S. Queryda f string ishlatish ham. Har qanday holatda.
👍2
Forwarded from Хусниддин
ha fikringiz, gapingiz to'g'ri ammo botlardan botning serveri haqidagi(ip, filelar) ma'lumotlarni ololmaysizku! Iloji yoq buni!(agar dasturchi xato qilib qoymasa)
Forwarded from Bobosher Musurmonov
Botlar haqida ko'p narsa bilmayman.
Balki, haqdirsiz. Ammo securityni o'ylab qo'yish zarar qilmaydi.
Axir, insonlarning shaxsiy ma'lumotlari bilan ishlayapsiz.
Texnologiya esa har kuni rivojlanadi.
Qachondir "ilojsiz" bo'lgan narsalar navbat bilan "odatiy"ga aylanayapti.
Balki, haqdirsiz. Ammo securityni o'ylab qo'yish zarar qilmaydi.
Axir, insonlarning shaxsiy ma'lumotlari bilan ishlayapsiz.
Texnologiya esa har kuni rivojlanadi.
Qachondir "ilojsiz" bo'lgan narsalar navbat bilan "odatiy"ga aylanayapti.
Forwarded from Bobosher Musurmonov
Masalan, PostgreSQL bilan MySQLni Django bilan Flaskka o'xshatish mumkin.
PostgreSQL kuchli, konfiguratsiya qilish birmuncha qiyin, imkoniyatlari keng, (va shuning hisobiga) og'ir va nisbatan sekin.
MySQL esa imkoniyatlari ozgina kamroq, sozlash oson, stabil, tezkor va nisbatan yengilroq.
NoSQLni ko'pchiligini NodeJSga o'xshataman. Tezkor, lekin bosh og'rig'i ko'p.
SQLite3 boshqa masala. Imkoniyatlari juda cheklangan. Lekin sozlashdan osoni yo'q :-)
PostgreSQL kuchli, konfiguratsiya qilish birmuncha qiyin, imkoniyatlari keng, (va shuning hisobiga) og'ir va nisbatan sekin.
MySQL esa imkoniyatlari ozgina kamroq, sozlash oson, stabil, tezkor va nisbatan yengilroq.
NoSQLni ko'pchiligini NodeJSga o'xshataman. Tezkor, lekin bosh og'rig'i ko'p.
SQLite3 boshqa masala. Imkoniyatlari juda cheklangan. Lekin sozlashdan osoni yo'q :-)
Forwarded from Bobosher Musurmonov
Bu nisbatan xavfsiz usul bo'lsada, ancha sekin ishlaydi. Sababi, har bitta query uchun alohida tcp connection o'rnatish kerak. TCP connectionni ochish uchun 3 bosqichli tcp handshake degan jarayon bo'ladi. Bu ancha vaqt oladi. Natijada bot ishlashini ancha sekinlashtiradi, ayniqsa kattaroq botlarda.