Bularni boshlang'ich dastruchi bilishi shart yoxud Beginnerning muammosi 1-qism
Published: 2022-08-28 02:31:00

## Kirish

Ancha muddatdan buyon dasturlashni endi boshlagan dasturchilarni o'sishini kuzataman va ulardagi muammolarni o'rganib hal etishga yordamlashishga xarakat qilaman. Shu bilan bir qatorda ulardagi bo'layotgan o'sish va rivojlanish evalyutsiyasi men uchun qiziq shu sababdan tahlil qilishni yoqtiraman. Endilikda ushbu taxlillarim va hulosalarim natijalarini ommaga ulashishga qaror qildim. O'ylaymanki ushbu ma'lumotlar ko'pchilikga foydali bo'ladi. Ushbu maqolada boshlag'ich dasturchilarning eng birlamchi muammolari va bilishi yoki o'rganishi talab etiladigan ko'nikmalari yortiladi va izohlanadi. Ushbu tavsiyalar ko'proq o'zbek millatidagi insonlarga qaratilgan chunki muammolar bizni millatdoshlarniki asosan.


> _Disclaimer: Maqoladagi barcha so'zlar va fikrlar mening ancha vaqtdan buyon kuzatuvlarim natijasida hosil bo'lgan tahlillar hulosaasi va subyektiv fikrlarim. Postda tilga olingan obyekt yoki subyektlarni haqorat qilish, millatchilik va kamsitish niyatida emasman!_

## 1. Shaxsiy fikrga ega bo'lish va dunyo qarash.

![Thinking](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/45o00qhzk78yjwkalccs.gif)
Ushbu talab (agar talab deyishga arzisa) oddiy bo'lgani bilan juda ham muhim rol o'ynaydi. Ayni bizni millat uchun xozirda juda ham kerakli bo'lgan narsa. Sababi asosiy qatlamdagi insonlarning juda katta qismida ko'p mavzularda shaxsiy fikrlari yo'q va boshqalar fikrlari bilan qaror qabul qilinadi huddi shunday dunyo qarash ham. Shu sababdan iltimos qilar edimki. Dasturlashni boshlashdan avval o'zingiz dunyo qarashingizni kengaytirish va shaxsiy fikrlaringizni rivojlantirish ustida ishlang.

Tahliliy hulosam va muamoni kelib chiqishi: Taxminan kamida 50-60ta boshlang'ich dasturchilar bilan shuxbatlashganimda nafaqat sohaga nisbatan balki oddiy hayotdagi mavzularda ham shaxsiy qarashlari zaif ekanini kuzatganman. Shaxsiy fikrga ega va dunyo qarashi kengroq insonlarning 15-20tasidan deyarli barchasi sohada o'z o'rnini tezroq topgan va xozirgacha yaxshi rivojlanib kelmoqda.

Yechim: Turli mavzudagi hujjatli filmlar, kitoblar, insonlar bilan gaplashish yoki intervyularni ko'rish, sayoxat boshqacha ko'rinishdagi ma'lumotlar (Podcastlar, Videolar vaxakazo). Qabul qilgan ma'lumotaringizni taxlil qiling. Falonchi gapirdi deb ishonib ketmasdan (Iltimos meni ham postimni shnday qiling)!. Ratsional fikrlashni rivojlantiring.

## 2.Savolga javob topish yoki muammolar yechimmi va muammoni yetkazish.

![I don't have an answer](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g7i9fgr2tfzhxho4or18.gif)

Ushbu mavzu hozirgi kunda juda actual masalalardan biri xisoblanadi. Dasturlashga aloqador ochiq communitylarning ko'plarida doyimo birxil shablondagi javobi bor bo'lgan savollar va sifatsiz savollar bilan bir qatorda mavzuga aloqador bo'lmagan savollar ham ko'plab beriladi. Bunisi ham yetmaganday mavzuga umuman aloqador bo'lmagan mavzular ko'tariladi.

Tahliliy hulosam va muamoni kelib chiqishi: Community guruhlardagi suxbatlarning mavzusi kamida 70-85% holatda takrorlanadi. Ayniqsa o'zbek communitylarda ushbu takrorlanish ko'rsatkichi juda ham baland. Fikrimga ishonch xosil qilish tahlil qilib ko'ring. Bu holatga sabab va faktorlar ko'p lekin asosiy sabab o'zbekistonda boshlag'ich dasturchilarni juda ham ko'pligi va o'zbek tilida resurslar kam ekanligi. Shu nuqtai nazardan bu holat bo'lishi ham tabiy. Ammo tanganing boshqa tomoni ham bor. Tajribali mutahasisslar bunday muhitda zerikib qolishadi va takr etishadi.

Yechim: Chet tilini o'rganing bu gap million marotaba aytilgan bo'lsa ham ko'p narsanging asosi ham shuda :)
Savollaringizni avvalo internetdan qidirib ko'ring ingliz yoki rus tillarida. Muammoni google tushunadigan qilib yozish ham juda ko'plab savollarga javob topishga yordam beradi. Savolni to'g'ri yozsangiz sizni holatda 95-98% holatda javob topilishi aniq. Yaxshilab qidirsangiz ~50-60% holatsa sifatli javob olasiz. Shu bilan birga reporting skillaringiz ustida ham ishlang. Stackowerflow githubda qilingan reportlarni kuzatsangiz bo'ladi. Communitylarda ham googlega savol berganda ham savol yoki muammoni qanchalik aniq va lo'nda qilsangiz shunchalik sifatli javob olasiz !

## 3. Shunchaki izlaning va sinab ko'ring

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2fmttqi85jzfnu4nugaa.gif)

