Programming ∀ – Telegram
Programming ∀
1.2K subscribers
41 photos
44 links
Ushbu kanalda dasturlashga aloqador turli expriementlarim, g'oyalarim, hulosalarimni ulashaman.
Download Telegram
Professionalism shunday narsaki unga amal qilinsa har qanday odam bilan birga ishlash mumkin.

Masalan man ishlagan kompaniyalarda turli millat, din vakilari bo'lgan. Lekin hamma birgalikda nimadirlar qilar edi. Bir narsani g'oyadan boshlab foydalanuvchigacha borguncha bo'lgan jarayonda ko'plab roldagi odamlar mehnat qilgan yoki qilmagan ).

End userga borguncha bo'lgan jarayonda turli muammolar bo'ladi va muammolar turli kategoriyaga bo'linadi.

Shularning shu muammolarning bir kategoriyasi sotsial masala. Bilamizki sotsial so'zi ishtroki bilan siyosat boshlanadi. Qarashlar qaramaqarshiligi, maqsadlar kesishmasligi kabi masalalar ko'payadi. Bir loyihani ishlab chiqish jarayonida insonlar birlashmasa ish bitmaydi va hammaning natijasi turlicha bo'lgani sababli qarashlar qaramaqarshiligi yuzaga keladi. Kimdir A muhim desa boshqasi B muhim deydi. Qisqa aytganda odamlar birlashib nimadir qilishida doyim conflict of interest boshlanadi va siyosat qilish kerak bo'ladi.

Jamiyat esa boshqa kichik jamiyatlardan va shaxsiyatlardan tashkil topadi. Va shu jamiyatlar nimadir maqsadlar asosida birlashadilar, ishda bu narsa biror ishni bitirish bo'ladi, ishni bitirishdan maqsad esa natijani olish afsuski natija turlicha bo'lishi mumkin.

Kimdirlar ish bitrishdan natija deb tajribani oladi. Kimdirlar maoshni ustun ko'radi. Hullas manaviy va moliyaviy maqsadlar va bu narsalar turli insonlarda turlicha prioritetga ega.

Ho'sh, professionalism manashu masalalarda focus qilish uchun framework. Shu orqali siz natijaga bo'lgan resurslar sarfini kamaytirasiz va kamroq resurs sarflab kattaroq natija olasiz.

Oddiy misol, ishni reja qilish. Agar ishni reja qilishni bilmasangiz, demak bazi ishlarni qanday boshlashni ham bilmaysiz va ko'p vaqt yoqotasiz. Ishni reja qilish uchun esa albatta kanban board qivolib jiraga task yozishingiz shart emas.

Roldan kelib chiqib impact berish. Masalan siz professional dasturchisiz, jamoangiz yangi funksional reja qilyabti ammo ularni rejasidagi ishlar natijasi security muammosiga olib kelishini bilasiz, demak buni report qilish kerak. Bu bilan birgalikda siz dasturchi perespektivasidan ushbu funksional rejasiga o'z fikrlarizni ham aytishiz kerak. Demak o'sha domaindagi termni dasturlashdagi termga o'girish kerak va bu yerda sizda ham masuliyat bor. Sizdagi profesionalism kelayotgan ma'lumotlarga qarab feedback berishi kerak. Bazida negative bazida positive. Ushbu qarorlarga esa yana boshqa narsalar aralasha boshlaydi, masalan natija uchun resurslar sarfi, demak siz iqsodiyotni ham biroz tushunishingiz kerak, aytaylik X muammoni hal etish uchun Y servis ishlatish kerak ammo uni ishlatatishga N budjed bormi ? Siz siyosatni ham tushunishingiz kerak, X funksionalni Y uslubda qilidingiz ammo boshqa hamkasblar Z uslubni tavsiya qilyabti, demak ular bilan kelishish kerak.

