ar
Feedback
Programming ∀

Programming ∀

الذهاب إلى القناة على Telegram

Ushbu kanalda IT va Dasturlashga aloqador mavzularda subyektiv fikrlarimni bayon qilaman.

إظهار المزيد
1 217
المشتركون
لا توجد بيانات24 ساعات
-87 أيام
-3530 أيام
أرشيف المشاركات
Matematikani bilmagan datruchi haqiqiy dasturchi emas
@leph0

Qisqasi leetcodega zadrod bo’ldingiz degani kerakli joyda kerakli algorithm yoki data structureni ishlata olasiz degani emas :) Shu sabab maqsadli qilgan yaxshi.

Shaxsiyga kelgan savollar turkumidan: Savol: Man birqancha yildan buyon javada ishlayman, keyingi birnecha yil oralig'ida FAANGga xarakat qilib ko'rmoqchi edim. Shunga matematikani takrorlab olmoqchi edim qanday kitoblarni tavsiya berasiz ? Context: Agar yaxshi tushungan bo'lsam aka algorithmlar va matematikani yaxshilamoqchilar asosiy maqsad esa FAANG kompaniyalariga topshirish. Javob: Man mathdan ikkichi ekanimni hamma biladi 😁 FAANG kompaniyalariga ham qiziqish yo'q. Lekin maqsadlar boshqa bo'lsa ham qiziqishlar o'xshash ekan shu sabab javobim quyidagicha. Algorithmlar va Matematikadan qo'rqmaslik kerak. Eng muhim narsa yo'l yo'lakay o'rganib ketaverish. Masalan xozirda matematikadagi bazi teoriyalar bilan birgalikda basic algebrani ham o'rganyabman. Masalan set theory bilan paralell ravishta algebric equalentionlarni. Set theory mani yaqin kelajakda qilmoqchi bo'lgan ishlarim uchun kerak. Shu sabab hammasini eng boshidan o'rganib chiqsam umuman adashib ketaman. Yaxshisi bir biriga bog'liq bo'lmagan ikki fieldni baravar o'rganish afzalroq. Set theory orqali databaselar qanday ishlashini yaxshiroq tushuna boshladim. Aytaylik o'zim soddaroq DB yasab ko'rmoqchi bo'lsam albatta datalarni qanday saqlash ustida bosh qotirishim kerak bu o'z o'zidan algorithm va data structure mavzulariga olib kiradi. Demak Btree, merge tree vaxakazolarni yo'l yo'lakay o'rganib ketaveraman. FIkrimcha shunday qilish maqsadli o'sish uchun ancha yaxshi yordam beradi. Shu orqali biror narsani shunchaki o'rganmaysiz balki o'rganayotgan bilimingizni aynan qayerda ishlatishni ham o'rganasiz. Nima muammoni hal etishini tushunib kayf qilasiz.

OO tillarda error handling anchagina tresh. Asosiy ustun object castingga qaratilgan. Bu esa o’z o’zidan treshcode shakillantiradi. Quyidagi maqolada batafsilroq. https://dl.acm.org/doi/10.1145/6041.6042 try/catch blocklar imperativ approach bo’lgani uchun codebase ortiqcha musorga to’lib ketadi. Umuman olganda error handling uchun yaxshiroq imkoniyatlar mavju emas. Bu degani biz OOPda invariantlar bilan ishlay olmaymiz. Shu o’rinda bir payitlar kichik tadqiqotcha qilib huddi promise chain kabi narsa qilgan edim. then o’sha o’sha ammo barcha fail caselarni alohida yozganman. user.notFound() user.invalidUsername() Hamma innariantlarni yozib chiqish bazida azob :) Ichkarida esa barbir casting bor edi :) Keginroq esa Option tiplarni ko’rdim rustda 😃 Yana keginroq esa ADT bilan tanishdim kegin hayotim yaxshilana boshladi 😃

Ishlab kelayotgan OOP uchun yagona izoh: Birqancha proceduralarni bir object contrxtiga ovolib ishlash. Object ichidagi procedurelarda albatta imperativ code bo’ladi :)

Overall, ancha oldin bu mavzuda gapirmaslikga qaror qilgandim. Buzulganini ham sababi bor. Yuqoridagi g’oyalar faqat OOPda mavjudmas va OOPga doirmas shu o’rinda OOP bu conceptlarni eng rasvo implememtatsiyasini qilgan concept demoqchi edim.

