Savollar... Qachon? Qanday qilib?
Salom blogdoshlar. Opennetdagi maqolalar bilan tanishib chiqish jarayonida menda bir savol tug'ilib qoldi. IT dunyosi, IT sohasi, IT texnologiyalar, IT bilan bog'liq fanlar yil sayin emas, soat sayin rivojlanib bormoqda. Buyilgi o'rganganlarimiz keyingi yilda deyarli eskirmoqda. Bu yil yaratilgan mahsulotni keyingi yilgacha takomillashtirish zarur. Aniq bo'lib qoldiki sohaning chegarasi yo'q, bitta mutaxassis sohadagi 2-3 ta yo'nalishni o'rganib borishi qiyin bo'lib bormoqda. Masalan C/C++ da dasturlovchi ma'lumotlar bazasi yoki tarmoq texnologiyalari yoyinki bizga oddiygina ko'ringan PHP ni mukammal o'rganib, ulardan foydalangan holda yetuk mahsulot yarata olishi mumkin emasligi aniq bo'lib bormoqda. Bu fikrimni noto'g'ri deydigan o'quvchi izoh qoldirishi mumkin va quyidagilar haqida o'qib, izlanib ko'rsin:
Balkim, 3-4 ta yo'nalishni baravar olib borish mumkin dersiz, ha mumkin, lekin professional darajada emas. Shunday vaziyatda Saidolim aka etgan yetuk mahsulotni yetishtira olamizmi? Umuman olganda savol: Shunchalik tez o'sayotgan IT sohasi yoniga yurtimiz mutaxasislari qachon yetib borishadi (IT — ko'p qavatli bino, soat sayin yangi qavatlar qurilmoqda, biz qachon eng yuqorigi qavatlarga yetib boramiz)? Buning uchun mutaxassis, uning mehnatidan foydalanayotgan kompaniya yoki davlat idorasi nimalarga etibor berishi kerak, chunki yurtimizda soha rivojidan hamma ham birdek manfaatdor. Balki «gektar-gektar hosilni yig'ishtirib olishda ishchi kuchi yetishmayotgandir»? Qachongacha 6-8 yil oldingi (zo'r kelsa 2-3 yil oldingi) texnologiyalar bilan ish yuritamiz? IT maydonida dasturchi/mutaxassis «universal soldat» singari ishlay olmaydiku? Hozirda yangi bilimlarni hazm qilishda kim qanchalik yutuqlarga erishmoqda, va qanday qilib? Savollarni cheki yo'qdek. Menimcha bu savollarga optimistik javob berishni foydasi yo'q, chunki tashqaridan kimdir kelib, aravani tortishmaydi.
Bu savollar bo'yicha mulohazalaringiz bilan o'rtoqlashasiz degan umiddaman.
- Ma'limotlar bazasi: NoSql, Cassandra, MongoDb, BigTable
- Cloud Computing, Distributed and Parallel Computing
- Amazon Web Services, SalesForce, SaaS, PaaS
- Node.js, Dart, Rust, FireFox OS
- Self Driving Cars, 3D Printers, Google Glass, Smart Home.
Balkim, 3-4 ta yo'nalishni baravar olib borish mumkin dersiz, ha mumkin, lekin professional darajada emas. Shunday vaziyatda Saidolim aka etgan yetuk mahsulotni yetishtira olamizmi? Umuman olganda savol: Shunchalik tez o'sayotgan IT sohasi yoniga yurtimiz mutaxasislari qachon yetib borishadi (IT — ko'p qavatli bino, soat sayin yangi qavatlar qurilmoqda, biz qachon eng yuqorigi qavatlarga yetib boramiz)? Buning uchun mutaxassis, uning mehnatidan foydalanayotgan kompaniya yoki davlat idorasi nimalarga etibor berishi kerak, chunki yurtimizda soha rivojidan hamma ham birdek manfaatdor. Balki «gektar-gektar hosilni yig'ishtirib olishda ishchi kuchi yetishmayotgandir»? Qachongacha 6-8 yil oldingi (zo'r kelsa 2-3 yil oldingi) texnologiyalar bilan ish yuritamiz? IT maydonida dasturchi/mutaxassis «universal soldat» singari ishlay olmaydiku? Hozirda yangi bilimlarni hazm qilishda kim qanchalik yutuqlarga erishmoqda, va qanday qilib? Savollarni cheki yo'qdek. Menimcha bu savollarga optimistik javob berishni foydasi yo'q, chunki tashqaridan kimdir kelib, aravani tortishmaydi.
Bu savollar bo'yicha mulohazalaringiz bilan o'rtoqlashasiz degan umiddaman.
«Universal soldat» bo'lishingiz bu sizning hohishingiz, sizda tanlash uchun doimo imkon bor.
2-3 ta sohani o'rganish shart emas. Masalan, mikrokontrollerlarni dasturlashda ma'lumotlar bazasi mukammal bilish kerak emas, ma'lumotlar bazasi admini dasturlashni bilishi shart emas, Android platformasi koderlari DirectX 11 ni bilishi kerak emas va hokazo.
Umuman, IT sohada universallik doimo ham yaxshi bo'lavermaydi.
P.S.:
PHP nimaga yetuk mahsulot yaratib bo'lmaydi? o_O
— PHP da mukammal mahsulot yaratib bo'lmaydi demoqchi emasman, aytmoqchi bo'lganim IT da X yo'nalishni (C/C++ yoki PHP yoki MobilDastrulash) professional darajada bilgan mutaxassis boshqa bir Y yo'nalishni professional darajada o'zlashtirishi qiyin demoqchiman. Bu yerda PHP misol sifatida etilgan. Chunki X ni professional o'rganish uchun kamida 2 yil shu bilan muntazam shug'ullanishi va real mahsulotlar yaratgan bo'kishi kerak, endi yana Y ni professional darajada bilishi uchun 2 yil vaqt sarflasa shu 2 yil ichida o'zining yo'nalishi X qay darajada o'zgarib, takomillashib ketishini tasavvur qilish qiyin emas.
Men ham maqolada bildirganim «universallik» cho'qqisiga chiqib bo'lmaydi, agar imkoni bo'lsada bu ayni bizni IT sohada befoyda ekanligini menimcha siz ham takidlayabsiz.
Demoqch bo'lgandim, vaqti kelib bizdagi zakazchiklar ham yangi texnologiyalarda qilib berishni so'rashni boshlashasa, shunda biz dasturchilar texnologiyalarni orqasidan yetib olamiz.
O'zimda bo'lgan, OpenGL ni o'rganayotgan paytimda Toshkentda hech qaysi firma OpenGL dan dasturchi qidirmagan. Hozir bo'lsa onda sonda eshitib turaman.
Vaqti kelib bizda ham o'yin tuzish rivojlanib ketsin, shunda ko'rasiz, yengi o'rganib kelayotgan dasturchilar OpenGL ni o'rgansammikan (yoki DirectX ni) degan savol berish boshlasahdi.(bir paytlar 2007-2009 yilllarda C# ni o'rganish «moda» bo'lgandi).
Man etmoqchi bo'lganim agar bizni bozordagi TALAB kuchayarkan, dasturchilar shunga qarab texnologiya orqasidan quvadi.
Hozir bo'lsa dasturlashda orqadamiz deya olmiman. Bizdagi eng katta kamchilik dasturchilar bitta joyda emas ya'ni bizda open source va davlat miqyosida ishlab chiqildan dasturlar deyarli yo'q. Shaxsiy firmalar bo'lsa chet el davlatlarini dasturlarini qilish bilan ovora.
O'rganganga ko'ra yaxshi til o'rganish kerak, kelajakda «yiqilmaslik» uchun.
Man har doim Stack Overflow saytini careera sini kuzatib boraman. U yerda PHP yo'qolib borayotganini ko'raman. Hohlasangiz nazar tashlanglar htttp://careers.stackoverflow.com. PHP ni yutgan tarafi uni juda soddaliki va shunchalik ko'p malumot borki 1 kunda shaxsiy cms ni yozishing mumkin. Daje dub bo'lsang ham.
Qayerdadir eshitgandim. Kimdir C/C++ ni o'rganib bizda ish topomagan ekan. Lekin PHP + CMS ni bilgangan ish shunchalar ko'pki hozirgi dasturchilarimiz faqat shu ikkalasini bilishadi. Mani oldimga ko'pchilik keladi shogirt qilib oling deb. Deyarli har doim bitta misol beraman, shuni qilsang bo'ldi olaman diman. Misol bo'lsa: C tilida BMP rasmni o'lchamini oladigan dastur qilish. Oddiy faylni o'qish. Lekin shu misolni xuddi 12 etajli uyni qurishday tasavvur qilishadi.
Hozirgi kunda PHP o'rganish ancha oson bo'lgan(JSP, ASP, Python, Ruby on Rails ga nisbatan) tillardan bittasi va ko'pgina tayyor CMS va Frameworklar mavjud bo'lgan til, shuning uchun ko'pchilik dasturchilar PHP ga «o'tib ketishmoqda». Yana bizda «zakazchik»lar dasturchining instrumentiga pul to'lashni hohlashmaydi, shuning uchun hammaning PHPga o'tishi tabiiy hol. Lekin bu holat qachondir tugashi kerakku, bizda ham katta-katta proyektlar qilinadiyu, o'sha qolib ketayotgan binoning qavatlari quriladiyu… Lekin shunga dasturchilarimiz tayyor bo'lishlari kerak.
Dasturchi universal bo'la olmaydi, u o'zining yo'nalishini yaxshi bilsa yetarli, universal bo'lishga «fizicheskiy» ulgurib bo'lmaydi. Lekin yangiliklardan xabardor bo'lib turish kerak. Chet elda shuuuncha opensource proyektlar qilinadi, shularning ko'p qismini dasturchilar asosiy ish vaqtidan bo'sh paytda qiladi. Bu narsa dasturchida yangi bilimlarni olishiga sabab bo'ladi. Bizda ham shunga o'xshash opensource proyektlar (qiziq! va foydali!) yo'lga qo'yilsa va shunga o'xshash proyektlarda ishlaganlar bo'lsa o'z tajribalarini baham ko'rsa yaxshi ish bo'lardi.
Bizdagi yana bir kamchilik Teamwork degan narsa ancha sust, shuning uchun bizga yaxshi «Software Engineer»lar yoki proyekt menejerlar kerak (dasturlash bosqichidan o'tgan, «universal dasturchiga» yaqinlashib qolgan va boshqa qo'shimcha hislatlarga ham ega bo'lgan odam :))! Proyekt menejer odamlarni boshqara olishi hamda har bir dasturchi qilayotgan ishdan hech bo'maganda umumiy bilimga ega bo'lib, dasturchilarga vazifani to'g'ri qo'yishi va natijalarni umumlashtirishi lozim. Mana shunda dasturchi universal bo'lmasa ham, bunday teamworkdan universal maxsulot chiqadi…
P.S. C/C++ ni o'rganishni hammaga maslahat berardim(dizaynerlardan boshqa :)).