fbpx

Select Your Favourite
Category And Start Learning.

Print(«Hello world»)

Bu kodni biz yaxshi bilamiz.
Lekin bu postni o’qiyotganlarning 99% qismi bu kod aslida qanday ishlashini bilmaydi. Ha, aynan shunday.
To’g’ri, Python interpreter kodni o’qib, execute qiladi deyishingiz mumkin, lekin o’sha execute qilish o’zi nima?
Buni siz yozgan bir qator koddan boshlab CPU, RAMda nima sodir bo’lishi-yu, kompyuteringizdagi har bitta atom qanday harakatlanishigacha tushuntirib bera olasizmi? Katta ehtimol bilan, yo’q.

Endi o'rinli savol: Hatto "Hello world" qanday ishlashini bilmaydigan dasturchi qanday qilib sun'iy intellekt yaratishi mumkin?

Gap shundaki, dasturlashda biz hamma narsani noldan, aniqrog'i nolgacha chuqur o'rgana olmaymiz. Xo'sh, unda o'sha chuqurlikni qanday yopamiz? Axir uy tomdan boshlab emas, asosdan boshlab quriladi-ku. Javob – abstraksiya orqali.

Ya’ni biz ichki ishlash tizimini bilmaydigan (ko’p hollarda bilish zarur bo’lmagan) narsalarni shunchaki ishlaydi deb hisoblaymiz yoki qanday ishlashi haqida aslidan farq qiladigan, sodda tushunchaga ega bo’lamiz (aslida bu ham biroz pastroqdagi abstraksiyalar yig’indisi).

Masalan, eng oddiy backend server yozayapsiz va u request kelganida databasedan ma'lumot olib, response yuboradi.

Buni qilish uchun request o’zi nima, uni qanday olamiz, database qanday qilib ma’lumot beradi va hokazolarni bilishimiz shart emas. Ular «shunchaki» o’z vazifasini bajaradi deb hisoblaymiz.

Natijada bizda tizim qanday ishlashi haqida minimal ma'lumot bilgan holda uni ishlab chiqish imkoniyati paydo bo'ladi. Ya'ni aynan abstraksiya sabab komputerdagi har bitta atom qanday ishlashini bilmay turib ham dastur ishlab chiqa olamiz.

Lekin rivojlanishni xohlasangiz, abstraksiyalarni buzib kirishdan qo'rqmang. Yanada chuqurroqqa tushish sizga ko'proq narsani ko'rish va o'rganish imkonini beradi. Natijada biror texnologiya haqida oldin bilgan narsalaringiz noto'g'ri ekanini va u aslida boshqacha ekanini tushunasiz. Oldingi tushunchalaringiz esa kulguli darajada oddiy tuyulishni boshlaydi.

Yana ozgina pastroqda tushsangiz, o’sha «batafsil» bilganlaringiz ham juda oddiy ko’rinadi.

Lekin abstraksiyalarni buzib, chuqurroqqa tushish bizga o'zi kerakmi?

Bilmadim, bu sizga bog’liq. Shaxsan menga end-user ishlatadigan mahsulot ishlab chiqishdan ko’ra boshqa dasturchilar ishlatadigan toollar ishlab chiqish yoqadi. Menga «chuqurroqda» ishlash yoqadi.

Update: Juda yaxshi misol berilgan komment yozildi, biroz o’zgartirib, postga qo’shib qo’yaman:
Har kuni mashinani o’t oldiramiz va haydab, ishga boramiz. Lekin buning uchun mashina qanday ishlashini bilish shart emas.
Agar mashinadan faqat ishga borish uchun foydalansangiz, shu yetarli.
Lekin siz mashina tuzatadigan yoki ishlab chiqaradigan mexanik bo’lsangiz ichki qismlar va ular qanday ishlashini albatta bilishingiz kerak bo’ladi.

Muallif: Bobosher_Musurmonov

Comment List

Leave a comment