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
Forwarded from Vohid Karimov (Vohid Karimov)
O'zim ham shunday maktablarni birida o'qiganim va universitetda ham toza Computer Science o'qimaganim tufayli ko'p Math va Computer Science bilimlarni o'zim online resurslardan o'rganaman. Bugun silar bilan o'zimga yoqqan resurslar bilan ulashaman. Kettik:

1. The essence of calculus: YouTube
2. Linear algebra: MIT Website
3. Discrete math: YouTube
4. Probability and combinatorics: Coursera
5. Introduction to Algorithms: MIT Website
6. Operating systems: Archive
7. Networking: Khan Academy Website

Yana, quyidagi YouTube kanallar va GitHub repolarni tavsiya qilaman:

1. 3Blue1Brown
2. Eddie Woo
3. Khan Academy
4. MIT OpenCourseWare
5. BrilliantOrg
6. Coding Interview University
7. Awesome courses

Siz ham o'zingizga yoqgan resurslarni ulashing!
👍15
😁58👍1😢1
Linux file system haqida batafsilroq ma'lumot berilgan yaxshi resurslar bilsangiz commentda qoldiring, iltimos.
Dasturlash sohasida bir-biridan qiziq terminlar ko'p.
Bugun shulardan yana bittasi haqida o'rgandim – Just a Bunch Of Disks (JBOD).

P.S. PHP ham aslida "Hypertext Preprocessor" emas, "Personal Home Page" ning qisqartmasi.
👍10😁7
Matematik va dasturchi sifatida men juda hurmat qiladigan inson – Muhammadxon aka Najimov o'z sohasida blog yuritishni boshlabdilar. Ko'pchilikka foydali bo'ladi deb o'ylayman: @leph0

P.S. Kanal logosi top.
👍6😁3
Universitetda ancha qiziq o'tgan semestr tugay deb qoldi.
Ayniqsa Nand2Tetris loyihasidan foydalanilgan computer science kursi men uchun qiziq bo'ldi. Basic nand logic gatedan foydalanib qadamma-qadam butun boshli general-purpose (umumiy maqsadli) komputer qurish va o'sha komputer uchun avval assembler, keyin VM, OS va nihoyat yuqori darajali dasturlash tili ishlab chiqish jarayonini ko'rib chiqdik. Albatta juda soddalashtirilgan holatda.

Oxirgi haftada o'sha tildan foydalanib har xil kichkina dasturlar yaratib ko'rdik. Nand2Tetris loyihasida Tetris o'yini yozib ko'rsatilgan. Keyin professor qiziq savol berib qoldi: Bir semestr davomida nand'dan foydalanib Tetris qura oldik. Xo'sh, agar teskarisini, ya'ni Tetrisdan foydalanib nand gate qursakchi?

Umuman olganda, har qanday tabiiy yoki sun'iy olam o'z qonunlari asosida ma'lumot saqlaydi va modifikatsiya qiladi, shu jumladan Tetris o'yini ham. Demak agar bizga kerakli axborot saqlash shakli va modifikatsion operatsiyalarni o'sha olamning qoidalaridan foydalanib yoza olsak, teoritik jihatdan o'sha olamni komputer sifatida ishlata olish imkoniyati tug'iladi.

Bizga Tetris o'yini olamining qoidalari asosida ma'lumotni raqamli ko'rinishda saqlash va shu ma'lumot ustida ba'zi mantiqiy amallarni bajarish imkoniyatini beradigan qoidalar to'plamini berildi. Shu jumladan nand gateni ham tasvirlash imkoni tug'ildi. Qolgani yana o'sha klassik usulda soddaroq komponentlarning kombinatsiyasidan murakkabroq mexanizmlar qurish. Natijada Tetris o'yini olamida ishlaydigan general-purpose computer qura olamiz. Xo'sh, endi unga qanday dastur yozamiz? Albatta Tetris😂

Qisqasi, oddiy komputerda ishlayotgan Tetris o'yinining ichida qurilgan komputerga Tetris o'yinini yozib chiqishibdi. Ko'rib jinni bo'layozdim.
😁15👍4
This media is not supported in your browser
VIEW IN TELEGRAM
Dasturlash sohasidan kelib chiqib gif'ga nom beramiz.
😁35👍4
Savol: Maktabda ikkinchi yo uchinchi sinfda 0 ga bo'lish mumkin emasligini o'rganganmiz. Lekin aynan nima sababdan mumkin emas?

Fikrlaringizni commentda qoldiring. Biror kun har bir javobni birga analiz qilishga harakat qilib ko'ramiz.
👍3
Instance attributeni private qilib belgilab yana unga public getter/setter yozib qo'yib shuni encapsulation deb ataydiganlarga hali beri tushuna olmasam kerak.
😁4
Funksiya yozishdan maqsad nima?

