Posts filter








Forward from: Dr. Algorithm
Juniorlarda ko‘p uchraydigan xatolar

[2-qism] (boshi avvalgi postda)

4. Hujjatlar havola qilinish uchun mavjud.

Yangi dasturlarga kirganlar yoki junior dasturchilarda ajoyib fikr bor. Ular hujjatlarga havola qilish yoki Googledan narsa qidirishni zaiflik deb bilishadi.

Bizning sohada izlamasdan, yoki bajargan ishingizda biror havola (link) qo‘ymasdan ishlab bo‘ladimi? Bugun yozgan kodingizni ertaga ko‘rsangiz, asabiy bo‘lib o‘tirasiz-ku axir.

Hujjatlarga havolar qiling. Ertaga hamkasbingiz bilan ishlaganda, har yarim soatda oldiga borib, "bu qanaqa edi?", "bunisini nima qilgan edik, eslatvor" deb so‘roqqa tutishgan ko‘ra, bir marta ko‘rsatib berilganida izoh yozib qo‘yish, topgan maqolangiz havolasini ko‘rsatish vaqt tejaydi, ish unumli bo‘ladi.

Tavsiya: Googledan narsa izlashga uyalmang. Foydali manbalarni saqlab qo‘ying. Kodingiz yonida (ReadME) foydalangan havolalar ro‘yxatini yig‘ib yursangiz bo‘ladi.



5. Ishlatadigan ish qurolini bilmaslik.

Barcha dasturchilar, shu jumladan junior dasturchilar, kod yozish uchun IDE (ish quroli)ni ishlatishadi. Ammo uni yaxshi bilmaslik, yoki barcha imkoniyatlaridan to‘g‘ri foydalanmaslik ish unumdorligiga salbiy ta’sir qiladi.

Ish qurolining ba’zi imkoniyatlarini ko‘rib chiqsak:

Debugging (yurib chiqish):
* kod qatorlarida harakatlanish, o‘zgaruvchilar qiymatlarini tekshirish, shartli va shartsiz to‘xtash tugunlarini yasash, o‘zgaruvchilarni kuzatish va stack zanjirini ko‘rish.
* Console.log ni ishlatish hech qachon yetarli emas.

Profiling (resurs monitoringi)
* kompyuter resurslarining asosiy tushunchalaridan xabardor bo‘lish
CPU ko‘p ishlatadigan kodni topish va tuzatish
Xotiradan ko‘p foydalanishni oldini olish (memory leak)

Qurish (Build) jarayoni
* turli build sozlamalarini ishlata olish (Debug, Release versiyalar)
* Turli qurilmalar uchun yasash (web, desktop, mobile)

Sinov ish qurollari (Testing)
* Unit test - qanday qilib ishlatish va hisobot olish
* kodning qaysi qismlari sinovdan o‘tganini aniqlay olish (code coverage)

Kod uslubi (code style)
* Formatting - IDE larda tayyor formatlash imkoniyati bor (andozaga solish), shuni doim ishlatib turish
* korxona kod uslubi (corporate code style) ga moslab andozaga solish (format). Shunga git formatlash bilan to‘lib qolmaydi.

Tavsiya: Ishlatadigan ish qurolingizni yaxshilab o‘rganing. Har hafta 2-3 ta yangi imkoniyatini o‘rganish orqali 1 yilda to‘liq o‘rganib olasiz. Boshqa dasturchilardan ular ishlatadigan ish qurollarini so‘rang.



Bu kabi hayotda ko‘p uchraydigan kamchiliklar doim bo‘ladi. 20-30 yil oldin ham bor edi, hali kelajakda ham ancha vaqt davom etsa kerak. Chunki hammamiz insonmiz.

Ammo, savol berish, xatolar ustida ishlash, yangilikka qiziqish bu kamchiliklar oldimi oladi. Shaxsiy rivojlanishimizga yordam beradi.

Shunday ekan, uyalmay izlaning.



Izoh:
Repo - repository. Version control’da saqlanadigan joy nomi. Siz yozgan kodlaringiz yashaydigan shahar.
Force-push - gitga ma’lumot yuklash vaqtida xatolik yuz berganida, barcha boshqalarning o‘zgarishlarini inkor qilib, sizning kodni gitga yuklash.
SVN - Subversion. git chiqishidan avvalroq muomalada bo‘lgan version control dasturi.
IDE - Integrated Development Environment, kod yozish muhiti.