Yuqorida aytganimdek biror domaindagi termni boshqa domainga o'girish doyim ham ishlamaydi. Real misol qilib insonlar gaplashadigan tillarni olsak, bilamizki hamma tillarda bazi so'zlar bor va ularni boshqa tilga umuman o'girib bo'lmaydi. Bazida manosi yaqinroq so'zlar yoki o'sha manoga olib boradigan gaplar ishlatilinadi. Professionalism esa manashunday mappinglar qilishga ham yordam beradi.
👌1
Huddi soft va hard skillar mavzusiga o'xshab qoldi-a ? O'zi maqsad ham manashu edi, sizga hechkim aniq kerakli bo'lgan yoki o'ta muhim skillar ro'yxatini yoki retsepni berolmaydi. Hamma taxminan aytadi yoki umumiylashtiradi. Shu bilan birga hamma muhimlik darajasini turlicha belgilaydi. Ammo muhim narsa bu bog'liqliklar, sizga kerakli skillar siz sizning muhitga bog'liq, qayerdadir juda ham gapga usta bo'lish kerak qayerdadir linuxni juda zo'r bilish kerak. Va yana muhim narsa shundaki sizga kerakli "fundamental" bilimlar ham unchalik umumiy emas bu ham nima qilishingizga bog'liq. Ha ko'pchilik dasturlash foundation deb imperativ tillardagi asosiy narsalarni o'rganadi bu yomon emas ammo tillar foundationi ham til o'ziga bog'liq ochig'ini aytsam. Bir til boshqa tilga to'laqonli asos bo'lishi qiyin yoki tillardagi bazi narsalarni boshqa tillarda kuzatmaysiz yoki boshqacha ishlaydi.

Profesionalismga erishish uchun esa kerakli skillarni ham doyim ham bilib bo'lmaydi bu narsa ham turli narsalarga bog'liq. Yuqorida aytganimdek jamiyatlar shaxsiyatlardan tashkil topadi. Shaxsiy rivojlanish ham shaxsiy qarashlar va qiziqishlarga bog'liq. Buni ham umumiylashtirib bo'lmaydi, hammaning qarashi farqli bo'lishi mumkin. Demak bu yerda bizga yordam beradigan narsalardan biri shunchaki openminded bo'lish, tanqidiy fikrlash, learning curve kabi narsalar bo'lib qolyabti. Biz boshqalardan maslaxatlar olamiz, hulosalarni muhokama qilamiz ammo boshqalar yo'li bizga ishlamasligi mumkin. Demak tajriba qilishdan ham qo'rqmasligimiz kerak. Ko'p narsalarni tajriba qilyabmiz ammo haligacha ish topolmayabmiz, buyoqda iqsodiyotni ko'tarish kerak "soqqa kerak Abdullajon" demak focusni toraytirish kerak, spitsalist bo'lish kerak. Bu role yoqmayabti hadeb birxil turdagi narsalar qilishdan charchadim, demak yangi rolega o'tish kerak. Bu OS yoqmayabti, demak yangi OSga o'tish kerak. Ho'sh bu qanchalik muhim ?
Falon tilni o'rganib ko'rsamchi ? Ho'sh bu til man ishlatadigan tildan qanchalik farqli ? Unchalik farqi yo'q ekan undan ko'ra X til o'rganish qiziqroq uyoqda umuman boshqa conceptlar va mening dunyo qarashimga katta foyda beradi. X tilning communitysi bo'lmas ekan o'rganmayman.
Shunaqa fikrlar kelaveradi, muhimi o'zingizga holis bo'ling. Odam o'ziga o'zi k*tlik qimasa hammasi yaxshi bo'ladi.
4👏1😁1🤔1🕊1
When terms roasted you.
😁2🔥1🥱1
Lol hattoki phpda async/await reja qilinyabti ekan.

https://wiki.php.net/rfc/true_async

Imperativ tillarni bir biridan deyarli farqi qolmayabtiku. Lekin phpchilar kallasi ishlabti async/await oddiy funksiya sifatida qilinyabti.

Bundan oldin phpda |> pipe operatorni ko’rgan edim. Ha pipe bilan kod yozish biroz elegantroq, lekin barbir php syntax man uchun horrible.

Phpchilar bo’lsa maslaxatim shu syntaxga async await qo’shishga maksimal qarshi chiqaverilar agar biror surwaylar qilishsa. Bo’lmasa kegin siqilib o’tirasilar colouring bilan.
😁111🥱1
Ishqilib 18 yoshlik Teamlead CEO/CTO Co Founder investor super mega startupper emasmisiz demak hali shans bor.

TustMeBro ODaM Bo'LAsIz!

MAN JiDDiY AyTdIM YoZUV SiGNaturidan Ma'NO QIDirMANg
🤣236😁5🔥1🫡1
Deep research.

Izlanishdan maqsad ma'lumotga egalik, ma'lumotga egalikning maqsadi bo'lsa undan foydalanish.

Ha, hammasi qiziqishdan boshlanadi, siz nimagadir qiziqib qolasiz, izlanish qilasiz.

Ammo sizga kelgan hamma ma'lumotlardan ham foydalana olmasligingiz yoki notog'ri foydalanishingiz mumkin. Shu sababli siz bergan ma'lumotlarga feedback doyim kerak bo'ladi.