Dasturlash sohasiga yaqinda kirib kelgan kamida 4 kishidan (har xil o'quv markazlarda o'qishadi/o'qishgan, self-study qilgani ham bor) funksiya yozishdan asosiy maqsad nima deb so'raganimda deyarli birga xil javob oldim – bir kodni qayta-qayta yozish (duplicate code) ning oldini olish uchun.

Umuman olganda, funksiya duplicate code'dan qutulishning yaxshi usuli. Lekin funksiyalardan foydalanishdan asosiy maqsad (va funksiyalar kelib chiqishiga asl sabab ham) funksional dekompozitsiya va abstraksiya.

Oramizda o'quv markazlarida ishlaydiganlar bo'lsa shunga o'xshash fundamental tushunchalarni berishda biroz ehtiyot bo'lishni tavsiya qilaman. Ertaga chiqadigan mutaxassislarning o'sish potensiali ko'proq sizga bog'liq.
👍21
Engineering Notes
Instance attributeni private qilib belgilab yana unga public getter/setter yozib qo'yib shuni encapsulation deb ataydiganlarga hali beri tushuna olmasam kerak.
Mana bu postga ancha qiziq va foydali commentlar yozilibdi.
Tepada aytilgan holatda, ya'ni private fieldlarga public getter/setter yozilganda encapsulation to'liq buziladi degandim.
Yo'q, aynan shu narsaga ehtiyoj tug'iladigan va encapsulationni buzmaydigan holatlar bor ekan (masalan, custom access validation).

Encapsulation mavzusida chuqurroq izlanishga sabab topildi. Fikr bildirgan va to'g'rilaganlarga rahmat.
👍13
Quote of the day:

Premature optimization is the root of all evil.
© Donald Knuth
👍19
Dasturlashda nega odatda indekslash 1 emas 0-tartibdan boshlanishining kelib chiqish tarixiga qiziqib ko'rganmisiz?
Ba'zida yaxshi ishlab turgan katta tizimlarda ham yillar davomida katta muammolar yashirib yotadi va kichkinagina o'zgarish muammoni ochib, butun aysbergni ko'rsatadi. 6 yil oldin Cloudflareda ham xuddi shunga o'xshash vaziyat bo'lgan.

Hali o'qimagan bo'lsangiz qanday qilib parserdagi kichkina bug o'ta xavfli data leak'ka sabab bo'lgani haqidagi Cloudflarening texnik postini o'qib ko'rishni tavsiya qilaman.
https://blog.cloudflare.com/incident-report-on-memory-leak-caused-by-cloudflare-parser-bug/
👍13
Forwarded from Azim Pulat
JPRQ 2.0 - endi tezroq va xavfsiz.

Hakatonda yutish uchun eng muhim faktor - tezlik. JPRQ bilan endi loyihalaringizni bir qator kod bilan onlayn qilishingiz mumkin.

Backend va frontendni oson ulay olish imkoniyati beradi. Alexa/GoogleHome/Discord uchun dasturlar yaratishni osonlashtiradi.

Rasperry Pi kompyuteringizga masofadan SSH qilish uchun ham JPRQdan foydalanishingiz mumkin.

Xullas, imkoniyatlari faqat tasavvuringiz bilan chegaralangan.

🔗 jprq.io
🔗 github.com/azimjohn/jprq
👍21🍾5
Dasturchilarga kerak bo'ladigan oddiy lekin qiziq toollarga idealar bo'lsa commentda qoldiring.
👍3
Forwarded from Programming ∀
Multiprogramming haqida yozilgan maqola. Eng qizig'i 1978 yil yozilgan. Yanayam qiziq tomoni esa ana o'sha paytda bunday texnalogiyalarni implement qilish xaqida multi taskling haqida izlanishlar avjida bo'lgani 😅.

Mani yanayam qiziqtirgani o'sha payitlarda devicelar qanday bo'lgan ))) kb yoki mb storage )) CPU esa multi core bo'lmaganham bo'lsa kerak.


Science bizdan ancha oldinda ))
Programming ∀
Multiprogramming haqida yozilgan maqola. Eng qizig'i 1978 yil yozilgan. Yanayam qiziq tomoni esa ana o'sha paytda bunday texnalogiyalarni implement qilish xaqida multi taskling haqida izlanishlar avjida bo'lgani 😅. Mani yanayam qiziqtirgani o'sha payitlarda…
Umuman olganda, parallel programming 2004-2005 yillardan boshlab amaliyotda keng qo'llanilishni boshlagan. Bunga sabab aynan o'sha yillarda CPU clock speed o'sishdan to'xtab, clock speed bo'yicha Moore's law buzilgan. Clock speed o'sishdan to'xtashiga sabab esa CPU power density juda yuqori bo'lgani va buyog'iga klassik Dennard scaling ish bermasligi bo'lgan.

2004-yilgacha performance engineeringda bir oltin qoida bo'lgan – dastur sekin ishlasa optimizatsiya qilmay shunchaki 2-3 yil kutib tur. Bu vaqtda yetarlicha kuchli komputerlar ishlab chiqiladi. Clock speed o'sishdan to'xtagani sabab bu usul endi ish bermaydigan bo'ldi. Endi yangi usullarga ehtiyoj tug'iladi. Ana shu vaqtda 80-yillardan beri faqat ilmiy maqolalarda va kichik tajribalarda eslab kelingan parallel programming hammaning e'tiboriga tushadi va eng yaxshi yechimlardan biri bo'lib chiqib, juda tez ommalashadi.

Source: MIT OCW 6.172
👍16