16.01.2025 London
@DrAlgorithm


Forward from: Dr. Algorithm
Juniorlarda ko‘p uchraydigan xatolar

[1-qism]

Kecha yangi kitob o‘qishni boshlagan edim, muallifi podcast yuritar ekan. Eshitib ko‘rish uchun kirdim. Birinchi eshitib ko‘rgan mavzuyim Juniorlar haqida edi.

Juniorlarda ko‘p uchraydigan xatolar

Bilamiz-ki, ko‘p savollar Juniorlar orasida chiqadi. Middle va seniorlar savollari ancha kam va kam takrorlanadi. Bu yerda junior dasturchilarda uchraydigan xatolarning ba’zilarini keltirib o‘taman.

1. Bir vaqtda ko‘p narsa o‘rganish.

Bir vaqtda bir necha katta texnologiyani o‘rganishni boshlashadi. Python, JavaScript yoki MongoDB kabi texnologiyalarni kimdir ularga kerak degani uchun o‘rganishni boshlashadi. Bu esa salbiy natijalarga olib keladi. Biror tilni yaxshi tushunmaslik, kerak bo‘lmasa ham o‘rganishga vaqt sarflash yoki imkoniyatlarni aralashtirib tushunish va ertaga kerak bo‘lganida qo‘llay olmaslik kabi. Eng yomoni biror loyihani faqat shu aytilgan texnologiyada qilish mumkin deb o‘ylash.

Tavsiya: Bir vaqtda faqat bitta til yoki texnologiyani mukammal o‘rganishga harakat qiling.


Vaqti kelib keyin boshqasiga o‘tib olaverasiz.


2. Version contol’ni tushunmaslik.

Version contol juda ajoyib narsa. U bilan tarixga qaytish mumkin, dasturning turli variantlarini sinab ko‘rish mumkin, bir biriga xalal bermay ishlash mumkin. Gitdan yaxshisi bo‘lmasa kerak, lekin man SVNni yaxshi ko‘rar edim. Agar kimdir hali ham file va zip bilan versiya saqlab yurgan bo‘lsa, uzr siz hali junior darajasiga yaqin ham kelmabsiz.

Bu mavzuda nafaqat juniorlar, balki katta dasturchilar ham xato qilib turishadi. Vaziyatlar ham turlicha. Ba’zilarini keltirib o‘taman.

* Commit qilishni unutish
* Keraksiz filelarni repoga yuklash. Masalan, IDE ishlatadigan sozlama (config)lar, muhit (env) fayllari, vaqtincha va ishga tushuvchi fayllar (build, .class, .so va boshqalar)
* Begona shoxga (branch) kodni yuklash.
* Force-push buyrug‘ini ishlatish 🤯
* Keng tarqalgani, Commit qilib, Push qilmaslik. (Yuklashga tayyorlab, yubormaslik)

Bularni qilmaslik uchun juda ko‘p usullar va qoliplar mavjud. (GitFlow masalan).

Tavsiya: Gitdan foydalanish qoidalari va korxonalar ishlatadigan usullar bilan tanishib qo‘ying. Agar siz ishlayotgan joyda joriy qilinmagan bo‘lsa, kiritishga harakat qiling.



3. Ma’lumotlar shakllarini bilmaslik

Ma’lumotlar bilan ishlaganda ko‘pchilik yosh dasturchilar ma’lumotning xotiradagi shaklini biladi. Integer, String va Array kabi. Hayotda esa ko‘proq CSV, JSon va XML lar bilan ishlashi kerak bo‘ladi.

Ko‘rinishidan juda sodda, ammo bilmaganlar uchun vaqt oladigan narsalar. Bu shakllar mohiyatini yaxshi bilmagan dasturchi ishi tushganida parser (o‘qigich) yasashga harakat qiladi. Vaholanki buning har biri uchun minglab parserlar allaqachon internetda bor.

Bu boradagi ba’zi maslahatlar:

CSV
* Barcha matn qiymatlarni qo‘shtirnoqqa oling.
* UTF-8 kodlashdan foydalaning.

