July 27, 2020

Ish beruvchilar Junior Python developer'dan nimani kutishadi

Python eng mashhur dasturlash tillaridan biridir. U 2020 yilda Stack Overflow reytingida uchinchi o'rinni egallagan. O'rganish juda oson va bozorda bo'sh ish o'rinlari etishmaydi. HeadHunter Python dasturini ishlab chiqaruvchisi uchun oyiga 3,340 bo'sh ish o'rinlarini taklif etadi. Python veb-ilovalarni yaratish, Data Science uchun ishlatiladi. Yandex.Practicum-dagi "Python dasturchisi" kursi muallifi Anastasiya Novikova Python dasturchilarining pozitsiyasini so'rashda o'zining tajribasi bilan o'rtoqlashadi va ish beruvchilar odatda junior mutaxassislardan nimani kutishlarini aytib berdi.


Ta'lim darajasi haqida:


Odatda, Junior Python dasturchisi uchun rezyume texnik yoki matematik mutaxassisliklarning so'nggi kurslari bitiruvchilari yoki talabalari tomonidan yuboriladi. Qo'shimcha ta'lim sifatida, Stepik, Coursera yoki boshqa platformalarda tugallangan kurslar asosiy ta'limga qo'shimcha bo'ladi. Agar siz Data Science-da ishlashni xohlasangiz, unda magistrlik yoki aspirantura, nashrlarning mavjudligi va konferentsiyalarda nutq so'zlaganda bonus bo'ladi.

Ba'zida ish beruvchilar oliy ma'lumotga ega emaslarni ham ishga olishadi. Bunday abituriyentlar uchun, qoida tariqasida, qo'shimcha testlar o'tkaziladi, ular test topshirig'iga va portfoliodagi loyihalariga ko'proq e'tibor berishadi.

Ish tajribasi qanday tekshiriladi?


Odatda, yangi boshlanuvchilar uchun ish tajribasi talab qilinmaydi. Ammo ba'zi bo'sh ish o'rinlari uchun ular yarim yillik - bir yillik tajribaga ega bo'lgan nomzodlarni yoki amaliyotni tugatgan nomzodlarni qidirishadi. Agar siz biron joyda ishlamagan bo'lsangiz, tugallangan shaxsiy loyihalaringizni ko'rsatishga tayyor bo'ling. Shuningdek, nomzodning kasbga bo'lgan qiziqishini va uning rivojlanish istagini tekshirish uchun shaxsiy loyihalarga qiziqishadi.

Tugallangan loyihalar, masalan, GitHub-dagi shaxsiy profilda e'lon qilinishi yoki portfolio saytini yaratishi mumkin. Suhbat davomida siz oldingizda vazifa nima ekanligini, qanday texnologiyalarni tanlaganingizni va nima uchun ekanligini aytib berishingiz kerak. Qo'shimcha loyihalar nafaqat qobiliyatlarini oshirishga, balki boshqa nomzodlardan ajralib turishga yordam beradi.

Avval qanday soft skills foydali bo'ladi?


«Kremniy vodiysi» seriali va uning qahramoni Richard Xendrix, Pied Piping bosh direktori esingizdami? U juda yaxshi dasturchi edi, lekin u odamlar bilan muloqot qilish, jamoada ishlash va ishchilarni boshqarish qobiliyatiga ega emas edi. Amalda, berilgan vazifalarni texnik ko'nikmalar yordamida hal qilish qobiliyati etarli emas, nomzodning muvaffaqiyati uning ijtimoiy xususiyatlariga ham bog'liq.

Mas'uliyat, kasbiy o'sishga intilish, ish vaqtini boshqarish va jamoada ishlash - bu IT sohasidagi deyarli har qanday lavozim uchun zarur bo'lgan asosiy soft skills lardir.

Yosh dasturchi yangi materialni tezda o'zlashtirishi, vazifalarning mohiyatini, talablarni tushunishi va odatdagi ishlarga tayyor bo'lishi kutiladi. Intervyu paytida, yosh mutaxassislardan: "Munozarali ishlarga qanday munosabatda bo'lasiz?" - chunki ularning ishi ko'pincha monoton jarayonlarni o'z ichiga oladi, har doim ham ijodiy emas. Ish beruvchi sizni qo'rqitmoqchi emas - aksincha, u bir necha oydan keyin bu lavozimda zerikib qolmasligingizga ishonch hosil qilishni xohlaydi va siz ketishni xohlamaysiz. Bu savolga javobni quyidagicha shakllantirish mumkin: "Endi men uchun bunday vazifalar - bu tajriba orttirish imkoniyatidir, men kelajakda yanada qiyin ishlarni bajarishim uchun ularda o'z mahoratimni mashq qilaman."


Suhbat, shuningdek, nima uchun ushbu lavozimda va ushbu kompaniyada ishlashni xohlayotganingizni so'rashi mumkin. Ushbu savoldan foydalangan holda, ish beruvchi ariza beruvchining kompaniya uchun mosligini yoki kompaniya ariza beruvchiga mos keladimi yoki yo'qligini tushunishga harakat qiladi. Agar siz biron bir loyiha bilan chindan ham qiziqmasangiz, unda ishlash zavq keltirishi dargumon va kompaniyaga foyda keltirishi dargumon.

Suhbatdan oldin kelgusidagi vazifalaringiz, ular bilan kompaniyada ishlaydigan mahsulotlaringiz va loyihalaringiz, kompaniyaning rivojlanish bosqichi (masalan, startap yoki IT giganti), korporativ madaniyat, xodimlarning sharhlari, joylashuvi, ish sharoitlari. Siz uchun haqiqatan ham muhim bo'lgan narsalarni tanlang. Bu sodda bo'lishi mumkin, "bu men o'z vakolatlarimni to'liq anglab, martabaimni davom ettira oladigan kompaniya" yoki "menimcha, mening tajribam talablarga to'la mos keladi" va asosiy ko'nikmalar ro'yxati.

Qanday texnik ko'nikmalarga ehtiyoj bor?


Asosiy shart - Python dasturlash tilini bilish. Ammo ba'zida Python dasturchisini tanlash uchun boshqa mashhur tillarda (masalan, C ++, Java, Go) tajribaga ega bo'lgan mutaxassislar hisobga olinadi.

Intervyularda ish beruvchi kompyuterning ishlashi yoki Internet qanday ishlashini so'rash kabi umumiy IT savodxonligini sinovdan o'tkazishi mumkin. Ko'pincha nomzodlardan algoritmlar va ma'lumotlar tuzilmalari to'g'risida bilimga ega bo'lishlari kutilmoqda. Ba'zi kompaniyalar ushbu mahoratni sinab ko'rishga bag'ishlangan alohida bosqich yoki hatto tanlovning bir necha bosqichlariga ega. Nima uchun ishlab chiqaruvchi haqida


Shuningdek, intervyularda ko'pincha ma'lumotlar bazalari va ramkalar bilan ishlash tajribasi, ko'p qirrali va asenkron dasturlash tamoyillarini tushunish va buyruq satrida ishlash qobiliyati haqida so'raladi.

Python ishlab chiqaruvchilari «машинное обучение» ni ham o'rganishi katta plyusdir. Shuning uchun Data Science bilan bog'liq pozitsiyalarni tanlashda ular mashinalarni o'rganish algoritmlari to'g'risidagi bilimlarni va ularni qo'llash qobiliyatini, Kaggle yoki xakatonlardagi musobaqalarda ishtirok etish tajribasini tekshiradilar. Nomzodlar matematikadan: ehtimollik nazariyasi, chiziqli algebra va matematik tahlil bo'yicha bilimlarga ega bo'lishlari kutilmoqda.


Suhbatdan oldin nimalarni takrorlash kerak


Algoritmlar va ma'lumotlar tuzilmalari (dasturlash tiliga bog'lanmagan holda). Massivlar, bog'langan ro'yxatlar, xesh jadvallar, to'plamlar, ikkilik qidirish daraxtlari, grafikalar qanday joylashtirilganligini bilish maqsadga muvofiqdir. Ular bilan ishlashda asosiy operatsiyalarning murakkabligi (O-notasida) nima. Ular, shuningdek, asosiy algoritmlar haqida savollar berishlari mumkin. Masalan, ulardan asosiy saralash algoritmlari, ikkilik qidirish yoki grafikni o'zgartirish haqida gapirishlarini so'rang.

Python-dagi ma'lumotlar tuzilmalari: amaliy misollar, farqlar, afzalliklar va kamchiliklar. Raqamli ma'lumotlar turlari, satrlar, ro'yxatlar, bog'lanishlar, to'plamlar va lug'atlar haqidagi savollarga javob berishga tayyor bo'ling. Tilning ichiga o'rnatilgan ma'lumotlar tuzilmalari, masalan, OrderedDict yoki to'plam modulidan standart sozlash kabi tajriba afzallik hisoblanadi.

Python-da o'zgaruvchan va o'zgarmas ma'lumotlar turlari: ularning orasidagi farq nima, foydalanish misollari. Ko'pincha siz biladigan o'zgaruvchan va o'zgarmas ma'lumotlar turlarini sanab o'tish so'raladi. Ular muammoni hal qilishni taklif qilishlari mumkin va siz uni qanday turga yoki qanday ma'lumotlarning tuzilishini tanlaysiz va nima uchun.

Dekorativlar: ular nima va ular qanday ishlaydi. Masalan, ular funktsiyani yoki parametrli dekoratorning ishlash vaqtini o'lchash uchun dekorativ kodni yozishni so'rashlari mumkin. Funktsool.wrapsni bilish foydali bo'ladi.

Kontekst menejerlari: ular nima va ular nima uchun ishlatiladi. Ulardan o'rnatilgan ochiq () ga o'xshash fayllar bilan ishlash uchun kontekst menejerini amalga oshirishni so'rashlari mumkin.

Generator va iteratorlar: ular nima, ular nima uchun ishlatiladi, ular orasidagi farq nima. Masalan, ular juft raqamlar yoki Fibonachchi raqamlarining generatorini yozishlarini so'rashlari mumkin.

GIL: nima uchun kerak va u qanday ishlaydi. Intervyu savol bo'lishi mumkin: "Python-da bir nechta potoklar bir vaqtning o'zida ishlay oladimi?" Odatda GIL haqida ma'lumot talab qilinadigan mutaxassislardan talab qilinmaydi, ammo ular sizni boshqa nomzodlardan yaxshi ajratib turishi mumkin.

Django yoki Flask kabi mashhur freymvorklar qanday ishlaydi. Agar siz uning kuchli va zaif tomonlarini tushunsangiz yaxshi bo'ladi. Ulardan dastur uchun ma'lumotlar bazasini loyihalash, ORM yoki SQL xom-ashyosi yordamida bir nechta so'rovlarni yozish so'ralishi mumkin.

Internet qanday ishlaydi: OSI / TCP IP modelini / modellarini, asosiy protokollarini tushunish. Ushbu bo'limda mashhur savol: "Qidiruv satriga google.com-ni kiritganingizda nima bo'ladi?"

Buyruqlar yordam dasturlari. Sizdan eng ko'p ishlatiladigan beshdan o'ngacha buyruqlar haqida gapirishingizni so'rashlari mumkin.

Iplar(potoklar), jarayonlar, asenkron dasturlash. Masalan, potok va jarayon o'rtasidagi farq nima yoki protsesslararo aloqaning qaysi usullarini bilasiz.

Mantiqiy va matematik muammolar: ularni hal qilish uchun sizga maktab matematikasi, kombinatorikaning asosiy bilimlari, ehtimollik nazariyasi, har xil son tizimlarida raqamlar bilan ishlash qobiliyati kerak bo'lishi mumkin.


Sizga ish suhbatida ushbu bo'limlarning barchasidan savollar berilishi dargumon. Yosh dasturchi lavozimiga da'vogarning barcha savollarga to'g'ri javob berishi kutilmaydi, aksincha ular uning to'g'ri yo'nalishda o'ylayaptimi yoki yo'qligini bilishadi. Ammo qanchalik tayyor bo'lsangiz, o'zingiz xohlagan ishni olish ehtimoli ko'proq.

