Guessing vs Forming a Hypothesis
Taxmin emas, gipoteza
Detektivni tasavvur qiling: jinoyat joyida u birinchi ko'zga tashlangan odamga "sen qildingmi?" deb ishonch bilan ko'rsatmaydi. Buning o'rniga, u dalillarni to'playdi (kim qayerda edi, qanday izlar bor), so'ngra "agar shu odam qilgan bo'lsa, u YERDA bo'lishi kerak edi" degan tekshiriladigan taxmin — gipoteza quradi, va uni dalil bilan tasdiqlaydi yoki rad etadi. Xato dasturni tuzatish ham xuddi shunday jarayon — tasodifiy gumon qilish emas.
Engineering Judgment kursida siz kod yozishdan OLDINGI qarorlarni ko'rgan bo'lsangiz, endi kodni tuzatish jarayonining o'ziga o'tamiz. Bu kurs davomida siz kod yozmaysiz — real, fuzzy xatolarni tizimli ravishda topish mashqini qilasiz.
Ko'p dasturchilar (ayniqsa shoshilganda) xatoga duch kelganda darhol taxmin qiladi: "ehtimol bu joy noto'g'ri" deb, kodning tasodifiy qatorini o'zgartirib ko'radi, ishlamasa boshqa qatorni o'zgartiradi. Bu — "qorong'i xonada ko'zni yumib devorni paypaslash"ga o'xshaydi: ba'zan tasodifan eshikni topasiz, lekin ko'pincha vaqtni behuda sarflaysiz va hatto yangi xato qo'shib qo'yasiz.
| Taxmin qilish | Gipoteza qurish |
|---|---|
| "Ehtimol bu funksiya noto'g'ri ishlayapti" — tekshirmasdan o'zgartiraman | "Agar bu funksiya noto'g'ri qiymat qaytarsa, uning natijasini chop etganimda buni ko'raman" — tekshiraman |
| Natija o'zgarmasa — boshqa tasodifiy joyni o'zgartiraman | Gipoteza rad etilsa — nima uchun rad etilganini yozib, YANGI, aniqroq gipoteza quraman |
| "Ishladi shekilli" deb, NEGA ishlaganini bilmasdan qoldiraman | Gipoteza tasdiqlansa, SABABNI aniq tushuntira olaman |
Gipoteza qurish uch qadamdan iborat: (1) kuzatilgan xato asosida "nima uchun bu sodir bo'layotgan bo'lishi mumkin" degan aniq, TEKSHIRILADIGAN taxmin tuzing; (2) shu taxminni tasdiqlaydigan yoki rad etadigan eng kichik tekshiruvni o'tkazing (masalan, qiymatni chop etish, kichik test yozish); (3) natijaga qarab, gipotezani tasdiqlang yoki rad etib, YANGI gipoteza quring. Bu — Problem Decomposition kursidagi "taxmin emas, savol" tamoyilining, endi xatoni tuzatish jarayoniga qo'llanilishi.
Muhim farq: gipoteza rad etilishi ham foydali natija — u sizni qidiruv doirasidan chiqarib tashlaydi ("bu funksiyada muammo yo'q ekan, demak boshqa yerda"). Taxmin esa rad etilganda hech narsa o'rgatmaydi, chunki u boshidanoq aniq shakllantirilmagan edi. Shuning uchun tajribali dasturchi "ishlamadi" deganda ham nimani bilib olganini aytib bera oladi.
Key Takeaway
Key Takeaway:
Xatoni tasodifiy o'zgartirish bilan emas, tekshiriladigan gipoteza bilan qidiring: "agar sabab shu bo'lsa, men buni ko'rishim kerak" deb, kichik tekshiruv o'tkazing. Gipoteza rad etilsa ham, bu sizni qidiruv doirasidan chiqarib, keyingi, aniqroq gipotezaga olib boradi.
NEXT UP
Reproduce Before You Fix