Dasturlash bo’yicha
savol-javob kodeksi
Mundarija
Kirish
04
Xato haqidagi ma’lumotni o’qing
05
Avval mustaqil izlanib ko’ring
07
Imlo xatolarsiz yozing
09
Shaxsiy xabarda savol so’rashda ehtiyot bo’ling
11
Yuqoriga qaramang
13
Muhokamaga mos topikdan foydalaning
14
Yozishmalar madaniyatiga rioya qiling
16
Meta savollar bermang
18
Ovozli xabar yubormang
20
Katta harflarning o’zidagina yozmang
22
Savolni bitta xabarda yozing
24
Savolni to’liq mazmunda yozing
25
Savolni yuborishdan oldin tekshirib oling
26
Avval maqsadni keyin muammoni ayting
27
Hashtag qo’ying
29
Kontekst haqida yetarlicha ma’lumot bering
31
Mas’ul odamni tag qiling
33
Muammoga oid (!) kodni skrinshot qilib yuboring
34
Kodni to’g’ri formatda yuboring
36
02
“Sandbox”lardan foydalaning
37
Yordam emas maslahat so’rang
39
Toksik bo’lmang
40
Guruhdoshlarga yordam bering
42
Sabrli bo’ling
43
Javob topilgani haqida xabarlang
44
Rubber duck debugging
46
Hujjatlashtiring
48
So’ngso’z
50
03
Kirish
O'zingiz uchun yangi bo'lgan ixtiyoriy biron mavzuni
o'rganayotganingizda savollar bo'lishi tabiiy. Dasturlash
sohasi ham istisno emas.
Dasturlashni o'rganishni yangi boshlaganlar savolni to'g'ri
usulda so'rash, fikrini guruhlarda yozma ifodalashda ko'p
qiynalishadi. Sohada tajribasi bor bo’lganlarda ham shu
holat uchrab turadi. O’rganayotganlarda savolga javob
ololmagani sabab sohaga bo'lgan qiziqishi pasayishi,
sohadan ko'ngli sovushi ehtimoli ham yo’q emas.
“To'g'ri savol berish javobni topishning yarmiga teng”
degan ibora bor. Qo’llanmamizdan maqsad ham shu - to’g’ri
savol berish qobiliyatini shakllantirish. Shu bilan birga
guruhda to’g’ri formatda muhokama qilish bo’yicha ham
tavsiyalar berib o’tdik.
Bu qo'llanmada savol berishda eng ko'p uchraydigan
xatoliklarni misollar asosida ta'riflaymiz. O’sha holatda
savolni qanday usulda yaxshilash mumkinligini ko’rsatamiz.
Shu bilan birga yozma muloqotga oid tavsiyalarni ham
qo’shganmiz. Qo’llanmadagi bo’limlarni berilgan ketma-
ketlikda o’qish tavsiya qilinadi.
04
Xato haqidagi ma’lumotni
o’qing
Kodda biron xato bo’lsa, odatda kod yozish dasturida yoki
brauzerda xato haqidagi ma’lumot beriladi. Agar shu
ma’lumotdan to’g’ri foydalanilsa, ko’pincha boshqalarning
yordamisiz ham muammoga yechim topish mumkin.
Masalan, yuqorida Laravel freymvorkida yozilgan loyihada
xato haqidagi ma’lumot sahifasi berilgan. Xato qaysi
qatordagi kod sabab kelib chiqqani, ehtimoliy yechim usuli
ham ko’rsatilgan.
05
Ingliz tilini bilmasangiz ham bu holatda muammoga yechim
topa olasiz. Yo’li oson: xato matnini ko’chirasiz,
tarjima qilasiz va aytilgan sabablarni bartaraf
qilishga harakat qilasiz.
Google
Translateda
Ko’pchilik shoshilish sababli xato matniga e’tibor bermay
muammoga yechimni boshqalardan so’rashadi. Shunday
paytda odatda ularga kodga “yaxshiroq qarang” deymiz.
Huddi “Qirol sher” multfilmidagi Rafiqi kabi...
06
Avval mustaqil
izlanib ko’ring
Biron kursda o’qiyotgan bo’lsangiz, muammoni hal qilish
uchun o’quv materiallaringizni qayta ko’rib chiqing. Sizdagi
masala materiallar ichida bo'lmasa, Googledan qidirib
ko’ring. Biron guruhda savol yozishdan oldin mana bu
savollarga javob bering.
Mustaqil izlanishlaringiz qanday natija berdi
Topgan yechim usullaringizda nima ishlamadi
Umuman olganda muammoni hal qilish uchun nima
amallar bajardingiz?
07
Bu savollarga aniq javoblaringiz bo’lmasidan guruhda savol
yuborishga shoshilmaganingiz ma’qul. Mustaqil yechim
topishga harakat qilmasdan guruhdoshlar aytgan tayyor
javoblarga odatlansangiz, bu odat sizga keyinchalik ko’p
pand beradi.
Biron muammo chiqsa, to’g’ridan-to’g’ri guruhga
yubormang, avval biroz mustaqil mehnat qiling. Ko’p
vaziyatlarda savol so’rashga ehtiyoj qolmasligi ham mumkin.
08
Imlo xatolarsiz yozing
Ko’chada biron kim bilan ko’rishganingizda avval uning
ko’rinishiga qarab ichingizda qandaydir tasavvur paydo
bo’ladi. Did bilan kiyingan, kiyimlari ozoda bo’lsa, birinchi
taassurot yaxshi bo’lishi mumkin. Yirtiq yoki yuvuqsiz
kiyimda, o’ziga qaramagan odam bilan ko’rishganda esa
birinchi taassurot salbiy bo’lishi ehtimoli baland.
Yozma muloqotda esa imloga qarab birinchi taassurot
farqli bo’lishi mumkin. Imlo xatosiz yozish savolga javob
olishingiz imkonini ko’payishini kafolatlamasada, imlo
xatolarga to’la xabar sizning “minusingizga ishlashi”
mumkin.
09
Biron matndagi imloning to’g’riligida ikkilanadigan
bo’lsangiz,
yoki
kabi onlayn
xizmatlardan foydalanishingiz mumkin. Shu bilan birga
imloga oid bilimingizni tekshirib, doimiy oshirib borish uchun
kanali ham qo’l kelishi mumkin.
matn.uz
savodxon.uz
Kitob - ilm manbai
10
Shaxsiy xabarda savol
so’rashda ehtiyot bo’ling
O’rganuvchilarga foydali bo’layotgan Telegram yoki YouTube
kanal yurituvchilarni ko’rgan bo’lishingiz mumkin. Turli
Telegram guruhlarida guruhdoshlar savollariga beminnat
javob berib yordamlashayotgan ko’ngillilar ham bor.
Tashqaridan qaraganlarda bu odam xohlagan vaqt ixtiyoriy
masalada yordam berishi mumkin degan taassurot qolishi
mumkin.
Lekin shu vaziyatda doim yodda tutish kerak bo’lgan nozik
nuqta bor - bu ishni ular bo’sh vaqtlari bo’lganda yoki
umumiy guruh hamjamiyati rivojlanishi uchun qilishadi
11
Shaxsiyda so’ralgan savolda faqat bir kishining xos masalasi
muhokama qilinadi. Guruhdagi muhokamadan esa
boshqalar ham o’qib o’zlariga foydali ma’lumot olishlari
mumkin.
Shuning uchun savolingizni shaxsiyda emas guruhda
so’rang. Shaxsiy xabarda savol berishdan boshqa yo’li
bo’lmagan holda esa guruhda yordam berayotgan odamdan
oldindan so’rang: shaxsiyda yordam berishga imkoni bormi
yoki suhbat guruhda davom ettirilishini ma’qul ko’rishadimi?
Yana bir muhim masala:
Guruh yoki shaxsiyda qarshi jins vakili dasturlashda
qiynalayotganda savol so’rashidan maqsad - savoliga javob
olish, tanishish emas. Masala yechimini topishda yordam
bering va ortiqcha suhbatdan tiyiling. Bu turli xil
tushunmovchiliklar va noqulay holatlarning oldini oladi.
12
Guruhlardagi qoidalar, ko’p eslanadigan masalalarni
qadalgan xabarda (pinned message) joylashtirish odat
tusiga kirgan. Guruhga yangi qo’shilganingizda yoki
birmuncha muddat tanaffusdan so’ng qaytganingizda
“pinned message”ni o’qib chiqing. Unda qanday qilib
savolga tezroq javob olish, muloqotdagi qoidalar va shu kabi
masalalar beriladi. Ulardan xabardor bo’lishingiz savolga
javob olish ehtimolini ko’paytiradi.
Telegram guruhda topiklar ochilgan bo’lsa, qoidalar yoki
e’lonlar yoziladigan alohida topikdagi xabarlar bilan tanishib
chiqing. Bular bilan tanishish sabab eng kamida bilmasdan
guruhdagi biron qoidani buzishning oldini olgan bo’lasiz.
Yuqoriga qaramang
13
Muhokamaga mos
topikdan foydalaning
Telegramdagi yangi mavzu (topic) yaratish imkoniyati
guruhlardagi xabarlarni tartiblashga katta yordam berdi. Endi
guruhda xabarlashish davomida tog’dan-bog’dan kelgandek
tuyuladigan har xil mavzular orasidan o’zingizga keragini
qidirib o’tirmaysiz. Masalan, rus tilidagi bir
topiklar yordamida yaxshi tartiblangan.
JavaScript
hamjamiyati guruhi
14
Topiklarga bo’lingan Telegram guruhda savol so’rashda mos
topikdan foydalaning. Guruh a’zolari savol tahminan nima
bo’yicha ekanligini anglay olishadi va guruhdagi xabarlar
ham tartibli bo’ladi.
Mohirdev kurslarida ham guruhda kurs bo’limlariga mos
topiklardan foydalanamiz. Siz ham kurslarimizdan birida
o’qiyotgan bo’lsangiz, savollaringizga tezroq javob bera
olishimiz uchun mos topiklarda yozishingizni so’raymiz.
15
Yozishmalar madaniyatiga
rioya qiling
Guruhdagi xabarlar orasida salom-aliksiz, skrinshot bilan
“nima qilish kerak” degan xabar kelsa, guruhdoshlarga
hurmatsizlik, ular javob berishga majburdek muomala
qilingan bo’ladi.
Savolga javob olish siz uchun muhim, guruhdagilar uchun
emas. Shuning uchun yozishmalarda guruhdagilarni hurmat
qilib yozing. Oddiygina salomdan boshlab, savol oxirida
"Oldindan rahmat" iborasini qo'shish ham kichik bo'lsada
savolga javob olishingizda yordam beradi.
16
Savoldan so’ng darhol “???”, “alo”, “shuncha odam bor, hech
kim bilmaydimi ”, “Begzod aka, %#$@” kabi xabar
yuborish tavsiya qilinmaydi. Mavzuni bilgan va yordam bera
oladigan odam imkon topishi bilan javob qoldiradi.
Masalaga javob olganingizdan keyin esa “yo’q bo’lib
qolmang”. Javob bergan odamga rahmat ayting. Javob
topishda guruhdagi bir nechta odam yordam qilgan bo’lsa,
umumiy minnatdorchilik bildiring.
17
Meta savollar bermang
Mana bu yozishmani
o’qib chiqing. Suhbatda
nima muammo bor deb
o’ylaysiz?
Suhbat uzayib
ketmaganmi? Nima
deysiz?
Assalomu alaykum.
Va alaykum assalom.
Uzr, vaqtingiz bor edimi?
Ha.
Bir savol bersam maylimi?
Labbay?
PHP Laravelda ishlaganmisiz?
Ha, ishlaganman.
Onlayn do’kon saytini
tuzayotgandim. Bir qismida
qarashib yubora olasizmi?
Savatchaga tushgan mahsulotlar
jami summasini hisoblashda ikki
karra summani ko’rsatyapti. Nima
sababdan bo’lishi mumkin?
Katta ehtimol bilan takrorlanishda
xato bo’lgan. debugger bilan
tekshirib ko’ring…
18
Muammoni payqagan bo’lsangiz kerak. Namunadagi
suhbatda bittada aytilishi mumkin bo’lgan xabar bir nechta
xabarga bo’linib, har biri uchun ikkinchi tomonning javobini
olgandan keyingina yuborilgan. Ba’zida bu kabi bo’lib-bo’lib
yuboriladigan xabarlar oxiriga yetmasdan suhbatdoshingiz
keyingi xabarlarga javob bermay qolishi ham mumkin.
Nometa.uz saytida bu mavzu batafsil ochib berilgan. Meta
savollar bermang. Xabaringizni qisqa-lo’nda ko’rinishda
yuboring. Vaqtingizni tejang.
Endi esa mana bu
namunani* ko’ring.
Oldingisi bilan orada
sezilarli farq bor.
*Bu namunada ba’zi boshqa
masalalarga oid kamchiliklar
bor. Ularni keyingi
bo’limlarda qamrab
olganmiz.
Assalomu alaykum. PHP/
Laravelda tuzayotgan onlayn
do’kon loyihamda bir masalada
xato chiqyapti. Savatchaga
tushgan mahsulotlar jami
summasini hisoblashda ikki karra
summani ko’rsatyapti.
Va alaykum assalom. Katta ehtimol
bilan takrorlanishda xato bo’lgan.
debugger bilan tekshirib ko’ring…
19
Ovozli xabar yubormang
Ovozli xabar shu qadar ko’pchilikni charchatdi-ki, hatto
Telegram premium tarifida ovozli xabarni qabul qilmaslik
imkoniyatini chiqardi. Bundan hamma ham ovozli xabarda
gaplashishni ma’qul ko’rmaydi deb xulosa qilsak bo’ladi.
Savolingizni matn ko’rinishida yuboring, ovozli xabar emas.
Ovozli xabar ko’rinishida savol so’raganda muhim
masalalarni esdan chiqarishingiz, atrofdagi shovqin sabab
ovozingiz eshitilmay qolishi yoki xabaringizni umuman
e’tiborga olmasliklari mumkin.
20
Fikrini yozma xabarda erkin ifoda qila olish ham
dasturchidan kutiladigan muhim qobiliyatlardan biri
hisoblanadi.
Ovozli xabarni suhbatdoshlardan ruxsat olgan holda
yuborish mumkin. Shunda ham fikringizni qisqa-lo’nda
ifodalashingiz shart.
21
Katta harflarning
o’zidagina yozmang
Mana bu emojining ma’nosini bilsangiz kerak?
Ingliz tilidagi “Okay” so’zi shunday qo’l ishorasi bilan
ko’rsatilishi odat tusiga kirgan. U odatda ijobiy, “yaxshi”,
“kelishdik” so’zlari ma’nosida keladi. Lekin Fransiyada bu
qo’l ishorasi “nol” yoki “qiymati yo’q” ma’nosida ham
foydalanishi mumkin.
22
Yozma muloqotda ham o’ziga xos ma’no bildiruvchi amallar
mavjud. Ulardan biri - katta harflarning o’zida yozilgan matn
baqirish ma’nosini bildirishi. Ko’proq katta yoshdagi telefon
foydalanuvchilarida kuzatilsa ham bu yozish usulini
boshqalarda ham ko’rish mumkin.
Hech qachon faqat katta harflarda yozmang. Boshqalar sizni
baqirib gapiryapti, deb tushunib noqulay holatga
tushishingiz mumkin.
23
Savolni bitta xabarda
yozing
Savolingizga tezroq javob olish uchun har doim savolni bitta
xabarda ifodalang. Bo’lib-bo’lib yozishlar vaqtdan
yutkazishga olib keladi. Ba’zida esa suhbatdoshlaringizning
asab tolalari kamayishiga sabab bo’lasiz.
Xabar yozayotganda bilmasdan yuborib qo’ymaslik uchun
avval Telegramdagi “Saved messages” yoki biron matn
faylida to’liq yozib olganingiz ham ma’qul.
Assalomu alaykum
Menda savol bor edi
Yordam kerak
CSS ishlamayapti
Assalomu alaykum. Savol bor
edi. CSS kodlarim ishlamayapti,
sababini bilmayapman
24
Savolni to’liq
mazmunda yozing
Savolni shunday so’rang-ki, javob yozmoqchi bo’lgan odam
“to’liqroq tushuntiring” demasin. Iloji boricha savolni to’liq va
aniq qilib so’rang.
React ishlamayapti
Assalomu alaykum. Reactda
APIga murojaat qilib olib
kelingan ma’lumotlarni
jadvalda ko’rsatishda mana
bu xatoni ko’rsatyapti...
25
Savolni yuborishdan oldin
tekshirib oling
Savolni yozgandan so’ng “yuborish” tugmasini bosishga
shoshilmang. Biron muhim nuqtani yoddan chiqargan yoki
o’zingizni noqulay holatga qo’yadigan imlo xato qilgan
bo’lishingiz mumkin. Xabaringizni qayta o’qib chiqing.
26
Avval maqsadni keyin
muammoni ayting
Tasavvur qiling: sahifada bor mahsulotlarni filtrlamoqchisiz.
Filtr qiymatlarini o’zgartirganingizda natijalar sahifalanishi
(pagination) yangilanmayapti. Yozgan kodingizdagi
sahifalashga oid funksiya argumentida xato chiqdi. Shu
masalani guruhda “funksiya argumentidan foydalanganda X
xato chiqyapti, nima qilsam bo’ladi” ko’rinishida so’rashingiz
mumkin.
27
Bu savolga javoban sizga “aynan qaysi funksiyada”,
“qanday ishlashi kerak edi”, “kutilgan natijadan qanday farq
qilyapti” ko’rinishida savollar kelishi mumkin. Sababi -
guruhdagilar sizdagi vaziyat haqidagi to’liq ma’lumotga ega
emaslar.
Siz koddan nima natijani kutayotganingizni ochiqlasangiz,
muammoga yechimni tezroq topa olishingiz mumkin
bo’ladi. Guruhdagilar ham bir savolning o’zida holat haqida
to’liq ma’lumot olib sizdagi mavjud kodni to’g’rilashni yoki
undanda oson, puxtaroq kod yozish usulini taklif qilishlari
mumkin bo’ladi.
28
Hashtag qo’ying
Muhokama guruhlarida odatda odam ko’p bo’ladi.
Hammaning o’zi qiziqqan mavzusi bor, o’ziga ma’qul
masalada yozadi. Yuzdan ortiq odam bor guruhda esa xabar
ko’pligidan yozgan savolingiz xabarlar orasida ko’rinmay
o’tib ketishi mumkin.
Xabaringizni guruhda ko’p ishlatiladigan heshteg (#) bilan
to’ldirishingiz esa e’tiborni tortishga yordam bera oladi.
Masalan, guruh a’zolarida bo’sh vaqt bo’lsa, “biron savol
bo’lsa, javob berib ketay” deb kirganida #savol bilan
belgilangan xabarlarga birinchi o’rinda e’tibor qaratishi
mumkin.
Assalomu alaykum.
JavaScriptda funksiya bilan
ishlayotganimda muammo
chiqyapti. Funksiyaga berilgan
ikkinchi argument qiymat
olmayapti.
Assalomu alaykum.
JavaScriptda funksiya bilan
ishlayotganimda muammo
chiqyapti. Funksiyaga berilgan
ikkinchi argument qiymat
olmayapti.
#savol
29
Guruhlarda #savol heshtegidan tashqari boshqa bir nechta
ko’p uchraydigan heshteglar bo’lishi mumkin. Texnik
masalalar uchun #texnik, takliflar uchun #taklif, biron
shikoyat bo’lsa, #shikoyat ko’rinishidagi heshteglardan
foydalansangiz bo’ladi.
Mohirdev hamjamiyati va yopiq muhokama guruhlarida ham
heshteglardan to’g’ri foydalanishingiz biron muammoga
tezroq e’tibor qaratish yoki savolingizga tezroq javob olishda
yordam beradi.
30
Kontekst haqida yetarlicha
ma’lumot bering
Savolni to’liq so’rash uchun, albatta, kontekstga e’tibor
berish kerak. Sizdagi savol aynan qaysi manba, nechanchi
bo’lim, qaysi video bilan bog’liqligini savolda ko’rsatib o’tib
ketishingiz javob beruvchi savolni to’liqroq tushunishiga
sabab bo’ladi. Qanchalik kengroq yoritib bersangiz, natija
ijobiy bo’lishi ehtimoli oshadi.
YouTubedan ko’rib dastur tuzayotganingizda xato chiqdimi?
Videoning xatoga oid qismi vaqtini belgilab linkini ulashing.
Maqolada taklif qilingan kutubxona ishlamadimi? Maqolaga
havolani ham savolga qo’shib yuboring.
31
Mohirdevda o’qiyotgan o’quvchilardan savol yoki texnik
muammo chiqqanida darsning saytdagi tartib raqamini yozib
xabar yuborishlari kifoya.
Python videosini ko’rdim,
kodim o’xshamadi
Assalomu alaykum.
3-bo’limdagi 6-video “Python
funksiyalari” videosini ko’rdim,
lekin yozgan kodlarim
ishlamadi
#savol
32
Mas’ul odamni tag qiling
Tag qilish yoki belgilashni bu xabar guruhda mavjud aynan
ma’lum bir insonga murojaat qilish, deb tushuniladi. Xabar
yakunida guruhda eng faol yoki ko’p yordam berib boradigan
odamni belgilab xabar yozsangiz, xabar belgilangan odam
uchun alohida ajratib ko’rinadi.
Muhim: Ochiq ommaviy guruhlarda biron kimni belgilab
savol so’rasangiz, bu ular javob berishga majbur ekanligini
bildirmaydi. Agar javob kelmasa, qayta-qayta belgilamaslikni
tavsiya qilamiz.
Mohirdevdagi yopiq guruhlarda mentor yoki o’quv bo’limiga
mas’ullarni belgilab yozsangiz, tezroq yordam qila olamiz.
Assalomu alaykum.
CSS kodlarimdagi positionga
oid qismi ishlamayapti,
sababini topolmayapman
Assalomu alaykum.
CSS kodlarimdagi positionga
oid qismi ishlamayapti,
sababini topolmayapman
@mentor
#savol
33
Muammoga oid (!) kodni
skrinshot qilib yuboring
Dasturlashda kodga oid masala haqida savol so’raganda
savolga qo’shimcha kod holatini ham biriktirigan ma’qul.
Lekin…
Rasmdagi kabi kod suratlarini ko’rganmisiz? Duch kelgan
masalangizga oid kodni guruhga yuborayotganda telefon
kamerasida olingan, ekranda telefon va o’zingizning aksingiz
ko’rinib turgan rasmni yubormang. Hech qachon.
Buning uchun maxsus skrinshot oluvchi dasturlar bor.
Masalan,
Kodni o'ziga xos stildagisini rasm
sifatida olish uchun
xizmati ham bor.
Lightshot.
Carbon
34
Endi sarlavhadagi “muammoga oid” iborasiga e’tibor
qaratsak. Koddagi xatoni topish uchun undagi muammoga
oid qismnigina skrinshot qilib yuborish kerak.
Saytning mahsulotni savatga qo’shish funksiyasida
muammo chiqqan bo’lsa, faqat shunga oid kodni to’g’ri topib
o’shani skrinshot qiling. Mahsulot sahifasining to’liq kodi
kerak emas.
Muammo aynan qaysi fayldagi qaysi kod sabab kelib
chiqyapti? Muammo sabab qaysi funksional noto’g’ri
ishlayapti? Shularni aniqlay olishingiz - yechimni topish
tomon qo’yilgan katta qadam.
Muammo sababi, unga aloqador aniq bir nuqtani topa
olyapsizmi, demak dasturchiga kerak bo’lgan bir yaxshi
qobiliyatingizni rivojlantirolyapsiz.
35
Kodni to’g’ri formatda
yuboring
Savol so’rashda to’g’ri olingan skrinshot qaysidir darajada
holatni tushunishga yordam beradi: syntax highlighting,
tabulyatsiya mavjud, kod o’qishga oson. Lekin afsuski,
skrinshotdagi kodni ko’chirib olib bo’lmaydi. Kodni ishlatib
ko’rish uchun qaytadan yozib chiqish kerak.
Kodni Telegram guruh yoki boshqa biron joyga yuborsangiz,
uni “monospace” yoki “preformatted text” ko’rinishiga
keltirib oling. Kodni o’qish va ko’chirish oson bo’ladi.
Demak, muammoning yechimi uchun kodni yuborish kerak
bo’lsa, mana bu kombo kerak bo’ladi
yoki
da olingan skrinsho
“Preformatted” ko’rinishga keltirilgan kod
Lightshot
Carbon
Lekin bundan ham yaxshiroq kombo bor. U haqida keyingi
bo’limda ma’lumot berganmiz.
36
“Sandbox”lardan
foydalaning
Kodni skrinshotda yuborganingiz yaxshi. Undagi bir
kamchilik - skrinshotdagi kodni tahrirlash imkoni yo’q. Kodni
“preformatted” holatida yuborsangiz ham uni fayl ochib
ko’chirib o’tkazish, zarurat bo’lganda tahrirlay olish va
loyihani ishga tushirish kerak. Bu yana qo’shimcha ish.
Boshqalar sizdagi vaziyatni ham to’liq tushunib, ham o’zlari
aniq bir taklif bera olishlari uchun onlayn interfaol kod
muharrirlaridan foydalanganingiz yaxshi. Ularni ingliz tilida
“sandbox”, ya’ni qum o’yingohi deyishadi.
37
Nega aynan “sandbox”? Qum o’yingohida xohlagan
narsangizni yasab ko’rishingiz mumkin. U joyda yasagan
narsalaringizni o’zgartirsangiz, buzib tashlasangiz ham
buning atrof-muhitga ta’siri bo’lmaydi.
Huddi shu usulda kod yozish uchun “sandbox”larda ham
ixtiyoriy bir loyihani tuzib uni boshqalar bilan ulashish
mumkin. Muammo sababini topish uchun xohlagan odam
loyihani o’ziga nusxalab kodni erkin o’zgartira oladi, ishga
tushirishda qiynalmaydi. Interfaol holatda ulashilgan
loyihadagi muammo sababini topish osonlashadi.
Turli dasturlash muhitlari uchun oʻziga mos "sandbox"lar
mavjud
(pen.new manzili bilan yangi pen ochish
mumkin
Codepen
Codesandbo
Repl.i
JSfiddle
Eslatma: Loyihangizdagi hamma bor kodni emas,
muammoga aloqador bo’lgan joylarnigina “sandbox”ga
joylang. Imkoni bo’lsa, muammoli qismining izolyatsiya
qilingan variantini. Muammo JavaScriptdami? CSSdagi
stillar kerak bo’lmasligi mumkin.
38
Yordam emas maslahat
so’rang
Muammo yechimini topish siz uchun muhim, boshqalarga
emas. Shuning uchun biron xatoning sababini topishdagi
yordamdan so’ng u kodni siz uchun yozib berishlarini,
kompyuteringizga onlayn bog’lanib to’g’rilab berishlarini
kutmang. Bu kabi holat juda noyob va shu ko’rinishda
yordam bergan odam o’z himmati sabab shunday qilgan
bo’ladi. Unga odatlanib qolmang.
Kodni o’zingiz to’g’rilashingiz mavzularni yaxshiroq eslab
qolishingizga yordam beradi.
39
Toksik bo’lmang
“Toxic” ingliz tilidan zaharli yoki zararli, yoqimsiz ma’nosida
tarjima qilinadi. Yuzma-yuz muloqotda odam so’zlarni
tanlab-tanlab, suhbatdoshining hurmatini qilib muomalada
bo’ladi. Onlayn muloqotda esa suhbatdosh uzoqda bo’lgani
uchun ba’zilar muomalada chegaradan chiqadi, boshqalarga
hurmatsizlik qiladi.
Masalan, dasturlashga yangi bo’lgan biron odam guruhda
xato gapirib qo’ysa, darhol uni yerga uradi: “o’zi
o’qiganmisiz”, “adashib qolmaganmisiz”, “kalla qo’ydizu”
deb piching qilishi, sarkazm yoki mazax ko’rinishidagi rasm,
GIF bilan muomala qiladi.
40
Siz unday qilmang. Toksik bo’lmang.
Sohaga yangi bo’lganlar tajribasi borlar biladigan ko’p
narsadan xabardor bo’lmaydilar. Ular muloqotda, savol
so’rashda xato qiladigan bo’lishsa, yaxshi muomala bilan
tushuntiring. Izlanayotgan masalalarini hal qilish uchun
yo’nalish bering, yordam qiling.
Agar sizga toksik muomalada bo’lishsa, eng yaxshi usuli
e’tibor bermang. Toksik odamlar sizning asabingizni o’ynab
“maza qilishadi”. Sizning esa kayfiyatingiz buzilgani qoladi.
41
Guruhdoshlarga yordam
bering
Guruhda biron kim savol bersa va unga javobni bilsangiz, oq
otdagi qahramon kelib javob yozishini kutmang. O’zingiz
ham yordam bering.
Bu fikringizni yozma ko’rinishda to’g’ri ifodalash bo’yicha
tajribangizni oshiradi. Shu bilan birga sohangizdagi
hamjamiyat (community) ichida hurmatga erishasiz,
networkingni kuchaytirasiz.
42
Sabrli bo’ling
Yuqoridagi barcha talablarga mos ravishda savol
berganingizdan so’ng javobni sabr bilan kutish kerak. Qayta-
qayta bir xil savol yuborish yoki yuborilgan savolga javob
tarzida “?” yuborishdan tiyiling. Har kim o’z vaqtidan kelib
chiqib javob yozishini inobatga olsak, bu holatda kutish
kerak bo’ladi.
Mohirdevdagi kurslarimiz muhokama guruhida ish kunlarida
24 soat ichida javob berishga harakat qilamiz.
43
Javob topilgani haqida
xabarlang
Guruhda savol berganlar odatda boshqa guruhlarda ham
shu savolni yuborgan yoki parallel o’zi mustaqil izlanayotgan
bo’ladi. Savolga javob yozilmagani uchun u savolni hali ham
ochiq deb bilib unga javob yozishlari ham mumkin. Javob
yozilganda esa savol egasi “rahmat, javobini topgandim”
deydi. Javobni yozgan odam vaqti va mehnatini qaysidir
darajada bekor ketkazgandek holatga tushadi.
Bunday vaziyatning oldini olish uchun savol bergan odam
javobini topishi bilan o’z savoliga javoban (reply) muammo
yechimini topganini xabarlashi kerak.
44
“Bo’ldi, javob topildi” deyishning o’zi yetarli emas. Savol
egasi topilgan yechimni ham guruhda yozib qoldirgani
ma’qul. Keyinchalik biron kimda shunga o’xshash savol
chiqqanda shu xabar yordamida muammosini yecha oladi.
45
Rubber duck debugging
Qo’llanma avvalida aytilgan “to'g'ri savol berish javobni
topishning yarmiga teng” degan gapga qaytamiz.
Hozirgacha ko’rgan bo’limlaringizda savolni to’g’ri tayyorlab
javob beruvchi uchun tushunarli bo’lishiga oid tavsiyalar
berildi. Tavsiyalarga amal qilgan holda savolingizga tezroq
javob olishingiz mumkin.
Shu bilan birga siz boshqalarning javoblarini kutmasdan
o’zingiz ham muammoni hal qila olishingiz mumkin. Buning
uchun “rubber duck debugging”, ya’ni rezina o’rdakcha
yordamida xatoni topish usulidan foydalana olasiz.
46
Rubber duck debugging nima?
Bu odatda koddagi sintaktik emas mantiqiy xatoni topishda
qo’l keladigan usul. Bu usulda o’zingizdagi vaziyatni jonli
odamga emas, balki rezina o’rdakchaga tushuntirasiz. Har
bir qator kodni o’qib “bu kod falon ishni bajaradi, natijasi
mana bunday bo’ladi” deb o’rdakka gapirib berasiz. Har bir
qatordagi koddan nima kutganingiz va natija kutilganidan
qanday farq qilayotganini aytasiz.
O’qilishidan g’alati holat, to’g’rimi? Lekin bu ishlaydigan usul.
Sababi esa oddiy. Kod yozganimizda u qanday ishlashi
kerakligini miyada o’zimizning xulosamiz bo’ladi. Lekin u xato
bo’lishi mumkin. Masalan, loyihamizdagi biron kod haqida
“bu kod kino haqidagi fikrlarni olib keladi va davomidan shu
fikrlarni tartiblab ko’rsatiladi” degan tasavvurimiz bo’ladi.
Aslida esa biz kodni noto’g’ri yozgan bo’lib chiqishimiz
mumkin.
Har bir qatorni shoshilmasdan, boshqa odamga (o’rdakka)
aytib berish davomida e’tibordan qochirgan kodimizdagi
xatolikni topa olamiz.
Batafsil ma’lumot uchun
videosini
tavsiya qilamiz. 3 daqiqada qisqa-lo’nda tushuntirilgan.
“The Rubber Duck story”
47
Hujjatlashtiring
Uchratgan muammongizga yechim topish jarayonida har bir
qadamni hujjatlashtirish tavsiya qilinadi.
Yozgan dasturingizdan kutilgan natija qanday edi? Kod
qanday ishlashi kerak edi
Qanday natija oldingiz? Kutilgan natijadan qanday farq
qilyapti
Muammoni hal qilish uchun sinab ko’rgan har bir
usulingiz haqida batafsil ma’lumot
Yechim bo’lishi mumkin bo’lgan kodni qaysi
manbadan oldingiz
Sinab ko’rgan usulingiz qanday natija berdi?
48
4. Qaysi usul muammoga yechim bo’ldi? Boshqa usullardan
nimasi bilan farq qildi?
Bu ish birmuncha vaqtingizni oladi, to’g’ri. Lekin uzoq vaqtda
oladigan foydangiz ko’proq tosh bosishi mumkin
fikrlaringizni tushunarli ko’rinishdagi matnga o’tkazdingi
shunday yoki shunga o’xshash muammoga uchraganda
qaytadan internetdan qidirmaysi
ishga kirishdagi suhbatda texnik tomondan muammoli
bo’lgan vaziyat so’ralganda sizda tayyor javob bo’ladi.
Bu izlanishingizni o’zingizning Telegram kanalingiz va/yoki
sohangizga oid muhokama guruhida yuborishingiz ham
yanada foydali bo’ladi. Masalaning boshqa, yanada
samaraliroq yechimini topishingiz mumkin. Hamjamiyat
uchun foydali ma’lumot qoldirayotgan ham bo’lasiz.
49
So’ngso’z
Bu qo’llanmada yillar davomida yig’ilgan tajribalar asosidagi
tavsiyalar berildi. Umid qilamizki, tavsiyalarga amal qilish
bilan dasturlashni o’rganish, dasturchi bo’lib ishlashdagi
samaradorligingizni sezilarli darajada oshira olasiz.
Aytilganidek bu yerdagi fikrlar tavsiya, buzib bo’lmas qonun
yoki qoidalar emas. Qaysidir vaziyatlarda tavsiyalarga to’liq
amal qilish shart bo’lmaydi. Masalan, bir loyihada
ishlayotgan yoki birga o’rganayotgan yaqinlaringiz guruhida.
U guruhda biz tavsiya qilgan ba’zi masalalarni qoldirib tursa
bo’ladi.
Tavsiya qilingan usullarning qaysi birini va qachon tashlab
o’tish mumkinligini esa vaqt o’tishi, tajriba bilan o’rganasiz.
Bu qo’llanmada yillar davomida yig’ilgan tajribalar asosidagi
tavsiyalar berildi. Umid qilamizki, tavsiyalarga amal qilish
bilan dasturlashni o’rganish, dasturchi bo’lib ishlashdagi
samaradorligingizni sezilarli darajada oshira olasiz.
Aytilganidek bu yerdagi fikrlar tavsiya, buzib bo’lmas qonun
yoki qoidalar emas. Qaysidir vaziyatlarda tavsiyalarga to’liq
amal qilish shart bo’lmaydi. Masalan, bir loyihada
ishlayotgan yoki birga o’rganayotgan yaqinlaringiz guruhida.
U guruhda biz tavsiya qilgan ba’zi masalalarni qoldirib tursa
bo’ladi.
Tavsiya qilingan usullarning qaysi birini va qachon tashlab
o’tish mumkinligini esa vaqt o’tishi, tajriba bilan o’rganasiz.
Dasturlash olamidagi sarguzashingizda omad va zafarlar
tilaymiz. Qo’llanmadagi fikrlar xayrli va barakali ishlaringizda
qo’l keladi, deb umid qilamiz.
Bu qo’llanma haqidagi fikr, tavsiya va takliflaringizni
intiqlik bilan kutamiz.
mana bu
so’rovnomada
Hurmat bilan
Mohirdev
50
Copyright 2023
Dasturlash bo’yicha
savol-javob kodeksi v1.0
Dostları ilə paylaş: |