Python dasturini boshlovchi uchun nima o'qish kerak


«Чистый код: создание, анализ и рефакторинг», Мартин Роберт К.. Govnokod loyiha va kompaniyaning rivojlanishiga to'sqinlik qiladi, chunki u katta qo'llab-quvvatlash manbalarini talab qiladi. Kitobda yomon kodni yaxshidan qanday ajratishni o'rgatadigan ko'plab hayotiy misollar mavjud. Bu barcha Ajam ishlab chiqaruvchilari uchun foydalidir, o'qish oson. Siz darhol hamma narsani amalda qo'llay olmasligingiz mumkin, ammo siz kitobda eslatib o'tilgan vaziyatga duch kelganingizda, sizga echimni topish oson bo'ladi.

«Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих», Адитья Бхаргава

Sizningcha, algoritmlar qiyinmi? Kitob sizni boshqacha tarzda ishontiradi. Har bir algoritm unda batafsil bayon qilingan: hatto bola ham buni tushunadi. Ularni biron bir dasturlash tilida ko'paytirish qiyin emas.

«Программируем на Python», Майкл Доусон

. Kitob muallifi tajribali dasturchi. Bu sizga oddiy o'yinlarni yaratib, asosiy printsiplarni o'zlashtirishga yordam beradi. Bu sizga asosiy ko'nikmalarni egallashga va portfelingizni yaratishga yordam beradi. Keyinchalik ilg'or mutaxassislar uchun kitob zerikarli bo'lib tuyulishi mumkin, asosiy auditoriya hali ham tajribasiz ishlab chiqaruvchilar.

«Python на практике», Марк Саммерфилд.

Kitoblardan bilimlar sizga intervyularga yanada yaxshiroq tayyorgarlik ko'rishga yordam beradi. Yangi boshlanuvchilar va tajribali dasturchilar uchun javob beradi. U to'rtta mavzuga asoslanadi: dizayn naqshlaridan foydalangan holda kod zo'rligini yaxshilash, Python (Cython) dasturlarini parallellashtirish va kompilyatsiya qilish orqali ishlashni yaxshilash, yuqori darajadagi tarmoq dasturlash va grafika.

«Изучаем Python», «Программируем на Python», «Python. Карманный справочник», Марк Лутц.

Bu taniqli Python o'qituvchisining bir nechta kitoblari. Ularni asl nusxada o'qish yaxshidir. Ular bilimdagi bo'shliqlarni to'ldirishga va murakkab narsalarni tushunishga yordam beradi. Pocket qo'llanmasida siz Python bilan ishlashda yordam beradigan ma'lumotlar turlari va operatorlari, maxsus usullar, o'rnatilgan funktsiyalar haqida asosiy ma'lumotlarni topasiz.

«Python. Книга Рецептов», Дэвид Бизли, Брайан К. Джонс.

Sizga o'qilishi oson, soddalashtirilgan va saqlanadigan kodni yaratishda yordam beradigan boshlang'ich va ilg'or dasturchilarning qo'llanmasi. 15 ta bob Python-ning asosiy mavzularini o'z ichiga oladi, har bir bobda siz o'zingizning loyihalaringizda ishlatishingiz mumkin bo'lgan aniq misollar bilan maxsus "retseptlar" mavjud.

«Алгоритмы: построение и анализ», Томас Кормен, Чарльз Лейзерсон, Рональд Ривест, Клиффорд Штайн

Bu algoritmlar uchun mos yozuvlar va qo'llanma, bu yangi boshlanuvchilar va kattalar va guruh rahbarlari uchun foydali bo'ladi. Ta'riflar sodda tilda berilgan, boblar bir-biridan mustaqil va har qanday tartib va hajmda o'rganilishi mumkin.

Proger Live Tproger saytidagi maqolani o'zbek tiliga tarjima qildi. Xatoliklar uchun uzr so'raymiz :)

@progerlive