Assalomu alaykum zamonaviy fikr egasi, mening ismim SaidAbbos va men FullStack Veb 馃捇Dasturchiman, Ammo bugun siz bilan mening yoki sizning qanday dasturchiligingiz haqida emas, Nafaqat dasturchi, balki umuman olganda qanday inson bo'lishimiz haqida gaplashamiz !

Agarda siz oz bo'lsada dasturlash sohasiga qiziqsangiz, mana bu iborani eshitgan bo'lishingiz mumkin:

"Hamma dasturlashni o'rganishi shart, Chunki dasturlash o'ylashni o'rgatadi !"

----Stiv Jobs - Elektronika va zamonaviy texnologiyalar bozoridagi barcha "Tishlangan Olmalar (APPLE)" muallifi. 馃槃

Tahminimcha siz ham o'ylanib qoldingiz, "馃Dasturchi kabi o'ylash qanday bo'larkan o'zi ?" deb.

Aslida gap har qanday muommoning eng samarali yechimini topish haqida !
Aslida gap har qanday muommoning eng samarali yechimini topish haqida !

O'ylaymanki ushbu maqola sizda ortiqcha savollar qoldirmasdan, Sizni hayotning har qanday muommoli vaziyatida dasturchi kabi o'ylab, muommoning eng maqul va samarali yechimini topishga o'rgatadi !

Nega bu juda muhim !?

Muommolarni yechish aslida bu - tug'ma qobilyat. 聽Biz hayotimiz davomida doim qandaydur muommolarni hal qilamiz. Albatta ushbu mavzudagi maqolani o'qiyotgan odam, ancha aqilli va ko'pchilik muommolarini muvaffaqiyatli hal eta olishiga ishonaman ! 馃馃挭馃憤馃槑

Endi aynan dasturchining muommolarni hal etish uslubiga keladigan bo'lsak, Agarda aynan sizda sinalgan uslub yoki muvaffaqiyat formulangiz bolmasa, Mana bunday shaklda ishlab ko'ring, Men ham dasturlashni endigina boshlagan vaqtlarimda aynan ushbu shaklda ishlaganman !鈥嶐煠︹嶁檪锔

鈽濓笍Yangilar uchun muvaffaqiyat formulasi:

  1. Malum bir yechimni sinab ko'ring,
  2. Agar ilk harakat natija bermasa, Boshqacharoq yechimni sinab ko'ring.
  3. Agar baribir natija bermasa, 2-harakatni takrorlang ! 馃槉

鈿狅笍Bunday oddiy formula har qanday muommoning oson va jun yechimi bo'lib ko'rinishi tabiiy. Ammo ishoning bu juda yomon uslub va juda ko'p vaqtingizni so'ramasdan o'g'irlashi mumkin !

鉁匛ng ma'qul yechim formulasi:

  1. Tizimlashgan uslubga ega bo'lish.
  2. Ushbu uslubni amaliyotda to'g'ri foydalanish.

Ko'plab IT kompaniyalar o'rtasida o'tkazilgan so'rovnomalar natijasida ma'lum bo'lishicha:

Aksariyat ish beruvchilar, ishga kelayotgan yangi dasturchilarda eng muhim hislat bu muommolarni yecha olish deb hisoblar ekan.

Muommolarni yecha olish qobilyati hech bir muhokamalarsiz, Dasturlash tillarini bilish, Tahlil qila olish yoki Tizim dizaynini shakllantira olishdan ustunroq qobilyat deb qabul qilingan. Ishni boshlash uchun yetarlicha bilim har kimda ham bo'lishi mumkin, ammo muommoning to'g'ri yechimini ko'rish oddiy ish emas.

"Yosh dasturchilarning eng jiddiy hatosi - Topshiriqlarni to'g'ri bajarishdan ko'ra ko'proq dasturlash tillarining Sintaksisini o'rganishga etibor qaratishganidadur"

鈥 V. Anton Spraul - Yozuvchi, Dasturlash sohasiga oid bir necha kitoblar muallifi !

Har qanday muammo yechimining tizimlashgan uslubi !

"Tizimlashgan uslub" atamasidan qo'rqmang - bu shunchaki aql bilan bilan ishlash iborasining chiroyli qilib yozish shakli ! 馃槀

鈿獳nglab Yetish

