7 daqiqa

Barchasi qayerdan boshlangan: Dasturiy ta'minot muhandisligidagi mening yo'lim

15 yoshimda dasturlashdagi faoliyatimni qanday boshlaganim, birinchi amaliyotimni topganim, ikkinchi kundayoq mentorsiz qolganim hamda mas'uliyat va real tajriba rivojlanishni qanchalik tezlashtirishi haqidagi shaxsiy hikoyam.

Barchasi qayerdan boshlangan: Dasturiy ta'minot muhandisligidagi mening yo'lim

Ba'zida dasturchi sifatida faoliyatimni qanday boshlaganim haqida o'ylab qolaman.

O'sha paytlarda mening tajribam unchalik ko'p emas edi. React'ni chuqur bilmasdim. Hali biror marta ham real prodayshn loyihada ishlamagandim. Katta kod bazalari qanday tuzilishini tushunmasdim va o'zimni professional dasturchi sifatida ishlashga mutlaqo tayyor his qilmasdim.

Men 15 yoshda edim.

Hozir ortga nazar tashlab, faoliyatimni tayyor bo'lganim uchun emas, balki menga imkoniyat berilgani uchun boshlaganimni va keyin tayyor bo'lishga majbur bo'lganimni anglab yetaman.

Bu barchasi qayerdan boshlangani haqidagi hikoya.

Birinchi amaliyotimgacha

Men dasturlashni FayzTa'lim'da o'rganishni boshlaganman va u yerda full-stack veb-dasturlash kursini tugatganman.

O'sha paytda bilimlarim hali kutilganidek emas edi.

HTML va CSS'ni bilar edim, JavaScript hamda React bo'yicha ham boshlang'ich bilimlarim bor edi. Nisbatan oddiy bo'lgan moslashuvchan (responsive) veb-saytlarni qura olardim, lekin ularni chuqur tushunardim deb ayta olmayman.

Shuningdek, SAMMI.AC platformasi orqali frontend yo'nalishini qo'shimcha o'rgandim va bu menga mahalliy kursda o'rganganlarimdan ham ilgarilab ketishimga yordam berdi.

Backend tarafida esa Python va Django bo'yicha biroz tajribam bor edi. Lekin u yerda ham bilimlarim asosiy darajada edi. Django'ning MVC uslubidagi strukturasi va shablonlari (templates) bilan ishlay olardim, lekin API'ni to'g'ri qurish va taqdim etishni hatto bilmasdim.

Shunday qilib, frontend va backend o'rtasida tanlov qilish kerak bo'lganda, frontend men uchun yaxshiroq variant bo'lib tuyuldi.

Lekin men ega bo'lmagan bitta asosiy narsa bor edi:

real tajriba.

O'rganish jarayonida turli narsalar qurgan edim, lekin hech qachon real jamoa, real foydalanuvchilar, real muddatlar (deadlines) va real mas'uliyat bilan ishlaydigan haqiqiy mahsulot ustida ishlamagan edim.

Barchasi birinchi amaliyot imkoniyatini topganimdan so'ng o'zgardi.

Mening birinchi amaliyotim

Men SoffStudy'ning Way2Job dasturiga qo'shildim.

Bu real loyihalar va haqiqiy ish muhitiga asoslangan, yakunda ishga joylashish imkoniyatini beruvchi uch oylik amaliyot dasturi edi.

Men kabi yosh va tajribasiz inson uchun bu ulkan imkoniyat edi.

Men hali juda yosh edim, tajribam kam edi va o'zim bilmagan narsalar qanchalik ko'pligini hatto tasavvur ham qila olmasdim.

Reja oddiy edi: uch oy davomida menga ustozlik qiladigan va o'sishimga yordam beradigan tajribali frontend dasturchi rahbarligida ishlayman.

Mening mentorim Abubakr edi — u middle+ darajasidagi kuchli frontend dasturchi bo'lib, frontend'ni chuqur bilar va backend bo'yicha ham yaxshi tushunchaga ega edi.

Undan ko'p narsa o'rganishim mumkin deb o'ylaganimni eslayman.

Va men haq edim.

Faqat men kutgan usulda emas.

Mentorim ikkinchi kuniyoq ketib qoldi

Birinchi kuni mentorim hozirgi darajamni tushunish uchun men bilan suhbat o'tkazdi.

Biz nimalarni bilishim, nimalarni bilmasligim va texnik jihatdan qayerda ekanligim haqida gaplashdik.

Keyin, ikkinchi kuni, u SoffHub'dan ketayotganini aytdi.

Shunday qilib, bir zumda mentorsiz qoldim.

Keyin nima qilishim kerakligini bilmay ikkilanib qolganimni eslayman.

Men amaliyotga tajribaliroq inson yo'l-yo'riq ko'rsatadi degan umidda kelgan edim. Endi esa u odam darhol ketib qolgan edi.

Lekin meni boshqa bir narsa kutayotgan edi.

Haqiqiy loyiha.

Kutilmaganda Soff.uz ustida ishlay boshladim

Aylab alohida o'rganib o'tirish o'rniga, meni to'g'ridan-to'g'ri Soff.uz'ning frontend qismiga biriktirishdi.

