Programming ∀
Kanalga Telegram’da o‘tish
Ushbu kanalda IT va Dasturlashga aloqador mavzularda subyektiv fikrlarimni bayon qilaman.
Ko'proq ko'rsatish1 217
Obunachilar
Ma'lumot yo'q24 soatlar
-87 kunlar
-3530 kunlar
Postlar arxiv
1 217
Radikallik - Bizda biror narsaga nisbatan keskinroq fikr bo'lsa darxol radikalizm bilan ayiblanadi. Ho'sh xozir sizlarga radikalism nima ekani haqida gapirib o'tirmayman o'zingiz internetdan izlanib ko'ring.
Man aytmoqchi bo'lgan narsa ma'lum yasama obraz vakilari tomonidan hammaga qo'yilayotgan tamg'alar haqida !
Masalan umrida code yozmagan, dasturlash haqida ham computer science haqida ham tayinli tassavuri bo'lmagan odam dasturchi 24/7 ishlashi kerak qabilida gaplar gapiryabti.
Yoki bo'lmasam ma'lum sohada katta tajribasi bo'lgan odam o'zi umuman bilmagan soha haqida hohlaganini gapiryabti, ammo unga biroz etiroz bildirisa eshitmayabti.
Fikrimcha manavu tiktokerlar, vaynerlardan ko'ra ko'proq jamiyatga ziyon keltirishi mumkin bo'lganlar mavjud. Agar IT misolida aytadigan bo'lsak "Dasturchi mardikor" deydiganlar kabi insonlar. Low code kelajak, AI dasturchini replace qiladi ! Hullas manashunaqa safsatabozlarning zarari ko'proq. Albatta man IT misolida aytdim hamma sohada mavjud aynan shunaqa toifalar. Ular o'zlarining himoyasi uchun ham keskin fikr va argumentlarni bildirayotganlarni radikal va toksiklikda ayiblaydilar. Bilamizki inson psixologiyasiga muloyim va hushmomilalik ko'proq yoqadi... Ko'zingizni oching hatto ertaklarda ham tulkilar muloyim va ayyor )))
Bizni sohamizdagilarda biroz keskinroq harakter bo'lishi ham tabiy. Ahir aniq fanlar bilan shug'ullanamiz va proof bo'lmasa qattiq tanqid qilishimiz normal holat.
Akajon siz manavu joyda biroz adashibsizda mumkin bo'lsa tog'irlab qo'ysangizToshmat ! .... Gaplar xato sababi ... bo'ladi ! Bu muomilasizlik yoki radikalism emas balki aniqlik va ratsionallik ! Biz hamma narsani aniq, qisqa, lo'nda bo'lishini istaymiz va vaqtni qadrlaymiz. Manashu xarakter sababdan science mavjud, oqimga qarshi bora olish tufayli boshqalar hayotini osonlashtirishga xizmat qilamiz. Bizni vaqtimiz yo'q qanaqadir safsatabozlarni gaplarini muhokama qilib raddiyalar qilgani. Shu sababdan hohlaganini gapirish mumkin deb o'ylashadi. Aslida ko'pchilik ularni shunchaki ignore qiladi bunga sabab esa ularning kompitensiyasi yo'q ekanligi. Bunga ratsional qarasak normal holat. Agar hissiyotlarni aralashtirsak mutakabbirlik ! Manashunaqa qarashlarni deb bazi bir insonlar o'ta radikallikda ayiblanishadi, va bunaqa noxaqliklar ishlab kelmoqda. Aniq fanlar asosiga qurilgan hamma narslar aniq isbot talab qiladi. Aniq isbot esa hissiyotlardan ancha yuqori darajada. Birgala safsatabozlarning gaplari yemayotgani va ishlamayotganiga sabab esa ularda isbot yo'q ekani va ular bu sohada shunchaki samozvanetslar ekani... Qaytaraman siz dasturlashni eng kamida muhandis bo'lish uchun o'rganasiz. Muhandis esa mardikor emas bunday bo'lmaydi. Muhandislar olimlar qilgan kashfiyotlarni hayotga tadbiq qiladigan insonlar ! Olimlar ham hechnima yaratmaydilar kashf etadilar. Kashf etish yaratish emas yaratish esa inoniyatga emas ))
1 217
Bundan taxminan 3 yil oldin bir narsa hayratga solgan edi. Senior title olgan developer ammo tayinli texnik bilimga ega emas. Ha bu narsalar nisbiy ekanini bilaman. Lekin bir narsani tushunish kerak har qanday narsani yaxshi fundament asosiga qurilsa ajoyib bo'ladi. Masalan unumdor tuproqga ekilgan mevali daraxt cho'lga ekilgandan ancha boshqacha bo'ladi.
Shu sababdan bir narsani unutmaslik kerak, o'zingizni aldamang ! Jiddiyroq narslarga xarakat qiling yoshlikda qancha ko'p narsaga erishsangiz, qo'lingizda qancha ko'p narsa bo'lsa shuncha kuchli bo'lasiz. Vaqti kelganida esa hechkimga kerak bo'lmay qolasiz sizdan hechnima qolmaydi. Xozirda yosh ekanmiz demak o'zimizni aldamasdan fundamentni baqquvat qilishimiz kerak, bizga qandaydir wow title emas bizga yaxshi fundament kerak ! Drammalar bilan o'zimizni aldasak vaqti kelib bizni ham aldab chetga chiqarishadi...
https://www.youtube.com/shorts/unUB4zx7PEQ
1 217
Bizda chet eldigiday darajda bo'lmasa ham aynan manashu communitylar juda progressive rivojlanyabti deb bilaman aslida esa hammasiga biroz vaqt kerak, bizda ham birnecha yillardan kegin boy tajriba egalari ko'payib community qadrini yanada oshiradilar.
https://t.me/programming_everyone/2664
1 217
Manda aynan community shakillantirish umuman ularni support qilish masalasida biroz bo'lsa ham tajriba bor va bundan foydalanib quyidagilarni ayta olaman.
1. Communityda adekvatlik va suxbat madaniyati bo'lsa hech qachon conflict chiqmaydi. Umuman eshitish, analiz qilish va fikr qilish madaniyati yaxshi bo'lsa hammasi norm.
2. Aniq maqsad asosida qilingan suxbatlar doyim foydali bo'ladi. Shu o'rinda tanqidlar fikrlarga qarshi bo'lishi kerak shaxsiyatga emas.
3. Communityda hammani bir joyga jamlagan mavzu bor ekan demak anashundan chiqmaslik kerak. Mavzudan boshqa offtopiclarni sekin boshqa joyga ko'chirish o'rinli bo'ladi.
4. Community ma'lum qonun qoida va tartib asosida bo'lishi kerak. Bu esa o'z o'zidan bir mavzu qayta ochilmasligi, hollywarlar kam bo'lishi kabi muammolar extimolini juda pasaytiradi.
Hulosalarim: Community hamma narsa - Umuman olganda har bir azo bu yerda yordam oladi va yordam beradi. Birgalikda rivojlanishga va nimagadir erishishga juda zo'r muhit deb bilaman. Shu asosida birxil qiziqish vakillari bir birlarini topadilar, fikr tajriba almashadilar. Masalan aynan scala communitylarda xozirgi tranditional yechimlar va FP va scaladagi yechimlar orasidagi farqlarni o'rganib chiqgan edim. Shu sabab community qancha tartibli va tajribali bo'lsa shuncha qadr qimmati yuqori bo'ladi va sifatli support bo'ladi. Siz qayerdadir qotib qolganingizda shunchaki tekinga yordam beradigan va qo'llaydigan community bo'lishi sizni yanada kuchliroq va bilimliroq qiladi. Umuman turli communitylar sabab do'st va hamkasblarim ko'paydi va ulardan doyim nimadir o'rganaman. Shu o'rinda o'zim bilgan biror arzimagan narsani ham boshqalarga share qilish qarzim deb bilaman.
1 217
Taxminan 6-7 yildan ko'proq muddat faqat Gnomedan foydalanibman 🙂
Endi esa KDE, hayotni yorqin tarafida bo'lay dedim ))
NixOs bilan bo'lgan 2 kunlik jangu jadallardan so'ng, yaxshilab ujen qilib o'zimni xursand qilib piyoda yurib mana endi mazza qilib o'tiribman. Asosiy configlarim tugadi endi multi devicega moslashim kerak. Linuxga qaytish huddi vatanga qaytish kabi hissiyotlar bedi yuqori efariya 😁
Endi dasturlashdagi afsonalar rubrikasini davom qilsak bo'ladi.
1 217
Repost from Новости Linux
Хакеры массово взламывают аккаунты X и рекламируют токен $HACKED
ИБ-специалисты заметили, что в социальной сети X (бывший Twitter) произошла волна взлома аккаунтов. Через скомпрометированные учетные записи хакеры рекламируют токен $HACKED на блокчейне Solana, который в итоге начал пользоваться популярностью.
Читать полностью
#xakep
@linux_potok
1 217
FP uchun matematikani yaxshi bilish kerakAmmo savol tug'uladi, matematika juda katta ocean. Aynan nimani bilish kerak ? Arifmetika ham matematika va buni bilish ham qandaydir matamatik bilim. Matematikaning sohalari va fieldlari biz tassavur qilgandan ham katta ekanini bilganmizda aniqroq gaplar aytishni o'rganamiz )) Sababi matematika hamma yerda bor va hamma joyga aralashgan. Hamma sohaning matematika qismi bor desak bo'ladi(Istesnolar bo'lishi mumkin). Qisqasi bizni oddiy hayotimizdagi ishlarda ham matamatik bilimlardan foydalanamiz. Demak matematikani yashab qolish uchun ham bilish kerak )) Endi mavzuga qaytamiz, lekin undan oldin JS/TS da birnecha yillik backend va ozgina muddatli frontend tajribamga ko'ra bemalol ayta olamanki, matematikaga shundoq ham ko'p ishim tushgan. Masalan frontenda custom turli componentlarni qilishimda ularni responsive qilishimda ham math kerak bo'lgan. Backenda esa yoki biror matematik conceptni bilmasdan shunchaki tadbiq qilganman yoki yo'l yo'lakay o'rganib ketganman. Qisqasi hayotim davomida matematikaga ichidagi fanlarga murojat qilganman bilib yoki bilmasdan. Aynan webgl da ishlaydigan leph0 oka ham matematikani bazi bo'limlarini o'rganganlar va haligacha o'rganadilar. Sizga xozir yuqorida aytib o'tilgan hamma domainda ham matematika bor ekanini tushuntirmoqchiman. Bazilarida asosan arifmetika yetsa yana bazilarida biroz ko'proq bilimlar kerak. FPga qaytamiz, yuqoridagilardan hulosa qilsak, agar Toshmat Haskellda backendchi bo'lmoqchi bo'lsa. Nima qilishi kerak. A. Agar Toshmat JS/TSni bilgan bo'lsa va shunda backend tajribasi bo'lsa. Haskell o'rganishi kerak. B. Agar Toshmatning birinchi o'rganayotgan tili Haskell bo'lsa, backend uchun keraki matematikani o'rganadi yo'l yo'lakay. Boshqacharoq aytaman, Toshmat uje backendchi faqat nodejs da backend yozadi. Ammo u Network, Database, OS bilimlarini ham o'zlashtirgan, chunki bularsiz normal backenchi bo'lish ham ertak )). Endi shu holatda Toshmat Haskellda backendchi bo'lish uchun yana qayta boshlaydimi hammasini ? Albatta yo'q, lekin Toshmat backendchi bo'lmoqchi bo'lsa unga faqat Nodejs, yoki Haskell yetarli deb hechkim ayta olmaydiku ! Qo'shib DB, OS, Networkni ham o'rganadi. Hulosa: Biz qaysi domainda ishlasak shunga tegishli matematikani o'rganamiz ! Kerak bo'lsa fizikani ham o'rganamiz, biologyni ham o'rganamiz. Chunki biz ishlaydigan domainda bular fundament ! Demak kimdir FPda backend yozmoqchi bo'lsa FP o'rganadi va backend uchun kerakli matematikani o'rganadi. Masalan dbdangi table ichidagi aynan biror qatorni olib kelish uchun yozilgan SQL query FP da ham OOP da ham boshqasida ham birixilku )) Hulosa pro max: Biz backendchi bo'lmoqchimiz, ammo eng mininmal holatda shu embedded DB SQLite ishlatib ko'ramiz. HTTP apilarimiz semantic bo'lishi uchun aynan shu protocolni o'rganamiz. Qaysi vakansiyada ko'rgansiz: Bizga faqat nodejs yoki Java yoki yana boshqasini biladigan engineer kerak deganini )) Shu sabab soha ma'lum sub sohalarga bo'lingan va shu subsohalar esa ma'lum domain va subdomainlarda farq qiladi. Masalan qanaqadir CRM uchun backend yozish bilan biror chat application uchun backend yozish umuman farqli ekani bizga ma'lum. Shunday ekan biz agar backendchi bo'lmoqchi bo'lsak, Databases, OS, Network kabi fundamental bilimlarga qo'shim matematik bilimlarni ham o'rganamiz. Endi savol, biz biror dasturlash tili yasamoqchimiz yoki aynan shu Compiler engineering domainda ketmoqchimiz. Matematika kerakmi ? Topdingiz albatta kerak, sababi hamma sohaning matematikasi bor ekanini yuqorida isbotladik. Unda nima qilamiz ? Qo'rqib tashlab ketamizmi ? Albatta yo'q ! yo'l yo'lakay davom qilaveramiz. Bilmaganimizni o'rganamiz. Agar biz ML engineer bo'lmoqchi bo'lsak ham aynan ML uchun kerakli narsalarni o'rganamiz !
1 217
Qauality - Soddaroq aytsak FP da katta funksional o'z o'zidan scopelarga ajralib ketadi inuitiv darajada. Masalan tail recursion uchun helper function qilaman deysiz va heper alohida scope bo'ladi. Sizdagi logic esa ikkiga bo'linib qoladi. Bilasizki sizga loopdan ko'ra foydaliroq narsa bu recursion chunki hammasi bir biriga mos keladi. Strong va static typing kuchi bilan code o'z o'zini documentated qila oladi. Hamma joyga ham yana alohida context berib ketish shart emas. Biror joyda nima bo'layotganini ham type levelda ancha informationlar bo'ladi. Debugging masalasiga kelsak sizda oldin bo'lishi mumkin bo'lgan null pointer exeptionlar va yana boshqa bazi gemaroylar avvalidan oldi olingan. Hullas codebase ancha sifatli va ergonomik bo'lishi kafolatlangan ))
1 217
Odatda bir muammoga yechim izlab
A. Boshqa muammolarga duch kelasiz.
B. Boshqa muammolarga ham yechim topasiz.
Manda aynan ikkinchisi, o'rganish davrida oldin bo'lgan juda ko'p muammolar yechimlariga duch kelyabman.
Kegin ko'p narsani o'tirib analiz qila boshladim ya'ni man uchun nima ko'proq muhimligi va FP nimalarni taklif qilishi. Keyingisi esa umuman hamma uchun desak ham bo'ladi. Ammo bu aynan mani nazarimda shunday bu degani man xisobga olmagan narsalar ham bo'lishi mumkin.
Perfomance - OO mavzularida izlanishlar davrida bir narsani tushungan edim. Hamma perfomance haqida gapiradi, ammo hechkim bunday code yozmaydi toki majbur bo'lmagunicha. Lekin perfomance qilish kerak ekan deb hechkim tech stackni o'zgartirib yuboravermaydi, buning uchun biror critical sabablar kerak. Shu o'rinda juda ko'p projectlar ham aynan codebase perfomance qilinmagan holatda ham ishlab kelyabti. Shunday ekan FPda perfomance neto deyish kabi izohlarni asossiz deb bilaman. Huddi shu gapni Immutable object oriented approach misolida ham aytgan edim.
Simplicity - Soddalik man uchun eng muhim aspectlardan biri edi. Soddalik uchun man yozgan codeni boshqa hamkasbim tushunishi, o'zgartira olishi, feedback bera olishi kabi aspectlar ham muhim. Bunga bo'lgan urinishlarda juda ko'p qaramaqarshi fikrlar va hollywar chiqishi manga yoqmas edi. Yani yozilgan code hamma uchun intuitiv darajada bo'lishi ham aynan hollywarni kamaytiradi ammo bunga bo'lgan urinishlar complexity oshib ketishiga saba bo'lavergan. FP bu borada man hohlagan narsani bera oldi, chunki biror begona code bilan ishlar ekanman manga ham ancha tushunarli va man qilgan ish ham boshqalarga tushunarli. Xozircha kattaroq hajmda code yozib ko'rmadim ammo bunaqa fikrga kelishimga githubdagi turli repolarni titkilab chiqishim va o'zimcha o'zgartirib ko'rishlarim sabab bo'ldi. Yani projectda complexity bo'lsa ham codebaseda kamroq.
Perfectionism - Perfectionismni hamma tanqid qilinsa ham bu hammada mavjud. Man programmingda ham perfectionis sifatida topa olganan compromise aynan FPda mavjud deb bilaman. Boshida qanchalik perfectionsmni ignore qilmay shunchalik talab oshib ketaverar edi. Xozir esa perfectionismdan kelib chiqgan etirozlar va tanqidlarim deyarli yo'q. Qayerdan ham bo'lsin ? Ahir oddiy conceptlardan tortib boshqasigacha hammasida boshqalar yetarlidan ko'p narsalarni tadbiq qilganku ayniqsa Haskellda.
Paradigms and patterns - OO, imperativ programmingda aynan shu mavzuda doyim kuzatganlarim asosida shuni ayta olamanki doyim nimadir nimadirni inkor qiladi. OO programmerlar o'ylab topgan patternlari faqatgina qog'ozlarda deb aniq ayta olaman. GOF patternlarni o'rganamiz ammo miyanning qayeridarir chang bosib yotadi, huddi sarpo uchun yeg'ib qo'yilgan narsalarga o'xshaydi, undan olib foydalansa esa foydasidan zarari ko'p.
X singleton object ekan, threadlarga olib o'tsam singletoni o'zgartirish kerak bo'lyabti.FPdagi conceptlar doyimiy ishlatilinadi. Siz biror asosiy conceptlardan birini o'rgandingizmi demak aniq siz ishlatasiz ! Yani siz qilmoqchi bo'lgan ishlarning yechimini topishga yoki yanayam yaxshiroq qilishga ham muhim concepltarni o'rganishiz kerak bo'ladi. FPdagi terminalogy bilan ham gaplashish juda oson. Mansalan man functor nima ekanini scalachidan ham haskellistdan ham so'rasam birxil javob beradi. Lekin bir oilaga mansub turli OO tillarda patternlarni implement qilishdagi farqlar bor ekani sabab til foydalanuvchilari boshqacha fikrga kelib qolganini eshitganmiz.
1 217
Laptop yoki PC umuman device olayotganda aynan RAM ko’proq olavering.
Masalan 16GB olasiz. Ammo OS o’zidan 10GB qoladi.
1 217
Pulim dofiga bo’lib ketda hammangizni miyyangizga kelgan axmoqona g’oyalarga invest qilaman 🙂
1 217
ICTweek nima 🤔
Jamu jam bo’lib nimani qoyil qilishadi ?
Umman reason nima shunda ?
Texnologiya sohasidagi biznesmi ?
1 217
Bugun type level haqida biroz puzzle yeg’ildi 🙂
Darslikdan tashqariga chiqdim bugun ham o’tlab kettim ))
https://serokell.io/blog/type-families-haskell
1 217
Bu videoni ko'rganimdan kegin hayotimda yangi chapter ochildi )) Bu chapterni "Beauty in purity" deya nomlayman ))
Hullas neuroscience da anchadan buyon yechilmagan muammoni category theory bilan qanday yechishgani haqida juda ham qiziq video.
https://www.youtube.com/watch?v=4GJ4UQZvCNM
