Pages

Sunday, January 5, 2014

Ishga kirish: Hindistonlik talabalar tajribasidan

Job Interview


Salom, ushbu maqolada Hindistonda talabaning IBM kompaniyasiga dasturchi sifatida ishga kirishi uchun bo'lib o'tgan suhbatini keltirib o'tmoqchiman. Hindistonda dunyoga mashxur HP, IBM, Oracle, Amazon kabi kompaniyalarning filiallari mavjud bo'lishi bilan birga AT autsorsing hizmatlarini ko'rsatuvchi milliy kompaniyalarning soni ham juda ko'p, demak, bu yerda AT sohasi mutaxassislari va dasturchilarga bo'lgan talab juda yuqori. Shu bilan birga har yili oliygohlarni bitirib chiqayotgan talabalar AT sohasida qo'rqmasdan ish topa olishadi. Faqat ulardan yaxshigina bilim talab qilinar ekan.

Sinovlarga tayyorgarlik

Ishga kirish uchun sinov va suhbatga tayyorgarlik huddi bizni yurtimizdagi oliygohlarga kirish uchun bo'ladigan yillab tayyorgarliklar kabi izchil olib borilar ekan. Masalan bizda oliygohga kirish uchun abiturient kirish fanlari bo'yicha o'z ustida ishlashi, repetitor, o'quv markazlarida qo'shimcha shug'ullanishi talab etilsa, bu yerda ham huddi shunday, oliygohda o'qigan talaba kamida yarim yil soha bo'yicha qo'shimcha o'qib izlanadi, turli o'quv markazlarida pullik kurslarga qatnashadi. Bizda kitob rastalarida turli fanlar bo'yicha axborotnoma testlari bosilib yotgan bo'lsa bu yerda AT sohasiga oid kitoblarni hatto parfumerya do'konidan ham topish mumkin. Tasavvur qiling bizda ham C++, Java, .NET, Operatsion tizimlar, Matematik logika, Kompyuter grafikasi, Dasturlash injineryasi, Ma'lumotlar bazasi, Tarmoq boshqaruvi kabi nomdagi kitoblar do'konlarda qatorlashib turibdi… Bundan tashqari Hindistonda ishga qabul qilish uchun ommabop testlash standartlari (CAT, CEET, CMAT, NET, GMAT) ishlab chiqilgan.

Birinchi bosqich

Ishga kirishda talaba bir necha bosqichda sinovlardan o'tadi. Avvalo CAT — common aptitude test (umumiy qobilyat sinovi) bo'yicha 50-100 ta atrofida test olinadi. Bu sinovga tayorlanish uchun universitet va o'quv kurslarida o'tiladigan maxsus fan (Quantitative Aptitude) mavjud, bunda talaba tezkor hisoblash usullari, matematik logika, sonli hisoblash usullari kabi qobilyatini rivojlantiradi. Bu kabi testlarni ushbu sahifada ko'rib chiqishingiz mumkin.

Texnik suhbat