Bu Next.js'da qurilgan va mavjud bo'lgan katta loyiha edi.

O'sha paytda u menga judayam haybatli va katta bo'lib tuyulgandi.

Jildlar (folders), modullar, komponentlar va kod bo'laklari shunchalik ko'p ediki, ba'zida qayerga qarashni ham bilmay qolardim.

Achchiq haqiqat shundaki, men hali React yoki Next.js'ni yetarlicha yaxshi tushunmasdim.

Lekin endi shunchaki:

"I need to learn this first." (Avval buni o'rganib olishim kerak)

deyishga vaqt yo'q edi.

Loyiha tayyor edi.

Ish kutib turardi.

Va unga men mas'ul edim.

O'shanda men umrim davomida yodimda qoladigan narsani o'rgandim:

Mentor sizning o'sishingizni tezlashtirishi mumkin, ammo mas'uliyat sizni o'sishga majbur qiladi.

Mas'uliyat barchasini o'zgartirdi

O'sha paytda jamoaga boshqa frontend dasturchi olib kelinmadi.

Bu men kutganimdan ko'ra ekotizimning ancha katta qismi uchun mas'uliyatni o'z zimmamga olishim kerakligini anglatardi.

Mavjud Soff platformasi bor edi va shu bilan birga biz yangi frilans modulini — mohiyatiga ko'ra O'zbekiston bozori uchun moslashtirilgan Kwork'ga o'xshash marketpleysni qurayotgan edik.

Men uchun bu juda katta mas'uliyat edi.

Men kichik bir mashq loyihasida birdaniga ishlay boshlagan tajribali React dasturchi emas edim.

Men real foydalanilayotgan mahsulotlarga hissa qo'shgan holda, haqiqiy prodayshn kod bazasini tushunishga harakat qilayotgan boshlang'ich dasturchi edim.

Shuning uchun men uchun faqat bitta haqiqatga yaqin variant bor edi:

o'rganish.

Men React'ni puxta o'rganishim kerak edi.

Keyin Next.js'ni.

Keyin ularning atrofidagi vosita va tushunchalarni.

  • Redux
  • TanStack Query
  • SCSS
  • BEM
  • Feature-Sliced Design
  • SSR va CSR

Va eng muhimi, bularning barchasi real ilovada bir-biri bilan qanday bog'lanishini tushunishim kerak edi.

Men shunchaki darsliklarni ko'rib, o'tib keta olmasdim.

Men nimadir o'rganishim, uni qo'llashim, xatolar qilishim, nima uchun ishlamaganini tushunishim, uni tuzatishim va davom etishim kerak edi.

Bu mening dasturlashni o'rganish uslubimni butunlay o'zgartirdi.

Faoliyatimni o'zgartirgan uch oy

Shu uch oy davomida men o'rganishdan to'xtamadim.

Biz frilans moduli ustida ishladik va oxir-oqibat uni hayotga tatbiq etdik.

Men uchun bu loyiha amaliyot topshirig'idan ham ko'proq narsaga aylandi.

Bu dasturiy ta'minot yaratish haqiqatda qanday bo'lishi haqidagi birinchi real tajribam edi.

Men React va Next.js prodayshnda o'zini qanday tutishini tushuna boshladim.

Har xil render qilish yondashuvlari haqida ko'proq o'rgandim.

Noldan boshlash o'rniga, mavjud kod bazasi ichida ishlash menga qulayroq bo'lib qoldi.

Jamoada topsiriqlar qanday bajarilishini o'rgandim.

Vaqtni boshqarish, muloqot, mas'uliyat hamda shunchaki ishlaydigan kod yozish va boshqa dasturchilar saqlab qola oladigan (maintainable) kod yozish o'rtasidagi farqni angladim.

Va men kutmagan yana bir narsani o'rgandim:

ba'zida o'sishning eng tez yo'li — sizga o'zingizdan biroz kattaroq tuyulgan mas'uliyatning berilishidir.

Boshida men o'zimni yetarlicha malakali his qilmagandim.

Oxiriga kelib esa men butunlay boshqa dasturchiga aylandim.

Senior dasturchi emas.

Hatto unga yaqin ham emas.

Lekin men juda muhim chiziqdan o'tib olgan edim.

Menda real tajriba bor edi.

Men o'zimni tayyor his qilishdan oldin boshladim

Texnologiya sohasida yosh bo'lishning g'alati tomonlaridan biri shundaki, siz o'zingizni doimo kechikayotgandek his qilishingiz mumkin.

Men bor-yo'g'i 15 yoshda edim, lekin judayam kech boshlagandek his qilganimni eslayman.

Atrofimda mendan ko'p narsani biladiganga o mexshagan odamlar bor edi.

Allaqachon taassurot qoldiradigan loyihalarni qurgan dasturchilar bor edi.

Menda esa hali o'rganish kerak bo'lgan narsalar juda ko'p edi.

Ortga nazar tashlasam, bu tuyg'u mutlaqo ortiqcha edi.

Men kechikmagan edim.

Men shunchaki yo'lning boshida edim.

Oldinga siljishimning yagona sababi — men o'zimni to'liq tayyor his qilishdan oldin boshlaganim edi.

Bu tajriba mening o'rganish va karyera o'sishi haqidagi qarashlarimni o'zgartirdi.

  • Sizga har doim ham boshqa bir kurs kerak bo'lavermaydi. Ba'zan sizga real muammo kerak bo'ladi.
  • Sizga har doim ham boshqa bir darslik kerak emas. Ba'zan sizga mas'uliyat kerak.
  • Va boshlashdan oldin hamma narsani bilishingiz shart emas. Ba'zan boshlashingiz va yo'l-yo'lakay kerakli narsalarni o'rganib borishingiz kerak.

Bugun boshlayotgan odamga nima degan bo'lardim

Agar siz hozirda dasturchilik faoliyatingizni boshlashga harakat qilayotgan bo'lsangiz, bu qanchalik qiyin tuyulishini bilaman.

Bozorda boshlang'ich dasturchilar juda ko'p, talablar o'zgarmoqda va AI dasturchilarning ishlash tarzini o'zgartirmoqda.

Bugungi kunda boshlash qiyinroq tuyulishining bitta oddiy sababi bor deb o'ylamayman.

Lekin birinchi imkoniyatni qo'lga kiritish uchun hali ham yaxshi yo'llar borligiga ishonaman.

Amaliyotlarni e'tiborsiz qoldirmang

Birinchi mehingiz orzuingizdagi ish bo'lishi shart emas.

Ba'zan birinchi qadam shunchaki real muhitga kirib olishdir.

Amaliyot sizga darsliklar bera olmaydigan narsani berishi mumkin: real mas'uliyat, real hamkorlik va real tajriba.

Men uchun amaliyot faoliyatimning boshlanishiga aylandi.

AI'dan foydalaning, lekin u o'rganish o'rnini egallashiga yo'l qo'ymang

Men boshlaganimda bugungi kunda mavjud bo'lgan AI dasturlash vositalari yo'q edi.

Menda asosan hujjatlar (documentation), qidiruv, kurslar va muloqot vositasi sifatida ChatGPT bor edi.

Bugun sizda juda kuchli vositalar bor. Ulardan foydalaning. Savollar bering. Noma'lum kodlarni o'rganing. Baglarni tezroq tuzating. Tushuntirishlardan o'rganing. Narsalar quring.

Lekin AI'dan nimani qurayotganingizni tushunishdan qochish uchun foydalanmang.

Undan kamroq o'rganish uchun emas, tezroq o'rganish uchun foydalaning.

Haqiqiy narsa quring

Darslikdagi loyiha foydali.

Lekin oxir-oqibat qarorlaringiz muhim bo'lgan loyiha ustida ishlashingiz kerak.

Haqiqiy loyiha sizni darsliklar ko'pincha qamrab olmaydigan narsalar haqida o'ylashga majbur qiladi: arxitektura, qo'llab-quvvatlash imkoniyati, hamkorlik, muddatlar, baglar, murosalar (trade-offs) va foydalanuvchilar.

Bu tajriba qiyin. Lekin u juda qadrli.

O'zingizni tayyor his qilguningizcha kutmang

Bu mening birinchi amaliyotimdan olgan eng katta sabog'imdir.

Boshlaganimda men tayyor emas edim. Buni bilar edim. Atrofimdagilar ham buni bilishgan.

Lekin baribir boshladim.

Haqiqiy loyihada ishlash mas'uliyati meni men kutganımdan ko'ra ancha tezroq rivojlanishga majbur qildi.

Arizani topshirishdan oldin yana bitta freymvorkni o'rganishim, yana bitta kursni tugatishim yoki yana bitta loyiha qurishim kerak deb hisoblashingiz mumkin.

Ehtimol, sizga haqiqatdan ham ko'proq tayyorgarlik kerakdir.

Lekin tayyorgarlikni hech qachon boshlamaslik uchun bahonaga aylantirib olmang.

Barchasi qayerdan boshlangan

O'sha uch oy meni ekspertga aylantirmadi.

Ular undan ham muhimroq narsani qilishdi.

Menga dasturchi sifatidagi birinchi real tajribamni berishdi.

Professional dasturlash qanday ko'rinishini ko'rsatishdi.

Hali o'rganishim kerak bo'lgan narsalar qanchalik ko'pligini o'rgatishdi.

Eng muhimi, menga boshlang'ich nuqtani berishdi.

Mening faoliyatim mukammal bilimlar to'plami, mukammal portfoliodan yoki yillab tayyorgarlikdan boshlanmagan.

U amaliyot, mentorni kutilmaganda yo'qotish, men zo'rg'a tushunadigan katta kod bazasi va o'zimdan kattaroq tuyulgan mas'uliyat bilan boshlangan.

O'sha paytda men shunchaki shu uch oy davomida tirik qolishga harakat qilyapman deb o'ylagan edim.

Ortga nazar tashlab, o'z karyeram poydevorini qurayotganimni anglayman.

Men tayyor bo'lganim uchun boshlamadim.

Men boshlaganim uchun tayyor bo'ldim.