Ko’plab insonlar dasturchi bo’lish uchun nima qilish kerakligini bilishga qiziqishadi. Bunga savolga oddiy yoki variantli javob yo’q albatta


Download 25.62 Kb.
Sana13.12.2022
Hajmi25.62 Kb.
#1000983
Bog'liq
Ko


Ko’plab insonlar dasturchi bo’lish uchun nima qilish kerakligini bilishga qiziqishadi. Bunga savolga oddiy yoki variantli javob yo’q albatta. Ammo ba’zi bir foydali xususiyatlar borki ular allaqachon sizda bor bo’lishi yoki agar yo’q bo’lsa keyinchalik ularni o’zingiz yaratishingiz mumkin. Matematikani bilish kerakmi? Avalambor, keling ba’zi bir miflardan chetlashib fikr yuritib ko’raylik. Ya’ni ba’zi odamlar matematikani bilish dasturlashda eng muhim, matematikani bilmasang sendan hech qanday dasturchi chiqmaydi deyishadi. Shaxsan men o’rtacha dasturchi bo’lgan ko’plab judayam kuchli matematiklarni ko’rganman. Hamda matematik bo’lmagan juda kuchli dasturchilarni ham bilaman. Dasturlash – bu ko’proq dizaynerlikka o’xshash narsa. Bu bilan men bir talay kodlarni qanday qilib yozsa qulayroqligini nazarda tutmadim (masalan, C da shakilli qavsni qayerga qo’ysa qulayroqligi ustida baxs mavjud. Ya’ni if(…) { } yaxshiroqmi, yoki if (…) { } bunisi yaxshiroqmi) Umuman olganda, o’sha qavsni qayerga qo’yishingizning dastur ishlashiga umuman farqi yo’q. dizaynerlik so’zi orqali nazarda tutganim shundaki muammoni hal qilishning “yaxshi” va “yomon” tomonini ajratadigan yaxshigina sezgiga ega bo’lishingiz kerak. Dizaynning ahamiyati nega dizayn? Birinchi marta dastur yozishga o’tirganingizda albatta nima qilish kerakligini qog’ozga rejalashtirib olishga biroz vaqt sarflaysiz. Bu yaxshi albatta. Ammo bu dasturni yaratish davomida unga kichik-kichik xususiyatlarni joyida qo’shib ketishning o’rnini bosa olmaydi. Ammo bir sirni bilib qo’ying. Dasturga kichik-kichik xususiyatlarni joyida qo’shib ketish ba’zida judayam qiyin! Bu avval dasturlash bilan shug’ullanmaganlarga g’alati tuyulishi mumkindir. Ammo muammo shundaki, dasturning ichki arxitekturasi siz yangi kiritmoqchi bo’lgan ma’lumot bilan moslashmasligi mumkin. Misol uchun, keling siz bir oddiy grafikmuhitda tugmachani bir joydan ikkinchi joyga ko’chiridhni xoxladingiz. Agar dastur yaxshi dizaynlashtirilgan bo’lsa bu unchalik katta muammo emas. Agar unday bo’lmasachi? Unda manabu extimoliy natijani ko’ring: tugmaning o’rni uning joylashishining piksellardagi o’lchovi bilan boshqariladi. Barcha tugmalarning o’rinlari sichqonning qaysi tugma ustida bosilganligini aniqlash uchun ichida qattiq kodlangan. Agar bitta tugmaning o’rnini o’zgartirsangiz keyinchalik barcha tugmalarni ham o’zgartirishingizga to’g’ri kelishi mumkin. Yana ham o’rnini, ham xususiyatlarini. Bu albatt judayam katta bosh og’rig’idir. Albatta, tugmalarning o’rnini o’zgartirishning unchalik qiyin bo’lmagan yo’llari haqida bilishingiz mumkindir. Ammo siz dasturingizda tugmalarning o’rnini o’rnini o’zgartira oladigan qilmasdan boshlab yuborgan bo’lsangiz, tamom. Bittagina tugmani siljitganingiz uchun orqaga qaytishingiz va 20 ta yoki undan ko’proq qator kodlarni o’zgartirishingizga to’g’ri keladi (masalan har bir tugma uchun ikki qatordan kod bo’lishi mumkin). Bundan tashqari, agar birorta tugmada xato qilgan bo’lsangiz umuman boshqa natijalarga erishishingiz mumkin. Bu turdagi dasturlash juda ham mo’rt. Boshida ishlashi mumkin. Ammo keyinchalik unga biror o’zgartirish kiritmoqchi bo’lsangiz juda qiynab yuboradi. Har bir tugma bir-biriga hamda dasturchining o’zgartirishlariga bog’liqdir. Yaxshiroq yechim esa tugmalarning joylashgan o’rni va ularning ustiga bosilishi bir-biriga bog’langan bo’lganida bir tugmani o’zgartirishingiz ikkinchisini ham ozgartirishingiz kerakligini bildirmas edi. Dasturingizni yaratishdan avval qanchalik ko’p fikringizni qog’ozga tasvirlashni xoxlasangiz, asosiy kodni yozish shunchalik oson bo’ladi. Bu narsani ilk bor sodda dasturlar yozayotganingizda ham esda tutib albatta amal qiling. Bu osonku deb rejalashtirmasdan ketish kelayotgan foydadan voz kechish degani. Ya’ni siz birinchi dasturingizda qanday muammolar paydo bo’lganligini visual ravishda ko’rishingiz kerak bo’ladi. Sabrning ahamiyati sizga kerakli bo’lgan ikkinchi xususiyati bu sabrdir. Sizning dasturlash kariyerangizda albatta bir necha soatlab vaqtingizni sarflashingizga to’g’ri keladigan qandaydir kichik xatolar qilasiz (masalan biror o’zgaruvchining nomini boshqacharoq qilib yuborishingiz natijasida kompilyator uni boshqa o’zgaruvchi deb o’ylaydi). Bu yomon emas. Chunki hatto eng zo’r dasturchilarda ham bu narsa sodir bo’lgan hamda bo’lib turadi. Tajriba orttirish davomida qanchalik kuchliroq bo’lib boraversangiz, xatoliklaringiz shunchalik o’zingizni hayron qoldiraveradi (ko’pchilik dasturchilarga tanish so’zlar, balkim barcha dasturchilarga. Yo’g’e, shuni ko’rmadimmi? Shuni men qildimmi?) agarda sabrli bo’lib har bir kodni navbat bilan tekshirib chiqishga tayyor bo’lsangiz dasturlash qiziqarli bo’lishiga qaramasdan undan ko’nglingiz sovib ketishi mumkin. Agar dasturchi sifatida to’liq stafkali ish izlayotgan bo’lsangiz sabr mashqlaridan topib bajarib turishingiz kerak. Chunki vaqtingizning juda ko’p qismini kodlar ustida o’tkazasiz. Hattoki boshqa birovlarning xatolarini “ovlab” yurishingiz ham mumkin (hunting bugs – mayda hashoratlarni ovlash). Yuqoridagilarning ta’siri natijasida siz juda kichik ta’sir natijasida siz juda kichik ta’sir qiluvchi mitti detallarni ham payqab oluvchi e’tiborga e’tiborga erishasiz. Hamda o’zingizdan “nimani noto’g’ri qildim?” va “qanday qilib buni test ko’rishim mumkin?” degan savollarni so’raydigan bo’lasiz. Nihoyat, omadingizga muammolarni osnlashtirishga yordam beruvchi judayamko’p uskunalar bor: sintaktik (kodlarni yozishdagi) xatolarni to’g’irlashda kompilyatordan, ishlash vaqtidagi xatoliklarni to’g’irlashda esa debuggerlardan foydalanishingiz mumkin. Dunyo doim ham qorong’u emas barcha vaqtingizni xatolarni “ovlash” ga sarflamaysiz. Aniqlik ahamiyati uchinchi kerakli narsa bu sizning mantiqiy, aniq, mukammal fikrlay olishingizdir. Jarayondagi barcha detallarni aniqlashtirishga va nima qilishini aniq tushunishga xoxishingiz kerak bo’ladi. Bu birqancha ajblanarli natijalarga etishi mumkin. Masalan siz hamma narsani dastur tuzishingiz bilanoq yaxshiroq tushunib olasiz. Masalan shunday bir hikoya borki bir guruh dasturchilar qonun chiqaruvchi organ tomonidan chiqarilgan shtat qonuninning dasturini tuzishayotganida qonun mantig’idagi kamchilikni topishgan. Umuman qarama qarshi ma’nodagi ikki varoq bayonot bo’lib chiqgan! Hech kim uni kompyuter tushinadigan darajadagi soddalashtirilmaguncha payqashmagan. Ammo shu bilan birga barcha mayda detallar kompyuterga butun jarayonni mexanik tarzda qayta amalga oshirish uchun kerak bo’ladi. Muammolarga to’g’ri yondashish (farming Probllems) shu bilan bir vaqtda muammolarni to’g’ri usulda hal qilish qobiliyatiga ega bo’lishingiz va yaxshigina muammo yechuvchi bo’lishingiz ham kerak.
Download 25.62 Kb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling