Dasturchilar uchun ko’nikmalar

Dasturchi uchun eng muhim 4 ko’nikmalar

Bugungi kunda juda ko’plab texnologiya, til va platforma tanlovlari mavjudligi evaziga dasturchi sifatida o’zining ko’nikmalarini rivojlantirish uchun vaqtni qayerga sarflashni aniqlab olish juda mushkul.

Ko’pchilik tez-tez qanday qilib yaxshiroq dasturchi bo’lish haqida so’rashadi.

Ko’pincha ular bu savolni vaqtlarini ma’lum bir dasturiy til yoki texnologiyaga sarflashlari kerakmi yoki yo’qmi – shuni aniqlashtirish maqsadida berishadi.

Quyida dasturchilar o’zlashtira oladigan, ularga eng yaxshi martaba imkoniyatlarini beradigan va ularni eng samarali qiladigan muhim va vaqtga bog’liq bo’lmagan ko’nikmalar haqida to’htalib o’tamiz.

#1 Muammolarni hal qilish

Dasturiy ta’minot tuzish bu yuz foiz muammoni hal qilish haqidadir.

Muammolar bo’lmaganda dasturiy ta’minotga ehtiyoj bo’lmagan bo’lardi.

Barcha dasturiy ta’minotlar foydalanuvchining ma’lum bir muammosini hal qilish uchun mo’ljallangan.

Qaysi dasturlash tili yoki texnologiyadan foydalanishingizning farqi yo’q, agar siz muammolarni hal qila olmasangiz, siz dasturiy ta’minot tuzishda eng yashi bo’la olmaysiz.

#2 O’zingizni o’rgatish

Hayotda o’rganishni o’rganishdan ko’ra muhimroq ko’nikma bo’lmasa kerak.

Bu ko’nikma ayniqsa dasturiy ta’minot ishlab chiqarishda juda ahamiyatli, chunki hech bir sohada dasturiy ta’minot ishlab chiqarish sohasidagidek tez o’zgarishlar yo’q.

Siz hamma narsa haqida hamma narsani bila olmaysiz. Hatto siz ma’lum bir freymvork yoki texnologiyada usta bo’lish uchun zarur vaqtni ham investistsiya(sarf qilmoq ma’nosida) qila olmaysiz, chunki hamma narsa o’ta tez harakatlanmoqda!

Aksincha, siz qo’lingizdagi ish uchun kerak bo’lgan bilimni tez o’zlashtirish qobiliyatiga muhtojsiz.

Agar siz dasturiy ta’minot ishlab chiqarishda yuqori martabaga ko’tarilishingizga sabab bo’ladigan ko’nikmaga haqiqatta ega bo’lishni xohlasangiz, o’zingizni o’rgatishni o’rganing.

Bu ko’nikmani rivojlantirishning yagona yo’li uni amalda qo’llashdir. Yangi dasturlash tili yoki texnologiyani o’rganing, garchi uni hech qachon ishlatmayman deb o’ylasangiz ham. O’rganishni o’rganib olganingizdan so’ng qanday tez o’zlashtira olganingizdan o’zingiz ajablanasiz, chunki sizda allaqachon asos ko’nikma mavjud.

Agar siz tez o’zgarayotgan dasturiy ta’minot ishlab chiqarish bozori va texnologiyalariga, hamda ularga bog’liq platformalarga darhol moslasha olsangiz, siz har doim talab qilingan ko’nikmalarga ega bo’lasiz.

#3 Nomlash

Har safar kod yozayotganizda siz narsalarni nomlaysiz. Qachonki siz o’zingiz yoki boshqalar yozgan kodni o’qiyotganingizda, asosan o’sha koddagi narsalarning nomlaridan kod nima haqida ekanligini tushunib olasiz.

Aksariyat hollarda, dasturchilar yozgan koddagi metod, o’zgaruvchi va klaslarning qanday nomlanganiga qarab ularning mahorat darajasini aytib berish mumkin.

O’zi yozgan dasturdagi ma’lumot va konsepsiyalarga yaxshi nom berishda no’noq bo’lgan dasturchi soqov tarjimonga o’xshaydi. Agar siz biror narsani tushunsangizu, uni tushunarli tarzda ifodalab berolmasangiz – sizning tushunishingiz ahamiyatga ega emas, balki bu tushunmaslik bilan barobar.

