Engineering Notes
2.46K subscribers
137 photos
5 files
208 links
Kanalda asosan backend engineeringga oid postlar yozib boriladi.

Ba'zi postlarda xatoliklar bor.
Postlar foydali bo’lgan bo’lsa adminni duo qilib qo’ying. Rahmat.

Contact: @Bobosher_Musurmonov
LinkedIn: https://www.linkedin.com/in/bobosher-musurmonov
Download Telegram
Yana bir savol. Graph theoryga oid.

Berilgan n ta komputerni bir-biriga qandaydir konfiguratsiyada ulab simli tarmoq hosil qilish kerak.
— Sim bidirectional, ya'ni ikkala tomonga ham ma'lumot jo'natish mumkin.
— A komputerdan B gacha masofa A dan B gacha bo'lgan eng qisqa path uzunligi.

Shartlar:
— Ixtiyoriy ikki komputer orasida ma'lumot almashish mumkin bo'lishi kerak.
— Tarmoq effektiv bo'lishi kerak. Effektivlik bali (tarmoqdagi jami simlar soni) * (ikki komputer orasidagi maksimal masofa) orqali hisoblanadi. Natija qanchalik kichkina bo'lsa tarmoq shuncha effektiv degani.

Eng oddiy yechim: hamma komputerni bir-biri bilan ulash. Jami simlar soni O(n^2), maksimal masofa O(1). Effektivlik: O(n^2).

Yana bitta yechim: komputerlarni halqa shaklida ulash. Simlar soni O(n), maksimal masofa O(n). Effektivlik: O(n^2).

Effektivlik bali O(n^2) dan kichikroq bo'lgan tarmoq dizaynini ishlab chiqa olasizmi?

Formal: Shunday G = (V, E), |V| = n bo'lgan graph topingki, |E| * max(dist(A, B: A, B in V)) < O(n^2) bo'lsin.
👍4👎2
👎17👍2
Engineering Notes
Photo
What is the result of the code above?
Anonymous Quiz
20%
True True
17%
True False
39%
True NotImplemented
24%
Error
👎15🍾4👍2
👍3👎1
Engineering Notes
Photo
What is the result of the code above?
Anonymous Quiz
30%
True
55%
False
15%
SyntaxError
👍1👎1
😁11👍2👎1
Engineering Notes
Photo
Haqiqat achchiq bo'ladi deb shuni aytishsa kerak 😂
👎11😁3👍2
Mabodo kimdir Abstract Algebra bo'yicha kurs izlayotgan bo'lsa Harvard University tomonidan 2003-yilda yozib olingan mana bu materiallarni tavsiya qilaman (o'zim hozir shu kursdan foydalanayapman):
https://www.youtube.com/playlist?list=PLelIK3uylPMGzHBuR3hLMHrYfMqWWsmx5

P.S. Kimgadir foydasi tegar deb share qildim, baribir dasturlashga kerak emas deb hate qilmanglar ))
👍22😢3
👎1
Mabodo meni interview qiladigan biror engineer ham OOPni shunday o'rgangan bo'lsa o'sha interviewdan aniq fail bo'laman. Notes LinkedIndan olindi.
😁17👍3
C tilida yozilgan kod assemblyga compile qilinganida assembly kodda qiziq redundency holatlari sodir bo'ladi. Masalan, branching (if statement yoki loop) sabab kelib chiqadigan processor pipelining bilan bog'liq muammolar. Yana bir misol redundant instruction ketma-ketligi (tajribamda ko'rganim, tez-tez bir C statementdagi oxirgi 1-2 ta instruction keyingi statementning boshidagi 1-2 ta instruction bilan teskari (bir-birini bekor qiladigan) bo'lib chiqadi). Xullas, oddiyroq C compilerdan olingan assembly kodni optimize qilib yaxshiniga qo'shimcha performance olsa bo'ladi.

Tepada aytilgan muammolarning ba'zilarini yechish uchun ishlab chiqilgan idealardan xabarim bor (masalan branching bilan bog'liq oddiyroq holatlarni "branchless programming" texnikasi bilan hal qilish mumkin). Meni qiziqtirgani, compilationdan keyin shunga o'xshash ko'p uchraydigan holatlarni alohida optimize qilish uchun hozirda ishlatilayotgan qanday murakkab toollar bor?
🍾4👍3
"In theory, theory and practice are the same; in practice, they are not."

© Yogi Berra
😁27👍9
Engineering Notes
Photo
Mana bu yerda to'g'ri javobni topish uchun Pythondagi ba'zi xususiyatlarni tushuna olish talab qilinadi.

1. Python o'zgaruvchi nomlarini qiymatlarga bog'lash uchun reference ishlatadi. Masalan, a = 4 bo'lsa Python 4 qiymatli obyekt ochib, "a" variableni shu qiymatga bog'laydi.

2. Bir o'zgaruvchidan ikkinchisiga qiymat olinganida (b = a) Python yangi obyekt yaratmaydi, balki yangi o'zgaruvchini ham eskisining qiymatiga bog'lab qo'yadi.

3. Pythonda listlar mutable, ya'ni uning qiymatini dastur davomida o'zgartirish mumkin.

4. del keywordi obyektni xotiradan o'chirmaydi, faqatgina o'zgaruvchidan obyektga bo'lgan referenceni o'chiradi. Obyektni xotiradan o'chirish faqatgina garbage collectorning ishi.

Endi kodni bir boshidan ko'rib chiqamiz.

a = [0, 1, 2]
b = a

a list ochildi, keyin b a dan qiymat oldi. Demak endi a va b bitta listga qarab turibdi.

b.append(3)
print(a)

b o'zgaruvchi qarab turgan listga yangi element qo'shildi. Lekin a va b bitta listga qarab turgani uchun ikkalasi ham endi [0, 1, 2, 3] bo'ldi. Demak birinchi natija [0, 1, 2, 3].

del a
print(b)

Tepada aytilganidek, del bu yerda listni o'chirmayapti, balki shunchaki a o'zgaruvchini listdan "uzib" qo'yayapti. Demak b o'zgaruvchiga zarar yetmagan va ikkinchi natja ham [0, 1, 2, 3].
👍19
Forwarded from Elzodxon Sharofaddinov
O’quv kursi tanlayabganlar uchun:

Nomi wow bo’lgan o’quv markazni emas, u yerda kim dars berishiga va qanday ishlarni amalga oshirganiga qarab ta’lim markazi tanlashni tavsiya qilaman!

Siz uchun checklist berib o’tmoqchiman:
- Dars beryabgan insonni tajribasi va ishlagan loyihalariga qiziqing, qanday muammolarga yechim topgani va bu dasturlarini qancha odam ishlatyabdi?
- 100% mentorlik qilmasligiga e’tibor qarating
- Kurs rejasida, nimalar o’qitilishini aniq qilib oling.
- Kursdagi loyihalar faqat landing page, kalkulyator va shunga o’xshagan loyihalar bo’lsa, u yerda o’qimaslikni tavsiya qilaman.

O’quv markaz toping, mayli u yerda o’qing. Ustoz toping va u sizga har tomonlama yo’l-yo’riq ko’rsata olsin.

Baliq tutishni o’rgatadigan ustoz va joy toping, tayyor tutilgan baliqni yeyishni o’rgatadigan joyni emas. Qanday o’rganish kerakligini o’rgatadigan joyni toping!
👍13
👍1
Engineering Notes
Photo
What is the result of the code above?
Anonymous Quiz
18%
False, False
32%
False, True
30%
True, False
20%
True, True
🍾3👍2😁1😢1