Veb-ilovalar ishlab chiqishda asosan e’tibor markazida dizayn va interfeys turadi. Aslida esa, ularning barqaror ishlashini ta’minlovchi asosiy qism — bu backend. Agar frontend loyihaning “yuzi” bo‘lsa, backend uning ko‘rinmas, biroq kuchli va ishonchli tayanchi hisoblanadi.
Backend dasturchilar odatda PHP, Python, Java, Golang kabi tillarda ishlaydi. Ularning vazifasi — serverni boshqarish, ma’lumotlarni saqlash va qayta ishlash, tizimning barqarorligini ta’minlashdir.
Ilovaning umumiy ishlash sifati va samaradorligi bevosita ularga bog‘liq. Shunga qaramay, yosh dasturchilar backend yoki frontend yo‘nalishidan qaysi birini tanlashda ikkilanib qolishadi. Bundan tashqari, sun’iy intellektning rivojlanishi dasturchilar faoliyatiga ham ta’sir qilishi mumkinligi borasida turli qarashlar mavjud.
Spot Uzum’da backend dasturchisi bo‘lib faoliyat yuritayotgan Otabek Xudoyberdiyev bilan suhbatlashdi. U dasturchi bo‘lish uchun nima qilish kerakligi, qanday dasturlash tillarini o‘rganish zarurligi, sun’iy intellektning sohaga ta’siri, shuningdek, yosh mutaxassislar ishga kirishda yo‘l qo‘yadigan xatolar haqidagi fikrlari bilan o‘rtoqlashdi.
Intervyuning to‘liq versiyasi video-shaklda taqdim etilgan:
Uzum'da dasturchi muhandis.
IT’dagi birinchi mustaqil loyiham COVID-19 davrida yangiliklar saytidan boshlangan. Mendan saytni yangilab berishimni so‘rashgan va bu ishni o‘z zimmamga olganman. Aynan shu jarayonda juda ko‘p narsalarni o‘rgandim. Keyin esa Express 24 jamoasiga Middle dasturchi sifatida qo‘shildim. Qariyb ikki yillik faoliyatimdan keyin Iman Invest kompaniyasida ishladim. U yerda ham yana ikki yil ishlagach, Uzum’da Senior dasturchi bo‘lib ish boshlaganman.
Yuqoridagi kompaniyalardan ketishimning asosiy sababi dangasalik deb o‘ylayman. To‘g‘ri, vazifalarni vaqtida bajarganman, ular uchun muhim kadr bo‘lganman, ammo yangi joyda yangi qiyinchiliklar va maqsadlar bilan o‘sishni istardim.
Aslida, dangasalikni yengishni o‘rganganimda, dasturchi emas, ko‘proq harakat talab qiladigan boshqa bir sohani tanlagan bo‘lardim. Lekin aynan dangasalik meni dasturlashda Senior darajasiga olib chiqqan. Chunki bunday insonlar murakkab masalalarga ham soddaroq, samaraliroq yechim topishga intilishadi.
Dasturlash dunyosiga endigina kirib kelayotgan odam uchun hammasi “black box” bo‘lib ko‘rinadi. Uni tushunish uchun esa avvalo frontend nima ekanini bilish zarur.
Men ham dastlab frontend’dan boshlaganman. Uni o‘rganish orqali kompyuter bilan sizning o‘rtangizda o‘zaro tushunish ko‘nikmasi ham shakllanib boradi. Shu zaylda sekin-asta kichik veb-ilovalar yozishni boshladim. Backend’ga kirishning eng oson yo‘li frontend’ni bilishdir.
Barchasi ishga kirish haqida
Senior bo‘lib Uzum’ga ishga kirayotganimda mendan Golang tili hamda Kubernetes haqida so‘rashgandi. Chunki Senior darajadagi dasturchi faqatgina kod yozish bilan cheklanmaydi, balki uni serverga joylash, prodakshndagi kodni monitoring qilish kabi jarayonlarni ham yaxshi bilishi kerak bo‘ladi.
Bugungi kunda ko‘pchilik kurslarga borib, dasturlashni o‘rganadi. Ishga kirishda ham bu bilimlariga ishonib qolishadi, bu esa xato. Agar sizni Junior dasturchi sifatida ishga olishmayotgan bo‘lsa, dastlab Middle darajasi uchun harakat qiling. Muhimi — qiziqish. Chunki aynan qizish orqali murakkab masalalar ham sizga oddiy ko‘rinadi.
Suhbat. Ko‘plab suhbatlarda intervyu oluvchi sifatida ishtirok etganman. Bu jarayonda birinchi navbatda e’tibor beradigan narsamiz — CV. U bilan nafaqat HR, balki intervyu oluvchilar ham tanishadi. Shu bois unda yolg‘on ma’lumotlar bo‘lmasligi juda muhim.
Ko‘p uchraydigan holat — nomzod bilmaydigan ko‘nikmalarini ham qo‘shib yozadi. Suhbat jarayonida shu mavzuda savol bersak, u bilmasligini yashira olmaydi. Natijada bu uning ishga kira olmasligiga sabab bo‘ladi. Aksincha, o‘zi biladigan hamda suhbatda bemalol gapira oladigan bilimlarini yozish — nomzod foydasiga ishlaydi.
IT sohasida ayniqsa backend mutaxassislarga talab yuqori. Ular odatda PHP, Java, Python kabi dasturlash tillarini bilishlari talab qilinadi.
Savollar. Suhbatda nazariy savollar beriladi — ko‘pchilik bu bosqichdan o‘tadi. Lekin live coding paytida juda ko‘p nomzodlar qiynaladi. To‘g‘ri va chiroyli kod yozish ko‘nikmasini shakllantirish uchun esa faqat tinimis mashq qilish kerak.
Express 24'da ishlayotganimda team lead’im xunuk kod yozishimni aytardi. Lekin ustimda ishlashni davom ettirdim. Yuqorida ta’kidlaganimdek, eng asosiysi — qiziqish. Qiyinchilik va xatolar bo‘lishi tabiiy, lekin sohaga bo‘lgan qiziqishgina ularni yengib o‘tishga yordam beradi.
Oylik. Menimcha, dasturchilarning maoshi bilim va tajribasiga qarab uch toifaga bo‘linadi:
- Junior — 12 mln so‘mdan 13 mln so‘mgacha;
- Middle — 25 mln so‘mgacha;
- Senior — 25 mln so‘mdan yuqori.
*Spot izohi: oylik maoshlar bo‘yicha ushbu fikrlar suhbatdoshning shaxsiy qarashlaridir. Real raqamlar bozor sharoiti va ishga beruvchi bilan kelishuvga qarab farqlanishi mumkin.
Frontend yoki Backend?
Ko‘pchilikda “Qaysi birini tanlash kerak?” degan savol bo‘ladi. To‘g‘risini aytsam, shaxsan menga frontend biroz zerikarli tuyulgan, chunki unda dizayn bilan ishlash, har bir pikselga e’tibor berish kerak bo‘ladi. Meni esa ko‘proq muammoga yechim topish qiziqtirgan — bu backend’ning vazifasi.
Backend’chi frontendchi’ga API'larni uzatadi — biznes mantiqni biz yozamiz, ular esa kerakli vizualni taqdim etishadi. Backend’ni inson tanasining “miyasi” deyish mumkin, u g‘oyalarni hayotga tatbiq etadi.
Shuning uchun ham yaxshi dasturchi bo‘lish uchun matematikani bilish kerak. Albatta, oliy matematika emas, lekin fundamental bilimlarga ega bo‘lish talab etiladi. Shuningdek, ingliz tilini bilish ham zarur — bu orqali kodlarni yaxshiroq tushunish va yangiliklardan tezkor xabardor bo‘lish mumkin.
Amaliyot yoki nazariya
Oliygohda o‘qib yurganimda 3 oy dasturlash bo‘yicha kursga borganman. Biroq xarajatlarim ortgani hamda dasturlashni kurs orqali sekinroq o‘rganayotganim uchun uni to‘xtatganman.
Tez orada tushundimki, sizga sohani 100% o‘rgatib qo‘yadigan aniq bir kitob mavjud emas. U g‘oya berishi mumkin, ammo undan qanday foydalanish o‘zingizga bog‘liq.
Sohaga endigina kirib kelayotgan davrimda Jon Dakket’ning “HTML & CSS” kitobini o‘qiganman. Kitoblar chop etilganiga ancha bo‘lgan bo‘lsa ham, menga juda katta yordam bergan. Shuningdek, hujjatli videoroliklar ko‘rib, bloglarni muntazam kuzatishni ham kanda qilamasdim.
Agar kimdir “xunuk” kod yozayotgan bo‘lsa, unga Robert Martin’ning “Clean Code” va “Clean Architecture” kitobini o‘qishni maslahat beraman. Faqat buni biroz ko‘nikma hosil qilgach, kod yozishni boshlab bo‘lgandan keyin o‘qish kerak. Ana shunda sizga yo‘l qo‘yayotgan xatolaringizni osonroq anglash mumkin bo‘ladi. Agar kitob oddiy tuyulsa, demak hali kod yozishni boshlamagansiz.
Sun’iy intellekt dasturchilar ishini olib qo‘yadimi?
Hozir ko‘pchilik kod yozishda sun’iy intellekt vositalaridan foydalanmoqda. Men ham vaqti-vaqti bilan ChatGPT bilan “gaplashib” turaman: undan maslahat, g‘oya olishim mumkin, lekin hali kod yozdirib ko‘rmaganman.
ChatGPT hech qachon sizning uslubingizda kod yoza olmaydi. Baribir uni qayta ishlash, uslubingizga moslashtirish kerak bo‘ladi. Chunki har bir jamoaning o‘ziga xos dasturlash uslubi bor.
Sohaga endi kirib kelayotganlarga sun’iy intellektdan imkon qadar kamroq foydalanishni maslahat beraman. Chunki ular bu sohani endigina o‘rganayotgan bo‘lishadi. Bu bosqichdan o‘tgachgina, bu kabi SI vositalaridan foydalanish va u orqali ishni 10−15% ga tezlashtirish mumkin.
Mening fikrimcha, sun’iy intellekt sohani butunlay egallab ololmaydi. Chunki backend’chilar ishi bir xillikdan iborat emas, bu ijodiy yondashuvni talab qiladigan soha. Sun’iy intellekt esa bunday vaziyatlarga qachon moslasha olishi noma’lum. Balki umuman moslasha olmas ham.