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
— Bu loyihamiz O'zbekistondagi birinchi X turdagi loyiha.
— Shoshmang, bizda uje bor Y, Z alternativlarchi? Sizlarniki uje birinchimas shekilli?
— Ukam, aqllilik qvossammi...?

Inspired by a real story
👍21
HashMap haqida maqola yozdim

Uning ortidagi nazariya va zamonaviy dasturlash tillaridagi implementatsiyalari haqida batafsil o’qishingiz mumkin.

Link: https://asadullo.com/blog/hashing/

@solvemproblr
👍17👎3
Bir saytda botlarga qarshi testda 7-8 ta son berib, drag&drop qilib sort qilish so'ralar ekan. Ataylab quicksort qilib berdim ))
😁37
my.mehnat.uz'da o'zim ishlamagan joyda 10 kunlik mehnat shartnomasi qo'shilib qolibdi. Kompaniya direktori bilan gaplashib ko'rsam qanaqadir "yoshlarni ish bilan ta'minlash" dasturi doirasida 70 kishi uning kompaniyasiga majburiy biriktirilgani, hozir hammasini qaytadan bo'shatib chiqayotganini aytdi. Ro'yxat "tepadan" kelib, avtomatik mehnat shartnomasi tuzilgani (mening imzoimsiz), ro'yxatdagi odamlarni o'zi ham tanimasligini aytayapti. Davlat idoralari fuqarolar shaxsiy ma'lumotlari bilan xohlagancha o'yin qilayapti. Molxona.
🤯42😁8👍5
Oldinlari neovimni mechanical keyboard bilan ishlatish kerak deyishsa ishonmasdim ))

P.S. Keyboard tavsiya qilinglar.
Sololearnni eslaydiganlar bormi?
Dasturlash bo'yicha savollarni yechib birga-bir "jang" qilsa bo'lardi.

Python communitydagi tanishlar anchadan beri shuning o'zbekchasi – Tandir ustida ishlashayapti. Foydali va juda qiziq dastur, o'zim ham anchadan beri test qilishda qatnashib turaman. Bundan tashqari o'ynash uchun savol yuborib, pul mukofotiga ega bo'lishingiz mumkin. App Store/Play Storeda "Tandir" deb izlasangiz chiqadi, Telegram kanaliyam bor. Anaqqisa, tavsuyu.
👍9🍾2
Hozirgi ish joyimga kirganimga 2 oy bo'ldi. Yangi jamoada texnik bilimlardan tashqari "work culture" tomondan ham ko'p narsa o'rganayapman. Quyida shaxsiy fikrimcha bizda ham kengroq adaptatsiya qilishga arziydigan ba'zi qoidalar. E'tibor qilsangiz bularning hammasi oddiy narsalar, lekin negadir ba'zilar shularga ham amal qilmaydi.

1. Sizning vaqtingiz qimmat, boshqalarniki undan ham qimmat. Hamkasbingizning ishi sizga bog'liq bo'lsa iloji boricha tezroq bajarib bering yoki eng kamida qachon qilib bera olishingzni ayting. Schedule qilingan call/meetinglarga vaqtida qatnashing, biror sabab bilan kech qolsangiz yoki qatnasha olmasangiz qolganlarni bu haqida iloji boricha ertaroq ogohlantiring. Managerlar va team leadlar uchun: callga faqat kerakli odamlarni chaqiring va iloji boricha tezroq tugating. Daily standupda jamoadagi faqat 1 kishiga aloqador task ustida gaplashish uchun butun jamoani 1 soat ushlab turmang.

2. Vaqt qimmat, fokus undan ham qimmat. Fokusning 2 ta asosiy dushmani bor, shulardan iloji boricha qochishga harakat qiling:
a) Context switch, ya'ni bir vazifadan boshqasiga o'tish. Masalan, fokus bilan ishlayotgan jamoadoshingizga "hey, tezda mana bu narsani qilib bera olasanmi, 5 minut vaqt ketadi" desangiz u ishning o'zini qilishga 5 minut vaqt ketishi mumkin, lekin jamoadoshingiz yana o'zining ishiga qaytib avvalgidek fokus qilishiga yana kamida 10-15 minut ketadi.
b) Unpredictibility, ya'ni oldindan rejalashtirilmagan ishlar. Masalan, jamoadoshingiz yoki qo'l ostingizdagi ishchini oldindan ogohlantirmasdan "hey, hozir 10 minutlik qisqa callga qatnasha olasanmi" desangiz u callga kirib nima bo'layotganini tushunib olgunicha va calldan keyin oldingi qilayotgan ishiga qaytgunicha ancha vaqt o'tadi. Lekin call oldindan belgilangan bo'lsa u ma'lum darajada tayyor bo'ladi va context switch ancha oson kechadi.

Davomi keyingi postda

@boboshersnotes
👍22
Davomi