Bu ko’nikmani rivojlantirishning eng yaxshi yo’li har doimgidek uni amaliyotga kiritish. Tajribali dasturchilar ko’pincha, kodni tushunish uchun o’qiyotganida undagi narsalarni qayta nomlaydi. Biror metod nima qilishini tushunishni boshlasa, o’sha tushunganiga moslab uning nomini o’zgartiradi. Buni ular kodni o’qiyotganida qiladi, unga hech qanday mantiqiy o’zgarish qilmaydi.

Siz narsalarga yaxshi nom berishga ko’proq e’tibor qaratsangiz, bu ishda siz yaxshiroq bo’lib borasiz.

Shuningdek, bu sizning kodingizdagi eng ko’zga tashlanadigan narsa. Kodga qarab turib uning to’g’ri yoki samarali ekanini bilish juda mushkul, lekin uni mutahassis odam o’qisa va tushuna olsa, hulosa qilish mumkinki, siz nima qilayotganingizni bilasiz.

#4 Odamlar bilan ishlash

Bu ko’nikma ro’yhatda oxirgi o’rinda kelyapti, lekin ko’p hollarda siz uni birinchi va eng muhim ko’nikma deb ayta olasiz.

Hamma joyga borsangiz odamlar bor.

Agar siz yolg’iz ishlamasangiz va faqat o’zingiz uchun dasturiy ta’minot ishlab chiqarmasangiz, boshqa odamlar sizni dastur tuzuvchi sifatidagi kariyerangizga ta’sir qiladi.

Asosiy muammo inson aksariyat hollarda mantiqiy emas, balki hissiy yondashadi. Albatta, biz mulohaza qilish qobiliyatimiz bilan maqtanishni yaxshi ko’ramiz, lekin voqeylikda esa, biz qabul qiladigan aksariyat qarorlarga ongdan ko’ra, hissiyotning ta’siri katta.

Bu, siz dasturchi uchun nimani anglatadi? Ya’ni, agar siz boshqa dasturchilar, menejer va hatto mijozlar bilan ham samarali ishlolmasangiz, siz doimiy qiyinchilikka duch kelasiz, garchi sizning g’oyalaringiz qanchalik yaxshi yoki sizning ko’nikmalaringiz qanchalik qimmatli bo’lsa ham.

Umuman olganda, faol bo’lish va dastur ishlab chiqarish jamiyatida ishtirok etish sizning kariyerangizga yordam beradi. Bularni muvaffaqqiyatli amalga oshirish odamlar bilan ishlash ko’nikmangizga to’g’ridan-to’g’ri ta’sir qiladi.

Amaliy ko’nikmalarchi?

Sezganingizdek, bu ro’yhatda biror bir tehnologiya, veb dasturlash yoki mobil dasturlash kabi keng tarqalgan ko’nikmalar haqida hech narsa kiritilmagan. Bu haqda, avvalgi maqolalarimizda tanishishingiz mumkin:Link

Albatta, bir necha tehnologiyalarda yaxshi asosga ega bo’lish juda muhim, ammo u narsalar yuqorida sanab o’tgan 4 ta ko’nikmalarchalik muhim emas.

Agar siz muammolarni hal qila olsangiz, tez o’rgana olsangiz, narsalarni yaxshi nomlay olsangiz va odamlar bilan yaxshi ishlasangiz sizda ma’lum bir tehnologiyada ixtisoslashganingizdan ko’ra yuqoriroq muvaffaqqiyatga erishish imkoningiz bo’ladi.

Hulosa qiladigan bo’lsak, bir yoki ikki dasturlash tillarini chuqur o’rganish va umumiy ihtisoslikka ega bo’lish albatta muhim, ammo bu tanlovlarning o’zi bilan siz o’z yo’lingizda uzoqqa bora olmaysiz. Siz bu muhim 4 ko’nikmalarga e’tibor qarating va sizda hammasi joyida bo’ladi.


Dasturchi bo’lishning 6 yo’li

Olti yo’l:

  1. Web dasturlash
  2. Desktop(ish stoli kompyuterlari uchun) ilovalarini dasturlash
  3. Taqsimlangan ilovalarni dasturlash
  4. Dasturiy vositalar(Library/Platform/Framework/Core)ni dasturlash
  5. Tizim dasturlash
  6. Ilmiy dasturlash

Dasturchi bo’lish sizning mahoratingizni kundan-kunga, yildan-yilga asta-sekin, bosqichma-bosqich rivojlanib boruvchi to’plangan jarayon hisoblanadi, va dasturlash qiziq va mukofotlaydigan(aqliy, ma’naviy va moliyaviy) jarayon bo’ladi. Bu yo’riqnoma dasturchi bo’lishga sehrli oson yo’l taqdim qilishga vada bermaydi, qadamlar ketma-ketligi ham ilohiy emas, ammo siz bitta zamonaviy dasturlash sohasida dasturchi bo’lish haqida umumiy ma’lumot olasiz.