Keyingisi texnik suhbat. Suhbat jarayonida talaba dasturlash asoslaridan tortib ma'lum bir texnologiyagacha bo'lgan savollar bilan bombardimon qilinadi. Meni qiziqtirgan jihati shuncha nazariy bilimlarni o'zlashtira olish mumkinmi? Savolga maqola yakunida javob topasiz. Endi bevosita o'sha tanishimning kompaniyaning yetakchi dasturlovchisi yoki PM (project manager) bilan bo'lib o'tgan suhbatida berilgan savollarni keltirib o'taman, intervyu davomiyligi 1,5-2 soat:
1. Qaysi yo'nalish va dasturlash tili bo'yicha savollar sizga qulayroq? (C/C++ tanlangan)
2. Berilgan butun sonni birorta arifmetik operator ishlatmagan holda 8 ga ko'paytirib bering.
3. 2 tomonlama bog'langan ro'yhat (Double linked list)dan berilgan elementni o'chirish dasturi.
4. 3-topshiriqni qo'shimcha yordamchi o'zgaruvchi ishlatmay bajarib bering.
5. Berilgan matematik ifodani to'g'ri ifoda ekanligini tekshirishda qaysi ma'lumotlar tuzilmasi (data structure)dan foydalanasiz va qanday qilib?
6. Berilgan massivni teskariga o'giruvchi dastur tuzib bering.
7. 6 topshiriqni qo'shimcha o'zgaruvchi ishlatmay bajaring.
8. Operatsion tizimi nima?
9. Re'jalashtirish algoritmlari (Scheduling algorithms) ni tavfsiflab bering, qaysi OS qay biridan foydalanadi?
10. Soket dasturlash (Socket programming) bilan ishlab ko'rganmisiz?
11. Bitiruv malakaviy ishingiz va undagi vazifangiz haqida so'zlab bering.
12. TCP/IP nima?
13. TCP bilan UDP ning qanday farqlari bor?
14. OSI nima va uning qatlamlari (OSI Layers) haqida so'zlang.
15. IP adres nima?
16. Soket yordamida klient-server ilovasini yozib bering.
17. Dasturni qanday testlash mumkin?
18. Saralash algoritmlari (Sorting algorithms) haqida nimalarni bilasiz?
19. Pufakcha, tanlash yordamida va bo'lish yordamida saralashning vaqt murakkabligi (Time complexity) qanday?
20. Algoritmning vaqt murakkabligi qanday hisoblanadi?
21. C tili yordamida biror bir grafik dasturlashni ko'rsatib bering.
22. Virtual hotira nima va nima uchun kerak?
23. Paging nima va nima uchun ishlatiladi?
24. Ichki va tashqi fragmentatsiya nima?
25. Bu suhbatga kelish uchun nimalar qildingiz?
26. Overloading va overriding nima?
27. Xotira sizilishi (memory leakage) nima?
28. Ko'rsatgich (pointer) nima?
29. Xususiy konstruktor (private constructor) bo'lishi mumkinmi va nima uchun?
30. Virtual destruktor (virtual destructor) bo'lishi mumkinmi va nima uchun?
31. Berilgan daturlarni natijasini aytib bering. (4-5 ta kichik lekin chalg'ituvchi dastur kodlari beriladi)
32. Arifmetik ifodalarni hisoblashda qaysi tuzilma (data structures) ishlatiladi?
33. Daraxt tuzilmasi (Tree) haqida gapirib bering.
34. Vorislik (inheritance) nima va vazifasi.
35. Andoza (template) nima?
36. STL nima?
37. Ma'lumotlar bazasi nima?
38. Taqsimlangan operatsion tizimlar (Distributed OS) nima?
39. Dasturlash injineryasi (Software engineering) va uning modellari haqida?
40. Operatorni qayta yuklash (operator overloading) nima?
41. Qaysi operatorlarni qayta yuklab bo'lmaydi?
42. Polimorfizmga real misol keltiring.
43. Ushbu dasturni natijasi: stack overflow hatoligimi yoki checksiz takrorlanish, va nima uchun?
44. Linux da ishlatadigan komandalariz?
46. Shell va kernel nima?
47. Jadvallarni normallashtirish va denormalizatsiya?
48. OOP konsepsiyasi nima?
Deyarli 50 taga yaqin texnik savollar berilgan. Har biriga o'rtacha 2.5 minut vaqt to'g'ri kelyabdi. Bunda barchasiga to'liq javob berish talab qilinmaydi, agar berilgan savolga javob bera olishingiz ma'lum bo'lsa yoki javobingiz hato bo'lsa keyingi savolga tezda o'tishadi. Savollarning yarmi C/C++ ga yo'naltirilgan, agar siz birinchi savolga Java yoki boshqa dasturlash tilini tanlasangiz, shu bo'yicha savollarni kutib olishingiz mumkin.

HR menejr bilan suhbat

Keyingi bosqichda kadrlar menejeri bilan suhbatdan o'tiladi. Suhbat texnik savollardan holi, faqatgina uning dunyoqarashi, oilasi, qiziqishlari haqida intervyu bo'lib o'tadi, bunda nomzodning ingliz tilida muloqot qila olish qobilyati ham etiborga olinadi. Bu suhbatga tayorlanishda universitet yoki o'quv kurslarida o'tiladigan Business Communication (biznes muloqoti) darslari muhim ahamiyatga ega. Bu darslarda ingliz tilida qanday salomlashishdan tortib biznes xatlari, rezyume yozish, intervyu madanyati, hatto ish joyida qanday ovqatlanishu ishdan bo'shatilgan paytda bossga oxirgi so'z qanday bo'lishigacha o'rgatilar ekan, qoyil. Nomzodga berilgan savollar:
1. Oilangiz haqida gapirib bering.
2. Kuchli va kuchsiz jihatlaringiz.
3. Keyingi ta'lim (Master yoki PhD) ni davom ettirasizmi?
4. Nima uchun bizning kompanyaga qo'shilmoqchisiz?
5. Qaysi sport turi bilan shug'ullanasiz? (Kriket degan javob bo'lgan.)
6. Milliy kriket assotsiatsiyasi prezidenti kim?
7. Qaysi qo'shiqchini tinglaysiz? (Lata Mangeshkar)
8. U qayerda tug'ilgan va so'ngi qo'shig'i.
9. Punada yoki Banglorda, qaysi shaxarda ishlashni xohlaysiz?
10. Kompaniyamiz haqida nimalarni bilasiz?
11. Kompaniyamiz emblemasi nimani anglatadi?
12. Dunyoqarashingizni qanday yangilab borasiz?
13. Xorijga ishga taklif qilishsa borasizmi?