Eng muhim narsa manashu huddiki siz nimadir o'rganganib uni qanaqadir outputga aylantirganingizda chiroyli bir qilich shakilga keladi, ammo qilchingiz hali o'tmas sizga kelgan feedbacklar manashuni charxlaydi. O'tkir qilichi bor samuray bo'lishni istasangiz demak feedbacklardan hulosa qilishni o'rganishingiz kerak.

Sizga feedackni esa o'zingiz qidirib topishingiz kerak va aynan qaysibiri sizni qilichni charxlashini bilmasligingiz mumkin, shu sababli ham bir talaba ortida ko'plab uztoz bo'ladi va shu sababli insonlar baxlashadilar yoki tanqid qiladilar.
🔥91
Shu feedback olishni esa huddi compilerlarga o'xshataman. Kimdirni compileri yani feedback beradiganlari juda ham week, yani yozilgan kodda ko'p muammo chiqishi mumkin.

Kimdirni compileri esa juda aqilli. Juda zo'r feedbacklar keladi, ha biroz "achitadi" lekin yaxshi feedback keladi. Xatolarni kamaytiradi.

Bo'ldi falsafa darsi tugadi endi. Foydaliroq narsalarni qililar, Σboy bo'lish manga emas ekan.
6😁2
You absolute right...

© AI assisants
🤣182😁1
Kernel bugs hide for 2 years on average. Some hide for 20.

https://pebblebed.com/blog/kernel-bugs
1
Bazida:

Fuck you Linux, degim keladi.

Ammo undan yaxshirog'i yo'qda
😁14🤣61
O’zi sug’urta tizimi C chilarni deb chiqgan bilarmidilar ?
🤣131🐳1
Build own world.

Yaxshi expirence qilishning eng yaxshi uslublaridan biri bu o'zingiz uchun confort muhitni qurish. Bu narsani birnechta hamkasb do'stlarim amalda ko'rsatib berishdi.

Man uchun oldin ko'p narsalar defaultroq bo'lgani qiziq edi. Ammo tushundimki bazi narsalar rostdan ham man uchun noqulay yani bu shaxsiy tanlov. Huddiki hayotdagi boshqa tanlovlarimiz kabi, custom workspace mavzusi ham shaxsiy tanlov. Bunda hechkim bir birini hate qilolmaydi, faqat biror narsani kamchilik va yutuqlarini muhokama qilish mumkin.

O'z ish muhitingizni qurishingiz orqali esa o'zingizga qulay, yoqimli atmosferada ishlashingiz garovi. Shu bilan birga jarayonda chiqgan muammolar yuzasidan izlanishlar qilasiz, nimadirlrani yaxshiroq tushuna boshlaysiz yoki o'rganishga majbur bo'lasiz.

Yangi boshlovchilarga esa: Your work environment, your first project production.

Siz tanalab chiqasiz, har bir mavzuda qanday toolardan foydalanishni, siz foydalanadigan OS qanday bo'lishini. Shu orqali o'rganasiz OSni qanday configure qilishni, qanday text editor configure qilishni. Uyoqda ham yangi muammolarga uchraysiz, balki yangi tillar bilan tanisharsiz. Shu orqali dunyoqarashingiz kengayadi va creativity oshadi deb o'ylayman. Kimdir hammayoqni cyberpunk qilib tashlasa kimdir juda minimalist bo'ladi. Eng muhimi esa shunday qilib sizda shaxsiy qarashlar rivojlanadi va tajriba oshadi. Albatta sizga hechkim pul to'lamaydi bu ishlarni qilganiz uchun, hechkim sizga rahmat demasligi mumkin. Ammo jarayondan kayf qilasiz. Hamma narsani to'liq o'zingiz 0dan yozmay boshqalardan terib chiqsangiz ham hechnima yoqotmaysiz. Muhimi aynan siz uchun maxsus ish muhiti bo'lishi. Kimdirlar o'zining keyboardlarigacha yasab chiqadi, ammo bu masala ham personal choise. Demak ular uchun shu muhim yoki qiziq.
🔥8💯1
Forwarded from @yegor256 news (Yegor Bugayenko)
You may have heard of SeedRamp, a micro-investment fund we launched in California ten years ago. We are now giving it a new life. The idea is simple. Early-stage startups often need a small amount of capital to survive until their first major investment round. That is where we come in. You apply, tell us your story, and if we believe in your startup, we invest up to $20,000 in exchange for convertible notes. The investment decision is made on the spot, during the interview (in English). Every interview is fully recorded and published on YouTube, just as we did with all previous SeedRamp investments. If you are building something real and need a runway boost, be brave and apply.
1🤔1
Ko'pchilik OS darslarida o'rgangan bo'lsa kerak, processlar ma'lumot almashishi uchun turli ko'rinish va protocollar bor.