Quyidagi sohalardan bittasi(yoki hammasi)dan kirish kurslariga boring.

  • Mantiq(Logic)
  • Diskret matimatika(Discrete mathematics)
  • Programming language(C++/Java/Python-boshlovchular uchun yaxshilari)

Ma’lumotlar bazasi(Database) tushunchalarini o’rganing: jadvallar(tables), manzaralar/so’rovlar(views/queries) va bajarilish ish tartiblari(procedures) kabilarni:

  • MS Access
  • DB V
  • Fox Pro
  • Paradox
  • MySQL – yaxshi ma’lumotlar bazasi o’rganish uchun, chunki u tekin, odatiy ishlatiladigan, ma’lumotlar bazalari SQL so’rovlari bilan odatda huquq berilgan hisoblanadi.

Qaysi turdagi dasturchi bo’lishingiz haqida qaror qabul qiling. Dasturchilar quyidagi kategoriyadan biri bo’lishadi.

  • Web dasturchi
    Desktop ilovalari dasturchisi
    Operatsion tizim dasturchini aniqlaydi(yagona operatsion tizimga yoki operatsion tizimlar to’plamiga bog’langanligini)
  • Mustaqil platforma dasturchisi
  • Taqsimlangan ilovalar dasturchisi
  • Dasturiy vositalar(Library/Platform/Framework/Core)i dasturchisi
  • Tizim dasturchisi
    asos(kernel, core) dasturchisi
    qurilmalar(driver) dasturchisi
    tuzuvchi(compiler) dasturchisi
  • Ilmiy dasturlash

Sizning tanlovingizdagi sohaga bog’liq bo’lgan texnologiyalarni va dasturlash tillarini o’rganing. Quyidagi bo’limlarda vazifalarni dasturlashning turli toifalar uchun tahlil qilib chiqamiz.

I. WEB DASTURLASH

  1. Web dasturlashni nimasi jalb qilishini bilib olasiz. Web ilovalari internet arxitekturasini yuqorisida ishlashi loyihalashtirilgan dasturiy ta’minot komponentlari hisoblanadi. Bu shuni anglatadiki, veb brouzer dasturi(Firefox yoki Internet Explorer ga o’xshash) orqali ilovalarga huquq olinadi. Internet arxitekturaning cho’qqisida qurilgan bo’lishi internetga ulangan bo’lishini zaruriy darajada talab qilmaydi. Bu esa web ilovalari quyidagilarga o’xshash standart web texnologiyalarini ustiga qurilganligini anglatadi:
  • HTTP
  • FTP
  • POP3
  • SMTP
  • TCP
  • IP protocols
  • HTML
  • XML
  • Coldfusion
  • ASP
  • JSP
  • PHP
  • ASP.NET

Ko’rib chiqing ko’pgina bir-biriga o’xshamagan web saytlarni, odatiy uslublari haqida o’rganish uchun. (o’ng qo’lni bosing, keyin kodni ko’rish(View Source) yoki F12 bosing) Web saytlarning toifasi/mazmunini rang-barangligi uchun qarang, web satyga tashriflarning soni uchun emas. Umuman olganda, siz quyidagi web saytlar toifasining har biriga kamida bir marta kirishingiz kerak:

  • Korporativ qatnashish saytlari(tijoriy tashkilot, foyda uchun bo’lmagan tashkilotlar, davlat tashkilotlari)
  • Web indeksga kirituvchi moshinalar(qidiruv moshinalari, meta izlash saytlari, maxsus qidiruv moshinalari, papkalar)
  • Kon sanoati ma’lumotlari saytlari
  • Shaxsiy saytlar
  • Ma’lumot beruvchi/ensiklopediya saytlar(wikilar, malumot sahifalari, texnikaviy xususiyatlar, qo’llanmalar ro’yxatlari papkalari, bloglar va gazeta-jurnallar, yangilik va yangilik agentliklari saytlari, sariq sahifalar(yellow pages),…)
  • Ijtimoiy saytlar(ijtimoiy portallar, linklarni saqlovchi(bookmarking) saytlar, qaydlarni olish saytlari)
  • Hamkorlik qiluvchi saytlar(wiki saytlari va bloglar kiradi)

Kamida bitta brainstorming texnikasi/uslubini va ushbu uslubni amalga oshiradigan dasturiy ta’minotni o’rganing. Misol uchun: brainstorming diagrammasi va MS Visio.