Bu bosqichda 15 ga yaqin savol yuzasidan erkin fikringizni bayon etib berishingiz kerak, so'zlashganda ham ingliz tilida behato va ravon so'zlasha olish muhimdir. Bilamizki Hidnistonda 100 dan ortiq til mavjud, 1000 dan ortiq lahja ishlatiladi, hind va ingliz tillari rasmiy davlat tili hisoblanadi. Shu sababli ingliz tili bizness, fan, muloqot tili sifatida ishlatiladi.

Ee, bu IBM bo'lsa shuncha sinov bo'ladida, hamma ham bu kabi intervyular olmasa kerak deb o'ylashingiz mumkin, yo'q deyarli barcha kompaniyalarda shu xolat. Men bu maqolani yozishdan avval 20 ga yaqin talabaning ishga kirish uchun topshirilgan sinov yozishmalarni o'qib chiqdim, hammasida deyarli shu jarayon.

To'grisini aytsam texnik intervyuda berilgan savollarni universitet o'quv re'jasi yordamida o'rganib chiqsa bo'ladimi, masalan men TATU da 4 yil bakalavr bosqichida o'qigan bo'lsam ushbu savollarni 80% ni o'z ichiga oluvchi fanlar o'tilgan edi bu fanlarda savollarning 10-15%ni ko'rganmiz, bazilarini o'sha paytlar tushunganmiz va ba'zlilarini yo'q. Chunki men o'qigan davrda C/C++ dan ko'ra Pascal dasturlash tilini o'tishar edi, lekin hozirda o'quv re'jaga C/C++ asosiy dasturlash tili sifatida kiritilgani quvonarli holat, hozirda ushbu savollarni deyarli 100% ni qoplovchi fanlar bizda o'tiladi, lekin o'qituvchi qay darajada tushuntirib bera oladi va talaba qay darajada o'zlashtira oladi, bunisi menga qorong'u. Lekin shu o'rinda bemalol aytishim mumkinki 4-5 yil davomida universitetda o'qigan, o'qiganda ham astoidil o'qigan va mehnat qilgan talaba bu savollarga javob bera oladi.

Mana 3 ta sinov-intervyu yordamida talaba qaysidir AT firmaga yosh kadr sifatida ishga olindi. Tasavvur qilishingiz mumkin, ushbu savollarga javob bera olgan talaba dasturchi sifatida yaqin 4-5 yil ichida qanday natija ko'rsata oladi. Bilishimcha bu yerda ko'pchilik dasturchilar 4-5 yil amaliyotni ko'rgandan so'ng xorij davlatlari (asosan AQSh) ga ish yoki MBA kurslariga ketishar ekan. Har yili CDAC, ACTS kabi AT o'quv markazlarini minglab talabalar bitirib chiqishadi, har yili minglab talabalar xususiy va davlat kompaniyalariga ishga olinadi, har yili shu tarzda kadrlar almashinuvi ro'y beradi.

Bu albatta fresher — talabalikni yakunlab ishlab chiqarishga qadam qo'yayotganlar uchun bo'lib o'tgan suhbat, menimcha tajribali dasturchilardan bu kabi elementar bilimlar so'ralmasa kerak. Ular haqida o'zlari qatnashgan loyihalar va ishlagan ish joyini bilgan holda ko'p narsalarni bilib olsa bo'ladi. Keyin ko'pchilik nomzodlar birinchi urinishdayoq o'ta olmaydi, bazi talabalar 3-5 martalab sinov topshirishadi, kamida 2 ta kompaniyada suhbatdan o'tishadi. Va baribir ko'zlangan maqsadga erisha oladilar.

Ushbu maqoladan maqsad avvalo ilg'or davlatlardagi tajriba bilan yaqindan tanishtirish bo'lsa, keyingisi o'zimizda ham bu manzarani ko'rish ishtiyoqi, ya'ni bizda oliygohlarni bitirayotgan talabalar fikrida ham diplomli mutaxassis emas, bilimli mutaxassis va uning erishishi mumkin bo'lgan yutuqlari haqida tushunchalarni berishdir. Hozirgi zamonda axborot texnologiyalari sohasi jamiyatda beqiyos o'rin tutmoqdaki, rivojlangan davlatlarda kelajak yillar uchun dasturchilar tayorlashning turli re'jalari ishlab chiqilmoqda. Hatto maktabning boshlang'ich sinflarida dasturlash asoslari haqida darslar kiritishgacha bo'lgan re'jalar ham yo'q emas.

P.S. Iltimos, agar biror bir korxona yoki firmada dasturchi yoki shunga yaqin mutaxasiss sifatida ishlayotgan bo'lsangiz, biz bilan tajribalaringizni o'rtoqlashing, ishga kirish jarayoni, qanday savollar berilgani haqida izohda qoldirishingiz mumkin. 

No comments:

Post a Comment