Nafaqat boshlang'ich balki juda ko'plab xamkasblarimda kuzatib shunday hulosaga keldimki. Ko'pchilik shunchaki qandaydur mavzuda qiziqib ko'rmaydi izlanib ko'rmaydi. Hech qanday sabablarsiz nimadur ustida izlanish olib bormaydi. Qachonki nimadur qilish kerak bo'lsa yoki muammo chiqsa izlanadi. Ushbu holat engineeringa umuman teskari deb hisoblayman.

Tahliliy hulosam va muamoni kelib chiqishi: Bazilarida distiplina qilish qiyin bo'ladi yoki boshqacha bahonalar bo'ladi va hech qanday izlanishlarga vaqt qolmaganday tuyuladi. Aksariyat dasturchilar quyidagi holatlarda biror narsa ustida izlanadilar:
1. Muammo chiqsa yoki biror narsaga yechim kerak bo'lsa
2. Interviewdan oldin
3. Kimdur savol berganda javob bo'lmasa
4. Levelup yaqin bo'lsa :)
5. Yana qandaydur jiddiy deb xisoblangan turtki bo'lsa vaxakazo.

Yechim: Dasturlashga aloqador mavzularda izlanishni va nimadurlar o'qishni va turli expirementlarni kundalik odatga aylantiring. Masalan 1 soat vaqt ajrating )). Boshlanishiga shunchaki o'zingizni soha atrofidagi topiclardan aytaylik siz endi dasturlashni o'rgangan bo'lsangiz OOP haqida izlaning yoki boshqa paradigmlar haqida. Ularni o'zi nima va nima uchun qanday tadbiq qilish mumkin example projectlarni ko'ring shu mavzularga aloqador maqola yoki kitob o'qing. Umuman olganda siz doyimo izlanishda bo'lishingizga asosiy turtki va sabablar:
1. Birkun shunday muammoga duch kelishiz mumkin
2. Dunyo qarash va tajribangiz oshadi
3. Engineering madaniyatining bir bo'lagi sizda bo'ladi
4. Yana boshqa minglab sabablar bor asosiy sabab bu sohamiz ilmiy soha bo'lgani uchun katta qismi izlanishlardan iborat va biz doyim izlanish qilishimiz kerak ekanligi  !

## 4.Faqat video ko'rmang !

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ot5sel1uhrjq76ckrmxu.gif)

Ko'pchilik boshlang'ich dasturchilar aslida deyarli docsga ham qarashmaydi asosan videodan yoki biror insondan o'rganishga xarakat qilishadi. Lekin bu unchalik to'g'ri emas. Malumot qabul qilish doirasini kengaytirish kerak buning uchun o'zingizni kundalik menuga kitob, maqolalar, podcast va meetuplarni ham qo'shish kerak. 

Tahliliy hulosam va muamoni kelib chiqishi: Tajribasi 5 yilgacha bo'lgan xamkasblar bilan bo'lgan muloqotlar natijasida deyarli 80-90% kishi maksimal holatda 3-4ta kitob o'qigan. 75% qismi esa sababsiz deyarli maqola o'qimagan. Bu holat o'z o'zidan bilim rivojlanmasligiga olib keladi.

Yechim: Yuqorida aytib o'tganimday har doyim N vaqt ajratib nimadur izlanish qilib o'rganishni va dars qilish kerak va bilimlarni amaliyotda qo'llash kerak.

## 5.Pet projectlar

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tl358s5sall8yt21azbp.gif)

Bilimlarni amaliyotda sinab tajriba qilinadi shu sababdan pet projectlar bu bosqichda eng asosiy rolda. Bunga jiddiy qarash kerak. Github profilingizga o'zingiz qilgan loyihalarni qo'ying. Loyihalar uchun g'oyalar kelmasa biror narsani clone qilishga xarakat qiling. Faqat qisqa muddatli kichik loyihalar qilish kerak bo'lmasa uzoq vaqt bir loyihada qotib qolasiz va o'smaysiz.

Tahliliy hulosam va muamoni kelib chiqishi: Tajribasi 12-18 oy bo'lgan dasturchilarning juda kam qismida taxminan 15-20% pet projectlari bor. Yani o'zlari o'ylab topgan (clone bo'lishi ham mumkin). Bor projectlarining ko'plari o'rganayotgan kursi davomida qilingan va kursdan tashqari hech qanday loyiha qilinmagan. Bu amaliy tajribasizlikga sabab bo'ladi.

Yechim: Ko'proq kichik projectlar yoki projectlarning qismlarini qilib ko'rish kerak. Turli uslubda turlicha ko'rinishda bo'lishi mumkin. Qisqasi ijod qilish kerak. Expiremetn qilish kerak shu orqali tajriba yeg'iladi tassavur hosil bo'ladi.

Bular hali hammasi emas aslida bundan boshqa yana ko'plab muammolar mavjud. Ammo xozircha shular ushbu keltirilgan ma'lumotlar asosida xarakat qilib ko'ring. O'zgarishlar va firklarni izohlarda qoldiring. Etiboringiz uchun Rahmat

# Happy Coding ! :)

https://t.me/programming_everyone