Oldingizda turgan muommo aslida nima ekanligini, Natijada sizga nima kerakligini anglab yetishingiz kerak. Biz uchun ko'plab muommolarning yechimi qiyin bo'lib tuyuladi, chunki biz ularni to'g'ri tushunmaymiz.

Aslida muammo mohiyatini tushuna oldingizmi ?

Mavjud muommoni ovoz chiqarib, hech bolmasa o'zingiga oddiy tilda tushuntirishga harakat qiling. Eslaysizmi, sizda ham shunday holat bolgan albatta, Muommoni kimgadur gapirib beryotganimizda suhbatdoshimizdan avval o'zimiz qaysidur avval ko'rilmagan hatoni tushunib qolamiz. Chunki faqat gapirib berganimizdagina muommoga quloq solishimiz mumkin va ongimiz miyyamizning eshitish va anglash qismidan kelgan ma'lumotlarni, Tushunib turgan muommomiz ma'lumotlariga qo'shib ko'z oldimizda shakllantiradi. Natijada biz avval ko'rmagan burchaklarni ham ko'ra boshlaymiz.

Ushbu holat va hissiyot ko'plab dasturchilarga tanish albatta.

Mana nima uchun har qanday topshiriqni avval eshitishimiz, gapirb berishimiz, qog'ozga yozishimiz yoki diagramma shaklida chizishimiz kerak. Ushbu ammallardan so'ng qiyin topshiriqlarni ham oson anglashimiz, tezda bajarishimiz va shu o'rtada chiqishi mumkin bo'lgan muommolarni o'z vaqtida samarali yechishim mumkin boladi.

"Agarda siz nimanidur oddiy tilda tushuntira olmasangiz,demak umuman olganda siz uni tushunmaysiz !

鈥 鈥奟ichard Feynman

Rejalashtirish

Barcha ishlaringizni yoki ma'lum bir topshiriqni bajarish doirasida qilishingiz kerak bolgan amallarni tartib bilan joylashtiring. Hech qachon rejasiz ish boshlamang, Buni unutmaysiz degan umiddaman.Agarda reja tuzushga erinsangiz tartibsiz bajarilgan amallar, ortga va qaysidur nomalum amalga qaytishga ketadigan vaqtingizni o'ylang.

Dasturlash yoppasiga yoki tavvakal qilinadigan ish emas. Miyyangizga aslida nima qilish kerakligini tartib bilan tushunishiga imkon bering. Yaxshi reja tuza olishingiz uchun avval o'ylab ko'ring: "Aslida dasturim x ni kiritganimda Y ni qaytarishi kerak" Demak shu oraliqdagi ammallarni yozib chiqishim va tartibni aniqlashim kerak".

鈽濓笍Rejadagi har bir qism bajarilgach kodlarda izoh(袣芯屑屑械薪褌邪褉懈懈)lardan foydalaning !

聽鈿Dekompazitsiya

Bu juda muhum bosqichlardan biri. Hech qachon muommoni bus butun katta muommo shaklida qabul qilmang. Yaxshisi har qanday ulkan muommoni ham qismlarga bo'lib yechim topgan afzal. Barcha tarkibiy muommochalarni ro'yxat qiling va eng osonidan boshlang. Etibor bering 聽qachonki muommo oddiy yoki yechimi oson bo'lib ko'rinsa demak siz uning javobini yoki javobga yaqinroq varyantni bilasiz. Har bir qismni alohida mustaqil ishlaydigan qilib shakllantiring, Barcha qismlar 聽yakunlangach ularni shunchaki birlashtirish yoki kelgusizda alohida bir qismni tahrirlash unchalik qiyin bolmaydi.

Topshiriqni shunchalik osonlashtiringki uni osonlik bilan yechib kiyin rivojlantirish jarayonida butun tizimni his eta oling.

鈥 V. Anton Spraul

Boshi berk ko'chadan chiqib ketish.

Hozir siz o'tiribsiz va o'ylayapsiz "Buning hammasi qoyilmaqom, ammo hammasi aytiganidek oson bolmasa yoki uddalay olmasamchi ?" deb.

聽Barchasini boshlashdan avval chuqur nafas oling, qo'rqmang bu hislarni hamma dasturchilar ham ko'nglidan o'tkazadi. Hamma gap shundaki muommolarni asabiy holatda emas, zavqlanib yechishni o'rganing.