JSON
* JSON va JavaScriptni farqini bilib oling.
* JSON to‘g‘ri bo‘lish tablarini o‘rganing.
* JSON ma’lumotingizni json schema yordamida tekshirishni biling.

XML
* Atributlar va elementlarni tushib oling.
* HTML bilan farqini biling.
* XQuery va XPath yordamida so‘rov yozishni o‘rganing.
* Case sensitive (bosh va kichik harflar bir xil hisoblanishi)ni hisobga oling.
* CData nima ekanini va mohiyatini tushunib oling.

Tavsiya: Fayllar bilan ishlaganda avval u fayl kengaytmasiga mos dasturlar bor ekanini qarab chiqing. Tayyor kutubxonalarni o‘rganib, ishlatib ko‘ring.


davomi bor...

Bitta xabarga sizmadi. Davomini keyingi postda.

16.01.2025 London
@DrAlgorithm


Forward from: Botir Ziyatov
DigitalOcean’dan 10 ta bepul VPS olish – 60 kunga

DigitalOcean — AQShda joylashgan, arzon va qulay bulutli server xizmatlarini taklif qiladigan kompaniya.
Agar siz ushbu havola orqali ro‘yxatdan o‘tsangiz, 200 dollar bepul balans olasiz.

Bu balansni VPS serverlar va boshqa xizmatlar sotib olishga ishlatishingiz mumkin.
Bepul balans 60 kun davomida amal qiladi.

E’tibor berishingiz kerak bo‘lgan narsa:
- Karta bog‘lash: Kartani bog‘laganingizda, hisobingizdan 1 dollar vaqtinchalik olinadi, keyin esa qaytariladi.

@botirziyatov




Forward from: BM SECURITY Group 🇺🇿
☝️Odatga aylangan post, yangi yil boshida foydalanuvchilarimiz qilishi kerak bo'lgan ishlarga to`xtalamiz

├ Wifi , ijtimoiy tarmoqlar , xizmat saytlari , aqilli qurilmalar , telefon parollarini yangilang

├ Pochta va Adminlik huquqingiz bor resurslarga yangi parol o'rnating va 2FA dan foydalaning

├ O'rnatilgan AT ni yangisiga almashtiring (Update emas) qaytadan o'rnating va Hardening (keraksiz servis va sozlamalarni cheklash) sozlovlarini o'rnating

├ Crack yoki Patch dasturlardan foydalanmang , ochiq kodli va bepul turli analog dasturlardan foydalaning

├ Torrent , Online game , Online dasturlardan imkon qadar cheklaning

├ Brovzeringiz uchun quyidagi qo'shimcha plaginlarni o'rnating :
Adblock , Yutub adblock , DTG , PopupB , HTTPS , UserA , PB , SF

├ Telefon qurilmangizni (Android) quyidagi post bo'yicha tekshiring

├ Tizimdagi (Windows) AV (antivirus) lar bazasini doimiy yangilang (Defender AV yetarli)🔥 Yangi yil boshida foydalanuvchilarimiz qilishi kerak bo'lgan ishlar !

├ Wifi , ijtimoiy tarmoqlar , xizmat saytlari , aqilli qurilmalar , telefon parollarini yangilang

├ Pochta va Adminlik huquqingiz bor resurslarga yangi parol o'rnating va 2FA dan foydalaning

├ O'rnatilgan AT ni yangisiga almashtiring (Update emas) qaytadan o'rnating va Hardening (keraksiz servis va sozlamalarni cheklash) sozlovlarini o'rnating

├ Crack yoki Patch dasturlardan foydalanmang , ochiq kodli va bepul turli analog dasturlardan foydalaning

├ Torrent , Online game , Online dasturlardan imkon qadar cheklaning

├ Brovzeringiz uchun quyidagi qo'shimcha plaginlarni o'rnating :
Adblock , Yutub adblock , DTG , PopupB , HTTPS , UserA , PB , SF

├ Telefon qurilmangizni (Android) quyidagi post bo'yicha tekshiring

├ Tizimdagi (Windows) AV (antivirus) lar bazasini doimiy yangilang (Defender AV yetarli)




Forward from: IT suhbat
#Collections

Yuqoridagi rasmda Javadagi deyarli har bir ma'lumot tuzilmasini qaysi vaziyatda tanlashlik uchun diagramma ishlab chiqilgan va juda tushunarli.