OOPdagi ko’p narsalar krinj ekaniga yana bir bor guvoh bo’lyabman. OOPdagi o’sha asosiy 4 ta conceptni umrim davomida tushunmahanman. Sababi normal izoh yo’q qandaydir asosni ko’rmayman. Masalan encapsulation deb turib getter/setter ishlatish prinspni buzulishi deb bilaman. Sababi hohlaganimda yangi qiymat assign qilishim mumkin. Polymorphism masalasida ham huddi shu axvol. Aslida polymorphismni asosiy g’oyasi tiplarga qaratilgan. Soddaroq batafsil tushuntirish imkonsiz bo’lsa kerak. Shu sabab tassavur uchun aytaman masalan bizdagi bir funsional birqancha tiplarda birxil ishlashi uchun ham polymorphism kerak. Bunga misol aynan parametric polymorphism. Inheritance ham shu axvol. Qiziq tomoni nega bir object boshqa faqat bitta objectdan inherit qilishi kerak. Masalan A extends B Bu yanayam krinj qaytangi kengaytirishga halal beradi. Abstraction. Buni aniq ifodalab bo’lganida termin nomo abstraction bo’lmas edi 😅 Yuqoridagi 4 ta prinsp faqatgina OOPda bor emas. Qaytangi OOPdan ham oldin bo’lgan OOP esa bu conceptlarni rasvo qilgan, notog’ri tadbiq qilgan deb bilaman.

Hullas kechadan buyon kayf qilib scratch ishlatyabman... Qiziq bo’lsa: http://incredible.pm/ Rahmatni @keilambda ga aytilar :)

Repost from shakhzod's lab
looking for a node.js engineer to our team requirements: - experience 3 yrs+ - nest.js, express.js, fastify - knowledge of orm (typeorm, prisma, drizzle), raw sql/sql query builder experience is a bonus - docker & docker compose experience - evm blockchain integration experience is a bonus - knowledge of react is bonus (or any kind of admin interface) - r&d guy is preferable - may transition to rust in future - no remote - crazy team - don't expect highest salary (it's a gov company, dude) share your cv in dm @shakhzodkudratov

Media processing, broadcasting ham anchagina rivojlanibtiku. Yana orqada qolib ketibman 😢 https://github.com/ebu/awesome-broadcasting

Haskell ni o’rganish uchun PHD kerak emas, shunchaki sabr qilib o’rganish kerak. Yani turib berish kerak ekan. Nolimasdan, muammo chiqsa dovdiramasdan o’tirib shoshmasdan ishni davom qilish, yechimni qidirish kerak. Hammq narsa oson bo’lishiga o’rganib qolyabmiz !

Yaqinda bir fikr kelgan edi. Infosiganlar hamma narsaga oson erishish degan g’oya bilan insonlar miyyasini tresh bilan to’ldiryabti. Estafetaning keyingi bosqichini kim oladi ? Albatta psixologlar olishadida. Treshga to’lgan miyya bilan buzulgan psixologiyaga reset yoki reinstall kerak. Anashuni xurmatli psixolog va psixoanalizchilar yana birnasalar qiladi… Qiziq tomoni ham shunda ular Garbage collector ishlatadimi ? Yoki bo’lmasam mijozlarda memory leak bo’ladimi :)

Social networklarga kirmay qo’yganimga ancha bo’libti. Shu davrlar davomida juda kam asablar buzuldi. Odatda tanishlar va yaqinlar davrasida biror avtoritar ison haqida gap boshlansa ikkilik chiqar edi. Bu hoh diniy hoh dunyoviy bilim egasi bo’lsin farqoyo’q. Internetda mashxurmi tamam. Biror mavzu ochilsa ikkilik chiqadi. Tog’risi bunaqa tortishuvlarga ham vaqtim yo’q asosiy sababi insonlar kimgadir shunchalik muhlislik qiladiki ularni tanqid qilish mumkinmas. Bu narsa tugamasa ham kerak. Ammo biror inson bilan o’rtamizdagi do’stlik vaxakazo kabi yaqinlik rishtalari. Qanaqadir avtaritetlarni deb buzulishi notog’ri deb bilaman. Arzimaydi, yaqiningning yaxshi yomon kunida u muhlislik qilgan odam turmaydi ! Mani fikrimcha ular hali buni bilmaydi )) Boshlaridan o’tkazishlari ham nasib qilmasin ! Bazi insonlarga tushuntira oldim, tanqidiy fikrlash va yana boshqa masalalarni. Shu sababdan ham bu mavzularda skeptik bo’lib qoldim. Balki insonlar qachondir o’zlari uchun tog’ri prioritetlar jadvali qilish kerakligi haqida o’ylab qolarlar. So’ngi marotaba shunday suxbatda so’zimni quyidacha yakunlagan edim.
Ko’p insonlar kuzatadi, tanishini sababi talab va taklif qonuniyatiga ham bog’liq deb bilaman. Xozir bir O’zbekzabon yaxshi professor yoki yaxshi praktik fizik fizika darsidan qiziq tajribalar qilib uni tushintirsa maksimal 50ming kishi ko’rishi mumkin. Ammo huddi shu o’zbek tilida qilingan vayn, ibratli krinjlar, infosiganlar quotelari milionlab ko’rishlar oladi.