Yodingizda tuting "Hatto lochinlar ham parvozdan avval qorqishar ekan. Ammo agar bu yengib bolmas narsa bolganda edi hozir bizning olamda g'oliblar bo'lmasdi !"

Umuman olganda qiyin vaziyatdan sizni olib chiqib ketaoladigan 3 amal mavjud:

  1. Nosozliklarni tuzatish (Debugging) - Umumiy topshiriqning hatolik berayotgan qismining har bir qatorini alohida tekshiring va bo'lishi mumkin bolgan har qanday hatoni qidiring. Masalan men Python va PHP dasturlash tillarida ishlayman, Qachonki PHP dasturlash tilida nimadur yozsam doim satr yakunida ";' manashunday belgilarni unutib qoyaman. Agarda dasturim rejadagidek ish bermasa, avvalam bor aynan shu belgilar yetishmaydigan qatorni qidiraman.

    "Debugging sanati shunday tariflanadi "Sen hozir nima yozdingu, yozganing aslida yozishing kerak bolganidan qanchalik farq qiladi ?"
  2. Teskari Yondashuv - Hatoni olib boldingiz endi nima qilasiz ? Butun boshli dasturni qayta ko'rib chiqasizmi ? Yuq albatta, Buning yo'li oson: 聽Shunchaki bir qadam ortga qaytavering toki to'g'ri ishlaydigan nuqtani topmaguningizcha.

    Kerakli nuqtani topganingizdan so'ng yana qadam va qadam olg'a yuring. Bu hozir aytganimdan ham osonroq aslida.
  3. Tahlil Qilish 聽- Sizningcha dasturchining ustozi va eng yaqin do'sti kim ? Kompyutermi ? Yo'q Bu Mo'jizakor Google. Sizning maqsadingiz va topshirig;ingiz qanday bo'lishidan qatiy nazar kimdur allaqachon ushbu muommoning yechimini topgan. Google qidiruv tizimi yordamida osha odamni yoki uning qaydlarini toping. Buni hatto muommoni o'zingiz yechib bolgan taqdiringizda ham qilishni maslahat beraman. Ishonim bundan faqat foydali narsalar o'rganib olasiz.

Amaliyot

Hech qachon bir haftada o'z kasbining ustasi bo'lishingizga umid qilmang. Muommolarning samarai yechimini qisqa fursatda topadigan mtuhassis bo'lish uchun, avval ko'plam muommolarni yechishingiz zarur. Sizning maqsadingizga yetaklaydigan yagona yo'l doim takrorlanadigan 3 qadamdan tashkil topgan:

  • O'zini ruhlantira olish.
  • To'g'ri o'rganish.
  • Amalyotdagi haqiqiy mehnat.

Ohirgi qadam bu huddi chegarasi korsatilmagan while takroriy davomchhisiga o'xshaydi. "Doim bir hil takrorlanadiyu ammo har safar Malaka++ bo'lib ko'payib boraveradi.

Hulosa

Mana haqiqiy dasturchilar muommolarni qanday yengib o'tishini bilib oldingiz.
Bilib qoying topshiriqlarni bajarish qobilyati hammada bor ammo uni butun umr rivojlantirish kerakligini unutmang.

Hato qilishdan va hatolarni to'g'irlashdan hech qachon qo'rqmang, har safar hato qilganingizda va uni to'g'irlaganingizda, o'zingiz uchun foydali nimadur o'rganishingiz aniq. Bilinki nuonnolar va ularning yechimlari bizni rivojlanishga va muvaffaqiyatga yetaklaydi.

鈿ana maqola so'nggida siz uchun chin ko'ngildan aytadigan nima deya olaman:

Hayot bizni harkuni yangidan yangi sinovlar va muammolar bilan siylaydi. Albatta bir kuni hammasi joningizdan o'tishi va nega endi bunchalik ilojsizman deyishingiz mumkin.

Ammo bilib qoying muammolarsiz hayot 聽bu shunchaki hech qachon to'lqinlanmaydigan suvga, hohishingiz bolgan taqdirda ham hech qachon surfer uchub zavq olaolmasdik.

Etiboringiz uchun rahmat doimo sog' va salomat bo'ling !

Ushbu maqola uchun kerakli matereallar Habr.com malumotlar portalidan olindi.