Java dasturlash tili ilk paydo bo‘lgan davridayoq qulay sintaksisi va keng imkoniyatlari bilan boshqa tillardan ajralib turgan. Shu bois u tez rivojlanib, unda yaratilayotgan loyihalar hajmi ham jadal ortib borgan.

Jamoa kengaygani sari tilning bazasi kuchayib, foydalanuvchilar uchun yangi imkoniyatlar ochildi. Oradan yillar o‘tib, turli dasturlash tillari yaratilgan bo‘lsa-da, ular Java kabi chuqur tarix va keng rivojlanishga ega bo‘lmadi.

Spot Uzum’da senior Java dasturchisi Nasibulloh Yandashev bilan Javaning qanday dasturlash tili ekanligi, qaysi sohada unga talab yuqoriligi hamda SI rivojlanishining dasturlashda ish o‘rinlariga qanday ta’sir ko‘rsatishi haqida suhbatashdi.

Intervyuning to‘liq versiyasi video-shaklda taqdim etilgan:



java, nasibulloh yandashov, texnologiyalar, uzum

Nasibulloh Yandashev,

Uzum'da senior Java dasturchisi.

Asli Namangandanman. 2008−2009-yillarda maktablarda o‘rgatiladigan asosiy dasturlash tili Pascal bo‘lgan. Unda biror narsa yaratish ancha murakkab bo‘lsa-da, u “dasturlash nima?”, degan ilk savollarimga javob bergan. Shu tariqa sohaga kirib kela boshlaganman.

2013-yilda Toshkent axborot texnologiyalari universitetida kompyuter injiniring yo‘nalishida tahsil oldim. O‘qish davomida Java’ni chuqur o‘rgandim, shuningdek, boshqa texnologiyalarni ham o‘zlashtirdim. Keyin ish faoliyatim boshlandi.

Xalqaro kompaniyalarda, jumladan, Exadel, Inovia Group, Rossiyaning Diasoft va Sberbank kabi kompaniyalarida ishlab, tajriba orttirdim. Keyinchalik AQShning ayrim kompaniyalarida, jumladan, Luxoft’da faoliyat yuritdim. Hozirda Uzum’da faoliyatimni davom ettirmoqdaman.

O‘sha paytlarda “veb-dasturchi” yoki “mobil dasturchi” degan tushunchalar qo‘llanilardi. Veb-dasturchidan frontend bilan backend birgalikda bilish talab qilinardi. Oradan yillar o‘tib, bu ikki yo‘nalish ajralib ketdi. Shundan so‘ng, menga ko‘proq yoqqani uchun backend’ga o‘tib ketdim.

Agar Java’ni o‘rganadigan bo‘lsangiz, albatta Backend’chi bo‘lishingiz kerak.

O‘sha paytda tezroq o‘rganib, ish topish imkoniyatini beradigan yo‘nalishlar ham bo‘lgan, masalan, frontend texnologiyalari. Lekin ularning vazifasi hozirgidek keng emasdi: asosan sayt dizaynini chizish bilan cheklanardi. Yoki, PHP dasturlash tilini tanlashim mumkin edi. Ammo buni xohlamadim, ko‘proq sohalarni qamrab oladigan tillarni o‘rganishni istardim. Shu orqali Java’ga kirib kelganman.

Barchasi Java haqida

Java bugungi kunda eng kuchli va zamonaviy dasturlash tillaridan biri. U keng qamrovli obyektga yo‘naltirilgan standartlari bilan boshqa tillardan ajralib turadi. Java’ning asosiy afzalliklaridan biri uning universalligi: ushbu til mobil ilovalar yaratishda, veb-dasturlar ishlab chiqishda, hattoki turli qurilmalar uchun kod yozishda keng qo‘llaniladi. Shu sababli uni umumiy, universal dasturlash tili, deb atash mumkin.

Java dasturchi — bu ushbu til orqali dasturlar, avtomatlashtirilgan tizimlar yoki veb-saytlar yaratadigan mutaxassis. Bugungi kunda ularga talab, ayniqsa, fintech sohasida, ya’ni banklar va moliya tashkilotlarida juda yuqori.

Chunki, pul bilan bog‘liq tizimlarda xavfsizlik va barqarorlik muhim, java esa aynan shu talablarga javob beradi. Bundan tashqari, marketpleys loyihalari, o‘yin ishlab chiqish yoki murakkab backend tizimlarini yaratishda ham java mutaxassislariga ehtiyoj mavjud.

Umuman olganda, java dasturchi qaysi yo‘nalishda ishlashni o‘zi tanlaydi: kimdir mobil ilovalar yaratadi, boshqalar esa tizimlarni avtomatlashtirish, jarayonlarni boshqarish yoki backend’da ishlashni ma’qul ko‘radi.