Masalan hammamiz bilgan network protocollar.

Lekin hech o'ylab ko'rganmisiz OS ichida internal qanday qilib ma'lumot almashish mumkin ?

Bizda 2ta process bor, endi ular ma'lumot almashishi kerak, ha balki unix socketlar birinchi hayolingizga kelgandir :) Tog'ri localda network exchange tezroq bo'ladi bazi OSI layerlari skip qilgani uchun.

Lekin yanada qiziqroq aynan local IPC uchun mo'ljallangan narsalar ham bor masalan DBUS linuxda alohida message bus system. Buni ko'proq brokerlarga ham o'xshatsa bo'ladi. Chunki siz api qilganizda alohida bus namespace yozasiz, huddi topiclar, channellar kabi. Kegin contactlarni belgilaysiz huddi kafkadagi avro schemalar kabi. High levelda biroz o'xshaydi ammo 1:1 tassavur qilmang.

Qizig'i dbus tiplarni ham support qiladi )) Ha biroz eskicha dizayn va bazi narsalar xml bilan. Lekin siz o'ylagan REST apilardan yaxshiroq dizayn qilsa bo'ladi ko'p narsani ))

Albatta IPC uchun dbusdan ham yaxshiroq yechimlar bo'lishi mumkin. XML hisobga olmasak dbus api design qilish ancha yoqimliroq lekin.

Batafsil: https://www.freedesktop.org/wiki/Software/dbus/
🔥9
Linuxni kavlar ekansiz yana juda ko'p ajoyibotlar kelib chiqaveradi. Tarixni o'qigandan doyim ham foyda yo'q. Juda ham ko'p abstraksiyalar ustiga abstraksiyalarni ko'raverasiz.

Masalan ko'pchilik gapiradigan init paytini o'zida juda ko'p hodisalar bo'ladi. Sizga ko'rinadigan juda ko'p narsalar filelardan tashkil topgan, ularni ochib shu faylar bilan "o'ynashib" ko'rsangiz bo'ladi.

Hullas oddiy lsblk qanday ishlashini ko'rsangiz disklar ro'yxatini fayllar ichidan qidirib topish mumkin :)

Hullas Kustoning sarguzashtlari bo'ladi bularni kavlashingiz.
🔥7😁1🆒1
Dynamic frequency scaling
Juda ham qiziq narsa modern cpularda mutlicoredan tashqari frequency stagelar ham bor. Masalan: power save, normal, boost.

5Ghz frequencylik cpu doyim 5Ghz ishlamaydi, boshlang’ich chastota bo’ladi. Eng qizig’i esa. O’sha 5Ghzlik cpuni 6-7Ghz qilish ham mumkin, bu narsa overclocking deyiladi.
5
Programming ∀
Linuxni kavlar ekansiz yana juda ko'p ajoyibotlar kelib chiqaveradi. Tarixni o'qigandan doyim ham foyda yo'q. Juda ham ko'p abstraksiyalar ustiga abstraksiyalarni ko'raverasiz. Masalan ko'pchilik gapiradigan init paytini o'zida juda ko'p hodisalar bo'ladi.…
Rasmlarga yaxshilab etibor qilsangiz yuqoridagi postda aytgan narsamni tushunasizlar.

Linuxda hamma narsa fayl ekani sizni foydangizga uyoqdagi har bir componentni o'z qo'llaringiz bilan ushlab ko'rsangiz bo'ladi. Kerak bo'lsa bazi narsalarni umuman boshqacha ishlashga ham majburlay olasiz vaxakazo.
🔥4
Yana bir qiziq narsalardan biri pseudo random generator. Linux o'zida /dev/random va /dev/urandom faylarini ochib raqamlarni olsangiz bo'ladi. Lekin bu maxsus shifrlangan random raqamlar yani decode qilish kerak.

Random generate qilish bilamizki doyim o'ziga yarasha challengelardan iborat va buning turlicha algorithmlari mavjud.


Real usecaselardan biri.
cat /dev/random | hexdump bilan biz random hex generate qilsak bo'ladi, hex esa uuidga o'xshab ketadi, aniq formati va size esda yo'q bilganlar share qiling iltimos, lekin biz ls /dev/disk/by-uuid buyrug'i bilan disklar idsini ko'rsak bo'ladi va bu biz randomdan olgan formatga juda o'xshash. Ushbu idlar bizga booting paytida beriladi.

Batafsil: https://en.wikipedia.org/wiki//dev/random
🔥1🤯1