Web sayt tuzilishi bilan yaqin bo’lganini oling. Bu sinalmagan web diagrammalari, sayt xaritalari va navigatsiya strukturasini hosil qilish.


Дастурлаш муҳити (IDE) тушунчаси ҳақида биласизми?

IDE — бу сиз англаётган «ғоя» дегани эмас ))

IDE(Integrated development environment) — дастурлаш тиллари учун муҳит ҳисобланади, кўпчилик бу тушунчани айнан шундайлигича билади, лекин бу таърифнинг маъноси нималигини унчалик тушунмайди. Бу мақола айнан шу IDE абревиатурасини тушунтиришга бағишланади.

Дастурлаш муҳити деганда, сиз ёзаётган кодларни айнан қаерга ёзиш кераклиги тушунилади. Мисол учун, оддий «Блокнот» ҳам IDE вазифасини бажариши мумкин. IDE сифатида, дастурлар ёки дастурлар йиғиндиси ишлатилади. Замонавий ва машҳур дастурлаш муҳитларига қуйидагиларни мисол қилиш мумкин (мақолада Windows тизими назарда тутилган):

PHPStorm — асосан PHP дастурчилар учун;

VisualStudio — .Net  дастурчилар учун;

NetBeans — асосан Java, PHP дастурчилар учун;

PHPDesigner — асосан web (PHP) дастурчилар учун;

Агар ҳали ҳам тушунарсиз бўлса, бошқа мавзуда мисол келтираман. Сиз компьютер тузатувчи устасиз, сиз ўз ишингизни қилишингиз учун яхши шароит керак: электр токи билан таъминлаган хона, керакли қуриламаларга(тестер, паялник, отвёрка..) эга бўлишингиз, ҳар ҳил турдаги уланувчи ва уловчи симлар бўлиши, компьютернинг асосий эҳтиёт қисмларининг нусхаси ва бошқалар. Умуман олиб қараганда, бундай шароит бўлмаса ҳам уста бўлаверасиз, лекин бирор компьютерни тузатиш учун анча вақт керак бўлиб қолади (керакли жиҳозларни кимдандур сўраш керак бўлади, ток ўчиб қолса, уни келишини кутиш). IDE ҳам шундай, қанчалик яхши ва қулай муҳит бўлса, ишингиз ҳам шунча тез ва сифатли битади.

Мукаммал дастурлаш муҳитларида, дастурчилар учун ҳамма шароитлар яратилган бўлади, яъни бирор лойиҳани тузиш учун қўшимча дастурлар керак бўлмаслиги лозим, мисол учун қуйидаги имкониятлар бўлади:

— матн муҳаррири;

— компилятор/интерпретатор;

— лойиҳанинг барча қисмларини автомат йиғувчи (Сборщик);

— хатоларни аниқ кўрсатувчи функцияси;

— код синтаксисларини ёзишда ёрдам берадиган кутубхона;

— кодни ишлатиб кўриш учун шароит (емуляторлар, браузерлар);

— терминал (консоль учун);

— версиялар билан ишловчи модуль (github);

— каталог иерархияси;

Бундай дастурлаш муҳитлари, дастурчиларни бироз дангаса қилиб қўяди деган гап рост, лекин тез бирор лойиҳани тузмоқчи бўлсангиз, буларсиз анча вақт кетиб қолади.

Дастурлаш муҳитлари ҳам, бошқа дастурларга ўхшаб пуллик ёки бепул бўлиши мумкин, пуллик муҳитлар:

 

— PHPStorm;

— VisualStudio;

— RAD Studio;

— KomodoIDE;

— PHPDesigner;

Бепул дастурлаш муҳитлари:

 

— KomodoEdit

— VS Express;

— NetBeans;

— Aptana Studio;

— Eclipse;

Дастурлаш тилига қараб, керакли IDE танланади, ўзимни оладиган бўлсам, wеb учун Sublime матн муҳаририрни ишлатаман (нимагадир ўрганиш бўлиб қолган), .Net дастурлаш учун VisualStudio.

Охирида, бошқа соҳаларда ҳам ишлатилган саволни бермоқчиман, дастлаб дастурлаш тили тузилганми ёки дастурлаш муҳитими? ёки, дастлаб дастурлаш тили тузилганми ёки компилятор? )

Kompyuterda muommo bormi yoki undan professional tarzda foydalanishni bilmaysizmi? Unda «e-haker» ga xush kelibsiz! Murojaat uchun tel: (+99897) 5667333; E-mail: eldor-haker@umail.uz ; Telegramdagi rasmiy kanalimiz: @HakerlikSirlari