Qayerda o‘rgangan yaxshi — kurs yoki oliygoh?

Ochig‘i, menga ko‘proq kurslar yordam bergan. Chunki oliy ta’limda asosan umumiy fanlarga urg‘u berilgan, dasturlashning o‘ziga yetarlicha chuqur e’tibor qaratilmagan. Shu sabab darsdan keyin qo‘shimcha kitoblar o‘qib, kurslarga qatnab o‘rganganman.

O‘sha paytlarda hozirgidek o‘quv markazlari ko‘p emas, dasturlash sohasi endi-endi rivojlanayotgan davr edi. Tajribali dasturchilarni topib, ulardan iltimos qilib, uyida yoki kichik ofisda dars olardik. Men ham xuddi shunday yo‘l bilan o‘rganganman.

Dasturlashni 12 kishi o‘qishni boshlagandik, lekin oxiriga kelib faqat men va yana bitta odam qolganmiz. Boshqalar qiyinchiliklarga chiday olmay tashlab ketishdi. Chunki, darslar juda tez o‘tilar, bilimni qayta ishlab, natija ko‘rsatish oson emasdi.

Boshqa tillarga qaraganda hajmi katta va resurslari ko‘p bo‘lgani uchun Java’ni o‘rganish ko‘proq vaqt talab qiladi. Ish topishgacha bo‘lgan jarayon ham uzoqroq. Shu sabab ko‘pchilik yo‘lidan qaytib ketishi mumkin.

Menimcha, dasturlashdan umuman yiroq bo‘lgan odamlar avval o‘quv markazlariga borgani yaxshi. U yerda to‘liq mutaxassis bo‘lib chiqish qiyin, lekin boshlang‘ich bilimni olib, beginner darajasigacha chiqib olish mumkin. Keyin esa baribir o‘z ustingizda ishlashingiz kerak bo‘ladi. Hozirgi paytda bu ancha osonlashgan — sun’iy intellekt vositalaridan foydalanib, savollar berib, o‘zingiz uchun yo‘l xaritasi tuzib olishingiz va shu yo‘l bo‘ylab harakat qilishingiz mumkin.

Kursni bitirdim degani, ish naqd degani emas

Kursni tugatdim, degani sizga ish bor degani emas. Chunki o‘rganayotgan dasturchilar soni bilan ish beruvchilardagi bo‘sh ish o‘rinlari soni orasida katta farq bor. Masalan, taxminan 10 ta o‘quvchiga 1 ta ish joyi to‘g‘ri keladi desak ham bo‘ladi.

Yana bir masala shuki, kursni tugatganlarning hammasi ham haqiqiy dasturchi bo‘lib chiqmaydi. Ko‘pchilikda shunday fikr bor: “Men kursni bitirdim, demak, endi albatta ishga joylashaman”. Bu, go‘yoki, diplom olgan odam “menga ish naqd”, degandek. Lekin aslida unday emas. Kurslarni tamomlash ishga kirishni kafolatlamaydi.

Bugun ko‘pchilikning turli kurslarni tugatgandan keyin ish topolmayotgani ham shundan. Lekin bu degani o‘quv markazlar yomon o‘qityapti, ular aybdor degani emas. Bu avvalo odamning o‘ziga bog‘liq: qanday darajada bilimni o‘zlashtirsa, undan qanday foydalansa, shunday dasturchi bo‘lib chiqadi.

Ishga kirish qanday bo‘ladi?

Google yoki Amazon’ni olaylik. Ularga kirish uchun avvalo ish beruvchi sizni topadi, kuzatadi, tajribangizni o‘rganadi. Eng muhimi — kuchli algoritmik bilim kerak bo‘ladi. Ingliz tilingiz ham yaxshi bo‘lishi shart. Keyin esa bir nechta bosqichli jarayon boshlanadi. Odatda bu 4−5 bosqichdan iborat bo‘lishi mumkin: algoritmik savollar, arxitektura bo‘yicha suhbatlar, live coding va yakuniy suhbatlar.

Bizdagi kompaniyalarda esa jarayon odatda quyidagi 3 bosqichdan iborat:

  1. HR suhbat. Ish beruvchi siz bilan suhbatlashib, bu ishga mos kelishingizni tekshiradi.
  2. Texnik suhbat. Bu 1 soatdan 3 soatgacha davom etishi mumkin. Unda live coding, savol-javoblar, turli topshiriqlar bo‘ladi.
  3. Asosiy qaror qabul qiluvchi rahbar yoki komissiya bilan suhbat. Bu jarayon oxirgi tayyorlov hisoblanadi.

