Dasturlashni o‘rganamiz — qanday?

"… mamlakatimizdagi barcha dasturlashni o‘rganishi kerak, chunki u fikrlashni o‘rgatadi"
Stiv Jobs
Bir do‘stim blog — bu bloggerning kundaligi deb yozgan fikriga to‘liq qo‘shilaman. Chunki blog yuritib boshlaganimdan buyon faqat tayyorini iste'mol qilmasdan, o‘zim ham nimalardir yozayapman, yaratayapman, albatta foydasi tegadi deb o‘ylagan narsalarimni boshqalar bilan ulashayapman va qanchadir bundan fahr tuyg‘usini ham tuyayapman.
Boshqalarga ham baham ko‘rishni xohlagan maslahatlardan biri — bu dasturlashni o‘rganing! Kelajakda kim bo‘lmoqchisiz yoki hozirda kimsiz — o‘qituvchi, doktor, savdogar, qo‘shiqchi, dizayner — farqi yo‘q dasturlashni o‘rganing. Chunki bu juda qiziq va foydali mashg‘ulot, buning ustiga yoqtirgan ishingiz uchun yaxshigina pul topishning hech qanday yomon tomoni yo‘q. Qolaversa, kelajak dasturchilar qo‘lida.
Xo‘sh uni qanday o‘rganish eng samarali? Oldimizda quyidagi yo‘llar bor:
- Kitoblardan o‘rganish.
- Video-darslar orqali o‘rganish.
- O‘quv markaziga borib o‘rganish.
- Internetdagi mavjud tekin onlayn kurslar, forumlar va bloglardan o‘rganish.
I. Kitoblardan o‘rganish.
Nafaqat dasturlashni, balki har qanday bilim va ko‘nikmani kitoblar orqali o‘zlashtirish eng qadimgi va samarali yo‘l hisoblanadi. Lekin gap dasturlash haqida ketarkan, vaziyat sal boshqacharoq.
( + )
- Kitobda har bir qilinadigan jarayon batafsil tushuntirilgan.
- Kitobdan istalgan vaqtda istalgan joyda o‘rganish mumkin.
- Kitob muharrirlar tomonidan bir necha marta tuzatilgani uchun xatolar qariyb bo‘lmaydi.
- Kitoblar orqali bir vaqtning o‘zida minglab, millionlab insonlarni o‘qitish mumkin.
- Kitoblarning chop etilishi qanchadir vaqtni talab qiladi, bu orada eng tez rivojlanadigan soha bo‘lmish dasturlashtirish qanchadir o‘zgarib ketadi va vaqt o‘tishi bilan xuddi shu sababga ko‘ra kitobning foydaliligi kamayib ketadi.
- Kitoblar pullik. Ularni chop etish ham anchagina pulga tushadi.
- Kitoblar hajm jihatdan ancha ko‘p va uni o‘qib chiqish ham anchagina vaqtni oladi.
- Siz kitob muallifiga savollaringizni berolmaysiz va u nimani yozgan bo‘lsa, shuni o‘zlashtirasiz, xolos.
- Ona tilimizda dasturlashda foydali kitoblar juda kam, qariyb yo‘q. Masalan, ingliz tilida aynan informatsion texnologiyalar bo‘yicha kitoblar chiqaruvchi "… for Dummies" ("…
ahmoqlarboshlovchilar uchun") to‘plam kitoblarini chiqaruvchi Wiley & Sons, O'Reilly, Rockable Press, SitePoint, Manning Publications kabi mashhur nashriyot uylari mavjud. Ruslar shu kitoblarni qanchadir qismini tarjima qilib rus tilida adabiyotlar bazasini kengaytirmoqda. Men hozirgacha o‘zbek tilidagi birorta kitob bilan dasturlashda biror narsani o‘rgangan insonni uchratmadim.
II. Video-darslar orqali o‘rganish.
Video-darslar orqali o‘rganish aynan shu sohani o‘rganishda eng ko‘p tarqalgan usul hisoblanib, juda ko‘pchilik shu yo‘l bilan “savodini” chiqaradi, desam mubolag‘a bo‘lmaydi.
( + )
- Nima qilishni va qanday qilinishini qadamma-qadam o‘z ko‘zingiz bilan ko‘rganingiz uchun esga qolishi ancha oson.
- O‘rganish ancha samarali va tez.
- Video-darsni yaratish senzuralardan holi oson jarayon.
- Video-darslar orqali millionlab insonlarga o‘rgatish mumkin.
- Darsda qilinganlarini xuddi o‘ziday qilib borsangiz qo‘lingiz ham tabiiy ravishda dasturlashga moslasha boshlaydi.
- Aksariyat video-darslar tekin.
- Video-darslar hajm jihatdan kitoblardan ancha katta (kamida 1-2 GB). O‘zbekistonda internet traffigi hali cheksiz va yuqori tezlikda bo‘lgan hamyonbop tarif yo‘q. Xullas, cho‘ntakka zarar.
- Video-darslarda hamma hol to‘liq qamrab olinmaydi va o‘rganishingiz davomidagi muammoning javobini boshqa manbadan qidirishga to‘g‘ri keladi (masalan internetdan).
- O‘zbek tilida Video-darslar kam. Albatta, kitoblardagi ahvoldan ko‘ra ancha yaxshi. Video-dars yaratuvchi ko‘ngilli vatandoshlarimiz anchagina topiladi. Shulardan, Otabek O‘ktamjon o‘g‘li, Qudrat Eshmetov, Miraziz Axmedov kabi insonlarni keltirishim mumkin. Agar yana kimningdir video-darslarini bilsangiz pastda fikr bildirib qoldirishingizni so‘rayman.
- Video-darsni boshlashda muallif bilan biror savol atrofida bog‘lanib javob olishning iloji borligiga ishonch hosil qiling. Video-dars yaratuvchilar esa ijtimoiy tarmoq yoki boshqa yo‘llar bilan bog‘lanishga imkon qoldirishingiz va savollarga sabr bilan javob berishingiz ma'qul.
- Video-darsni o‘rganish davomida o‘zingiz ham ko‘rsatilayotgan loyihachani qilib ketavering. Ulgurmagan joyingizda videoni to‘xtatib yoki qayta ko‘rib sinab ko‘ravering.
- Agar videoni ko‘rish jarayonida “bunday qilsa bo‘lmasmikin?”, “mana bunaqa qilsa osonmasmi?” degan savol tug‘ilsa, shu zahotiyoq sinab ko‘ring.
- Video-darsni yaratuvchilarga: darsni yaratishdan avval har bir qadamingiz pishiq o‘ylab oling, ushbu dars kimlar uchun mo‘ljallanganligini aniqlab barcha jarayonni shunga moslashtiring va bloknotda darsning qisqacha rejasini tuzing.
( + )
- Bu yo‘l bilan o‘rganishning eng foydali tomoni siz real insondan o‘rganasiz — agar u pedagogik va sohasi bo‘yicha kuchli bo‘lsa, sizning hamma savollaringizga tushunarli va sodda javob bera oladi. “Ustoz ko‘rmagan shogird har maqomga yo‘rg‘alar” deganlariday...
- Bunday darslar aniq vaqt asosida belgilab olinadi. Shuning uchun o‘ziga nisbatan talabchan bo‘lmaganlar uchun bundan yaxshi usul yo‘q.
- O‘qituvchi sizning darajangizni bir sinovdayoq bilib oladi va shunga yarasha sizni o‘qitadi.
- Bunday usulda siz dasturlashni o‘zbek tilida o‘rganasiz.
- Pullik va boshqa barcha yo‘llardan ko‘ra qimmat.
- Bu yo‘l bilan birdaniga ko‘pi bilan 15-20 odamni o‘qitish mumkin.
- O‘quv markaziga borishga, qaytishga vaqtingiz ketadi. Katta shaharlarda bu 1 soat ortiqcha vaqtni oladi.
- Kichikroq shahar va tumanlarda dasturlashni arzigulik darajada o‘rgatadigan kadrlar yo‘q (shu fikrim yolg‘on bo‘lishini juda ham xohlardim).
IV. Internetdagi mavjud onlayn kurslar, forumlar va bloglardan o‘rganish.
Bunday o‘rganishning eng yaxshi tomoni siz ular orqali xohlagan savolingizga xohlaganingizcha javob olishingiz mumkin va buning hammasi tekin! Agar biror tanish dasturchiga “Qanday o‘rgandingiz?” desangiz ularning ko‘pchiligi “Google'dan” deyishadi. Sababi oddiy: ular shunchaki savollariga bog‘liq so‘zlarini qidiruvga berishadi va chiqqan forum, bloglardan o‘qib olishadi.
( + )
- Tekin.
- Universal. Nafaqat dasturlashda — boshqa sohalarni ham shu yo‘l bilan o‘rganishingiz, istalgan savolingizga javob topishingiz mumkin.
- O‘rganish juda oson.
- Agar savolingizga javob topolmasangiz muallifga savol qoldirishingiz mumkin.
- Internet va elektr energiyasining bo‘lishi shart.
- Ingliz va rus tillarini bilishingiz kerak. Lekin bu borada ayrim vatandoshlarimizning mehnati sababli o‘zbek tilida ham foydali narsalarni o‘rganish mumkin. Bulardan, OpenNet.Uz bloggerlar jamoasi saytini va forumini va Ziyouz forumini misol qilib keltirishimiz mumkin. Demak ular tufayli google'da o‘zbek tilidagi qidiruv orqali arzirli natijalarni olish mumkin.
Yozganlarimni o‘qib chiqib qaysi yo‘lni tanlashingizdan qat'iy nazar, unutmang, barcha muvaffaqiyatning zamirida ulkan mehnat va tinimsiz mashg‘ulot yotadi.
Barchangizga barcha sohada omad tilab, hurmat bilan Bahriddin Bahodirovich!
Qaysidir maqoladagi kommentlarda dasturlash uchun matematika kerak emas degan gapga ko'zim tushgandi. Shunga fikrimni ham shu yerga yoza qolay :). Shaxsan man matematikani, aniqrog'i modellashtirish, sonlar nazariyasi, algoritmlar va shu kabilarni bilmagan odamni dasturchi hisoblamayman (shu jumladan o'zimni ham). Hozirgi paytda RAD texnologiyalaridan foydalanib hamma ham «sichqonchadan foydalanib» dastur tuzishi mumkinligi bunday fikrlarga sabab bo'lyapti shekilli. Faqat mantiq bo'lsa yetarli deyilipti, lekin bu yerda matematik bilimsiz mantiqni o'zi hech narsa qilib berolmaydi. C++ ni yodlab olib bir masalani yechib berolmagan odamdan shu masalani og'zaki bo'lsada yechimini ko'rsatib bera olgan odamga talab kuchli bo'ladi har doim. Shu sohani mutaxassislarini tayyorlaydigan katta katta oliygohlarda ham faqat c++ yoki java ni o'rgatmaydi, asosan e'tibor matematikaga bog'liq narsalarga qaratiladi. Bularni bilmasdan faqat tayyor kutubxonalaru boshqa narsalardan foydalanib formaga kontrol tashlab o'tiraveramiz. Mohiyatini tushunmaymiz. Misol uchun «binar izlash», «konechniy avtomat» nima? desam shu yerdagilarni deyarli ko'pchiligi avval google dan «so'rab olmasdan» darrov bir narsa deya olmaydi. Vaholanki dasturlar va dasturlashni asosini shu kabi narsalar tashkil etadi.
shunaqa momentlar bo'lganki hatto o'sha texnologiyani ishlab chiqayotganlar bilan to'g'ridan to'g'ri aloqaga chiqib so'rab o'rganib qilishga ham to'g'ri kelgan