Manba: Linkedin.com dan olindi.

@it_suhbat


Video is unavailable for watching
Show in Telegram
#KULGU
Kodni teskari yozgan paytim 😂




𝗪𝗵𝗲𝗻 𝘁𝗼 𝘀𝗲𝗹𝗲𝗰𝘁 𝗗𝗲𝘀𝗶𝗴𝗻 𝗣𝗮𝘁𝘁𝗲𝗿𝗻𝐬?

Choosing the correct design pattern in software engineering is critical to practical problem-solving.
This post will try to simplify the process, helping you decide between patterns based on specific needs.
To select a pattern, we must first go through the problem identification. If the problem is related to:
🔸 Object Creation? → Creational Patterns
🔸 Object Assembly? → Structural Patterns
🔸 Object Interactions? → Behavioral Patterns
1. Singleton: Ensures only one instance exists.
2. Factory Method: Delegates object instantiation to subclasses.
3. Abstract Factory: Creates related object families without specifying their concrete classes.
4. Prototype: Clones objects for a prototypical instance.
5. Builder: Constructs complex objects step by step.
6. Adapter: Bridges incompatible interfaces.
7. Bridge: Separates abstraction from implementation.
8. Composite: Treats single and composite objects uniformly.
9. Decorator: Adds behaviors to objects dynamically.
10. Facade: Simplifies complex system interfaces.
11. Flyweight: Shares objects to reduce memory.
12. Proxy: Controls object access.
13. Observer: Notifies changes to multiple objects.
14. Strategy: Encapsulates interchangeable algorithms.
15. Command: Encapsulates a request as an object.
16. State: Changes object behavior with internal state.
17. Visitor: Adds operations to object structures without modifying them.
18. Memento: Captures and restores object states externally.
19. Iterator: Sequentially accesses elements of a collection.
20. Mediator: Centralizes complex communications.
21. Chain of Responsibility: Passes requests along a chain of handlers.
22. Template Method: Defines the skeleton of an algorithm.










☄️“15 mln kuzatuvchisi bor YouTube kanali egasining telefonini buzib, kanal ma’murligini qo‘lga kiritishdi – shartli ravishda, albatta”
Yuqoridagi ma’lumotlar Dr. Algorithm Telegram kanalida e’lon qilingach turli muhokamalarga sabab bo‘ldi.
Asosiy ofisi Londonda joylashgan Moneff kompaniyasi IT-menejeri Saidolim Jo‘rayev yozyapti:
“Apple asoschilari avval telefon tizimini buzishgani (hack) qilishganini bilarmidingiz?
• Rim Papasiga tekinga telefon qilib, ertalab uyg‘otishganinichi?
• Dubay shayxining qizi Shayx Latifani telefon orqali ummon markazidan topishgani, GPS‘siz;
• SMS orqali keladigan bir martalik kalit so‘z – OTP (One Time Password)larni ham bilish mumkinligi;
• OTP orqali Telegram‘ga kirishga 15 soniya yetarli ekani;
• Python‘da yozilgan kod orqali sizga kelayotgan qo‘ng‘iroqlarni boshqa “qabul qilishi” mumkinligi;
• GPS‘siz qachon va qayerga borganingizni bilish qiyin emamligi;
Xullas, 15 million obunachisi bor YouTube kanalini buzib kirishdi – xavfsizlik tobora katta ahamiyat kasb etib bormoqda ...


🌐 Davomini o‘qish👉 https://us.uz/uz/news/post-199
📱 Suhbatni tomosha qilish👉 https://youtu.be/F5lt7riGD3c


#Savol : Javada casting nima?

#Javob : Javada casting bitta ma'lumot turini boshqasiga o'zgartirish jarayonidir. Kengaytiruvchi (widening) va toraytiruvchi (narrowing) casting mavjud. Kengaytiruvchi casting avtomatik ravishda amalga oshiriladi, toraytiruvchi casting esa qo'lda bajariladi.

Kichik turdan kattaroq turga avtomatik casting:

byte → short → int → long → float → double

Katta turdan kichik turga casting quyidagi ko'rinishda bo'ladi:

double → float → long → int → short → byte



20 last posts shown.