Ba’zi kompaniyalarda bu jarayon qisqaroq yoki ko‘proq bo‘lishi mumkin — 2 bosichdan 5 bosqichgacha. Masalan, ba’zilar test loyihalar berishadi, ayrimlari esa arxitekturaga oid alohida suhbat o‘tkazadi.

Uzum’dagi jarayon ham uch bosqichdan iborat bo‘lgan: birinchi HR bilan suhbat, keyin bilimni tekshirish bo‘yicha texnik intervyu, va oxirida komissiya yoki yuqori lavozimdagi rahbar bilan suhbat.

Texnik suhbatda esa sizning darajangizga qarab savollar berishadi. Masalan, Senior yoki Lead bo‘lsangiz, mikroservis arxitekturasi qanday qurilishi, xizmatlar o‘zaro qanday muloqot qilishi hamda Kafka qanday ishlashi kabi texnologik savollar berilishi mumkin.

Tajriba bo‘lmasa, nima qilish kerak?

Ochig‘ini aytganda, tajribasi yo‘q odam ko‘pincha komissiyagacha yetib bora olmaydi. Hatto birinchi bosqich — HR bilan suhbatdayoq to‘xtab qolishi mumkin. Chunki, ish beruvchi eng avvalo tajribangizga qaraydi.

Ammo bu degani yo‘l yopiq degani emas. Tajribani oshirish uchun nima qilish kerak? Eng birinchi navbatda, dasturlash tilini yaxshilab o‘rganib olish, so‘ng mustaqil loyihalar qilish. Iloji bo‘lsa, tekinga bo‘lsa ham ishlash kerak — sherik bo‘lib, kimdandir tajriba olish uchun.

Keyin esa ochilgan junior pozitsiyalarga imkon qadar ko‘proq ariza topshirish zarur. Birinchi marta ish topish qiyin bo‘ladi, lekin bunga erishgach, jarayon yengillashadi. Shu sababli, boshlanishida eng yaxshisi — o‘z loyihalaringizni amalga oshirish, startaplarga qo‘shilish yoki tanishlar bilan birga bepul bo‘lsa ham ishlash.

Sun’iy intellekt xavfmi?

Shaxsiy fikrim, sun’iy intellekt dasturchilarga yordamchi bo‘ladi. U ko‘plab muammolarni tezroq hal qilishga yordam beradi. Lekin to‘liq dasturchining o‘rnini bosolmaydi. Chunki, har qanday natijani baribir dasturchining o‘zi tahlil qilib, optimal variantni tanlashi kerak.

Biroq SI dasturlash bozorida bir muammoni keltirishi mumkin: junior va beginner darajasidagi dasturchilar uchun ish topish yanada qiyinlashadi. Oldin kompaniya 10 ta dasturchini yollagan bo‘lsa, hozir sun’iy intellekt yordamida 5 ta dasturchi yetarli bo‘lishi mumkin. Bu esa kuchsizroq yoki endigina ish boshlayotgan dasturchilarga imkoniyatni qisqartiradi. Tajribali va kuchli mutaxassislar esa o‘z o‘rnini topishda davom etadi.

Maslahatlar. Eng avvalo, dasturchi sabrli bo‘lishi kerak. Sohaga kirayotganda dastlabki jarayonlar qiyin bo‘ladi: o‘rganish ham, ish topish ham. Lekin sabr va matonat bilan o‘rganishda davom etish kerak. Komfort zonaga tushib qolmaslik zarur. Agar muammo bo‘lsa, yordam so‘rash kerak: internetdan mentor topish, tajribali dasturchilardan maslahat olish juda foydali.

Xatolar. O‘rganish jarayonida eng katta xato — shoshilish. Har xil resurslarga sakrab yurish kerak emas. “Tezroq o‘rganaman”, degan niyat ko‘pincha teskari natija beradi. To‘g‘ri struktura bo‘yicha, izchil o‘qish muhim. Ko‘pchilik YouTube’dan boshlaydi, lekin hamma ham sifatli kontentni topa olmaydi. Natijada noto‘g‘ri yo‘lga kirib qolish xavfi katta.

Keyingi xato — ish topishda. Ko‘pchilik junior sifatida darhol katta ish topishga harakat qiladi. Aslida esa, bu bosqichda eng to‘g‘ri yondashuv — o‘z loyihalaringizni yaratish, turli yo‘nalishlarda ko‘nikmalaringizni sinab ko‘rish. Ish uchun suhbatlarda o‘zingiz qilgan loyihalarni ko‘rsatish katta ustunlik beradi.