3. Engineerga vazifa emas, muammo bering. Tayyor yechimni implement qilish oson, yechimni va ayniqsa yaxshi yechimni topish qiyin. Agar manager yoki team lead sifatida engineerlarga "A tildagi B frameworkda C arxitekturada web server yoz, databaseda X, Y, Z tablelar bo'lsin" shaklidagi vazifa berayotgan bo'lsangiz unda birinchidan siz engineerlardan to'liq foydalanmayapsiz, ikkinchidan siz o'ylagan yechim optimal bo'lmasligi mumkin. Yaxshisi, "bizda A muammo bor, shuni hal qilish uchun bizga B imkoniyatga ega yangi servis kerak" deb muammoni o'rtaga tashlang. Shunda bir qancha alternativ yechimlarni ko'rib, hamma tomondan analiz qilib, eng yaxshi yaxshi yechimni tanlash imkoni bo'ladi. Lekin odatda call davomida yaxshi yechim o'ylab topish ko'p vaqt va ma'lum bir sohada chuqur bilim talab qilishi mumkin. Bunday holatda bir kishiga muammoni chuqur o'rganish va potensial yechimlar ustida ishlash vazifa qilib beriladi (yechimni implement qilish emas) va keyin berilgan yechimlarni butun jamoa bilan analiz qilib, qaror qabul qilishingiz mumkin. Implement qilish shundan keyingina boshlanadi.

4. Djangochi emas, engineer bo'ling. Bugun application serverda, ertaga databaseda, indinga networkingdagi muammoni hal qilishingizga to'g'ri kelishi mumkin. Albatta ishga kirishdan oldin bularning hammasini chuqur o'rgana olmaysiz, shuning uchun "T shaped" engineer bo'lishga harakat qiling. Ya'ni bilimingiz T harfidagiga o'xshab biror tor sohada chuqur bo'lishi bilan birga boshqa ko'plab sohalardan ham ma'lum darajada xabardor bo'lishingiz siz uchun ancha foydali, shunda zarur bo'lganida boshqa bir sohani chuqurroq o'rganishingiz oson bo'ladi (ya'ni T ni π ga aylantirish oson bo'ladi). Menimcha lokal bozordagi eng katta muammolardan biri ko'p sohalarni yuzaki biladigan lekin birortasini chuqur tushunmaydigan (– shaped) yoki bir tor sohani chuqur biladigan lekin boshqa sohalarni umuman tushunmaydigan (I shaped) engineerlar. Bundan tashqari bir narsani chuqurroq o'rganib olib, keyin hamma joyga shuni tiqishtiradigan (L shaped) engineerlar ham odatda jamoaga foydadan ko'proq zarar keltiradi, ToDo app qilish uchun ham microservice quradiganlar bunga misol.

5. Qilgan har bir ishingizni va o'ylagan har bir yechimingizni yozib boring. Projectda to'g'ridan-to'g'ri sizga bog'liq narsalar minimal bo'lishi kerak, yechimlar va g'oyalar ham shular qatorida. Ertaga siz ishdan ketsangiz ham yozgan narsalaringiz turadi. Bu kelajakda boshqalarning vaqtini isrof qilmaslik uchun qilishingiz mumkin bo'lgan eng yaxshi narsalardan biri. Bundan tashqari menga o'xshab xotirangiz yomonroq bo'lsa 1 hafta oldin tugata olmagan ishingizga qaytganingizda oldingi safar nima qilganingiz/qilmoqchi bo'lganingizni yozib qo'yganingiz uchun o'zingizga o'zingiz rahmat aytasiz.

@boboshersnotes
👍30👎1
Aytgancha, bu yil ICPCda qatnashayotganlar bormi?
Tayyorgarlik qanday ketayapti?
👍8😢2🍾1
Knowledge of the day:
Fast finite field implementations, Barrett reduction, Montgomery multiplication
👍7👎3
Team leadim:
"Ochig'ini aytsam, xato qilmaydigan, boshqalardan yordam so'ramasdan o'zining ishini doim qoyillatib bajaradigan engineerlardan qo'rqaman. Ular yoki o'ta aqlli nerd bo'ladi, yoki necha yildan beri komfort zonasidan chiqmay bitta ishni qayta-qayta qilib yurgan bo'ladi*. Ikkinchisi bo'lishi ehtimoli juda katta."

*Umuman olganda, komfort zonada qolish har doim ham yomon emas. Faqat bu bizning hozirgi jamoada zararga ishlaydi.
👍26
Dr. Algorithm
Dasturchimisiz? Bu savolni kecha TheGuardian.com da oʻqib qoldim. Dasturchilarni ishga qabul qilishda tekshirish uchun ishlatishar ekan. Bir urinib koʻrasmi? Dasturchimisiz? Qorongʻu tuneldasiz. Tunel yoʻlagi burilib boradi va uchlari tutashgan (doira…
Mana bu savol kecha ICPC training sessionda tushdi, originali 2022-2023 NWERCda tushgan ekan (G savol). Saidolim aka o'shanda O(n^2) tc yechim bergandilar, bu yerda O(n) tc yechim so'ralgan ekan. Kecha biz yecha olmadik, lekin ancha sodda ekan. Xo'sh, siz O(n) tc yechim topa olasizmi?
👍3
Microsoftning Teams, Outlookka o'xshagan productlarining rostdan sifati pastmi yoki oldin ishlatmaganim uchun menga shunday tuyulayaptimi?
👍1
Anchadan beri mechanical keyboardga o'tishni mo'ljallab yuribman. Magic keyboardga o'rganib qolganim uchun low profile mechanical keyboardlarni qarab ko'rayapman. Yaqinda Keychron K3 Maxni test qilib ko'rdim. Build quality kutganimdan ancha past ekan. Typing experience ham unchalik yoqmadi (brown switch bilan). Xullas, olmadim.
😁10👍1
Bugun ICPC saralashda kimlar qatnashdi?
Eng zo'r savol qaysi bo'ldi?