Lol, Uzmobileda kiruvchi sms pullik ekan. Bazi smslarga 1200 so’m yechgan. Hullas hamma narsaga judayam etiborli bo’lish kera
Lol, Uzmobileda kiruvchi sms pullik ekan. Bazi smslarga 1200 so’m yechgan. Hullas hamma narsaga judayam etiborli bo’lish kerak bo’lgan zamonda yashayabmiz. Bu ketishsa ertalab uyg’ongan kishi bo’ynida qarz bilan uyg’onsa ham hechkim hayron qolmaydi. Bazi payment applarda screenshot qilish imkonsiz bo’lib qolibti. O’z qurilmamni hohlaganimcha ishlata olmasam 🤷🏻 Cintactlarga ham access olarmish )) Yana eski linuximga qaytaman bu safar telefonga ham linux qo’yman. Ayfoniga ham macbokiga ham tupurdim ! Yaxshi linux laptop olib nix bosamiz.

Bozorda geometrik progressiyada o’smagan. Shunchaki Zoomer+ lar ko’payib ketgan )) Dasturlashda tayinli ish topish uchun ham yaxshi koryera uchun ham zadrod bo’lib yaxshi distiplinada o’qish kerak. Hohlasangiz shu haqiqatni qabul qiling hohlamasangiz noname joylarda noname ishlarni qilib yuravering 🙂

Bunday tartiblarni yo’lga qo’yish uchun bizda ham kompaniyalarni sudga berish mumkin bo’lishi kerak. Ha utopiya ko’rinadi bular prodda vimda code yozish ham qog’ozda utopiya…

Agar kichikroq projectda bo'lsa ham DevOps bo’lsam quyidagi ishlarga majburlayman: 1. Har qanaqa task managerda kichik portal qilaman. Barcha so'rovlar shu yerga kelib tushsin. Biror developer kelib o'zi hohlaganan narsani gapirib bersa qilib bermaman. Task description yozishi shart. Oddiy request typelar - Access control - Infra - Troubleshooting. - Configs etc... 2. Barcha kerakmas accesslarni olib tashlayman. Serverlarga accesslarni DB userlarni eng minimal holatga keltiraman. 3. Version control & semantic versionlarni majburiy qilaman. Hechkim masterga push qilolmaydi Jamoani kamida 80% qismi review qilishi shart bo'lmasa codeni masterga qo'sholmaydi. Shu o'rinda relaselar aniq semantic versionlar bilan bo'lishi kerak. 4. Normal CI/CD qilinadi, failed CIlardan issue yasaladi. Deploy yoki dileviry ham huddi shunday. Aniq relasedan kegin CI joyida bo'lsa deployment boshlanadi bo'lmasa yo'q. 5. Relase vaqtlari aniq bo'lishi kerak. Haftaning Seshanbadan payshanbagacha bo'lgan kunlari oralig'ida. Hotfixlar mumkin emas. Yangi ficha A/B yoki Green Blue deploymentlar bilan relase qilainadi. 5-10%lik incremental o'sib borish bilan va yangi relase candidatlarda debug flag yoniq bo'ladi. Full relasedan kegin esa debug o'chadi. 6. Eng kamida 3 ta muhit dev/stage/prod. Huddi shu talqindda hammasi to'liq relase qilinadi. 7. Monitoring, haamma narsani monitoringa ulayman. Busiz ishlamayman va hamma muhitlar ham monitoringa ulanishi shart !. 8. Alertlar, muhim va shubxali holatlarni hammasiga alert yozib chiqaman. Kegin role va responsibilitylarga qarab kerakli odamlarga kerakli alertlarni yuboraman. 9. Hech qanaqa shaxsiy xabar yo'q ! Hamma devlar nima demoqchi bo'lsa pochtadan yozsin. Shaxsiy xabarlarni o'qimayman ! 10. Logging, devlar serverdan ko'rishi mumkin bo'lgan yagona narsa bu dashboardan loglarni ko'rish, serverga access yo'q. 11. APM, Majburiy qo'ydiraman barcha anomalylar va slow transactionlarga issue generate qiladigan qilaman. Issuelar bug bo'lib ochiladi kerakli joyga. 12. Har qanday migratorlar, scriptlar vaxakzaolarni o'tqizmayman. Bunday narsalarni ishga tushirish uchun kerakli odamlardan approve olish kerak xato man ham ko'rishim kerak. 13. Huddi shu narsa, scheduler, cron job, trigger vaxakazolarga ham devlar uchun access yo'q. 14. Projectda hotfix yo'q, yangi versiya fail bo'ldimi rollback bo'ldimi bo'ldi relase kechikadi. Tupurganim bor managerlarni sroklariga relase kechikadi ! PS: Tajribamdan yeg’ilib qolgan hulosalar asosida hayolimga shular keldi.

Eng prikoli. Hamma joyda gapirilyabtiku AI kimnidir ishini olib qo’ygani haqida. Lekin shunaqalarni birortasini eshitmadimda 😂 Demak ular yoki ish qilishmagan yoki bo’lmasa AI qiladigan ishlarni qilib kelishgan. Endi kresloni egasiga bo’shatib o’z ishlarini qidiryabtilar.