Internet uchun Python: kichik ishlash va rivojlanish uchun nimani bilishi kerak

Biz Python Junior Podcast-ning asosiy fikrlari bilan qisqacha transkript tuzdik: unda biz Python-ning boshlang'ich dasturchisi sifatida qaerdan boshlash va qayerga borishni muhokama qildik. So'nggi paytlarda biz o'rta va kattalar uchun juda ko'p tarkibga egamiz, ammo bu epizod, albatta, o'smirlar uchun.

Internet uchun Python: kichik ishlash va rivojlanish uchun nimani bilishi kerak

Asosiy mavzular:

  • Ajam dasturchiga qanday bilimlar kerak
    veb-ishlab chiqish?
  • Ish beruvchilar ishlab chiquvchilardan nimani kutishadi?
  • Tajribasiz ish topish uchun nima qilish kerak?
  • Python dasturchisi qanday rivojlanishi mumkin?

Python Junior Podcast - bu Pythonni yaxshiroq tushunishni istaganlar uchun dasturlash podkasti. Eshittirishlar jamoat xushxabarchilari tomonidan olib boriladi Moskva Python va kurs o'qituvchilari Python-ni o'rganing.

Suhbat ishtirokchilari:

  • Valentin Dombrovskiy,MoscowPython asoschilaridan biri
  • Zlata Obuxovskaya, NVIDIA jamoasi yetakchisi
  • Grigoriy Petrov, Xushxabarchi MoskvaPython
  • Aleksey Shtyrnyaev, FinEx kompaniyasi dasturchisi, Learn kurslari o'qituvchisi
    Python

Nima uchun Python veb-ishlab chiqish uchun yaxshi

Valentin Dombrovskiy: Nima uchun Python veb-ishlab chiqish uchun mos keladi? Nega, masalan, PHP yoki JavaScript emas?

Grigoriy Petrov: Shunday qilib, ko'p tanlov yo'q. Zamonaviy Internetda siz aslida bitta sahifali ilovani yoki progressiv veb-ilovani backendsiz yaratishingiz mumkinligiga qaramay - faqat front-end texnologiyalaridan foydalangan holda, JavaScript-dan foydalangan holda - bu hali ham juda murakkab, yomon indekslangan va ajoyib dasturchilarni talab qiladi.

Agar biz veb-sayt yoki xizmat yaratmoqchi bo'lsak, biz estrodiol yondashuvdan foydalanamiz: ba'zi backend mantiqni amalga oshiradi va veb-sahifalarni yaratadi, ba'zi frontend esa bu veb-sahifalarni brauzerda chizadi. Va hamma narsani tezda bir joyga jamlashimiz kerak bo'lganda, bizda tanlov yo'q.

Keling, mumkin bo'lgan variantlarni ko'rib chiqaylik.

  • C#. Microsoft haqiqatan ham ajoyib, ular .NET Core-ni yaratdilar va uni har tomonlama targ'ib qilmoqdalar. Ammo, birinchi navbatda, bu yangi platformalar o'rtasidagi texnologiya va u erda hali hammasi silliq emas. Ikkinchidan, bu haqiqatan ham qimmat, C# ishlab chiquvchilari kam, chunki u mashhur emas.
  • Java. Bu qiyin. Java-da oddiy veb-sayt yaratish Python-dagi kabi 10 qator kodni talab qilmaydi. Bu juda ko'p kod, bu ramkalar va siz Java serverlarini sozlashning o'ziga xos xususiyatlarini bilishingiz kerak. Umuman olganda, doimiy og'riq va azob.
  • PHP. Eng so'nggi versiyalarda bu ajoyib. Men buni hatto aytaman: PHP 7.2 Python-dan yomon emas. Lekin siz shunchaki PHP 7.2 ni olib, foydalana olmaysiz. Agar oddiy emas, balki eng yaxshi dasturchi PHPda veb-sayt yaratsa, u faqat 7.2 da yozmaydi: u hali ham ba'zi darsliklar, o'quv qo'llanmalarini o'qishi kerak, hamma joyda ko'plab eski kodlar mavjud va bu unchalik yaxshi emas.
  • JavaScript va Node.js. Old va orqa tomonda bitta til mavjud bo'lsa, bu ajoyib va ​​juda zamonaviy. Faqat juda barqaror emas. Node.js - bu yaxshi narsa, lekin uni ishlamay qolishi va barqaror ishlashi uchun uni ishlab chiqarishda joylashtirish muammoli. Bundan tashqari, agar biz sifatli JavaScript kodini yozmoqchi bo'lsak, bizga JavaScript emas, balki TypeScript kerak. Ammo TypeScript kutilmaganda murakkab va oddiy dasturchi uni ko'rganda miyasi qaynaydi.

Keling, Ruby, Haskell, Erlang va boshqa o'ziga xos narsalarni qoldiramiz va bizda ... Python qoladi. Izchil sintaksisga ega til, yagona standart kutubxona, eng yaxshi hujjatlar, mashhur engil ramkalar va mega-mashhur Django kombinatsiyasi.

Ma'lum bo'lishicha, eng keng tanlovga qaramay, agar bizda oddiy emas, balki eng yaxshi dasturchilar bo'lsa, biz oddiy veb-saytlar yaratmoqchi bo'lgan oddiy biznesmiz, bizda 50 kishilik rivojlanish bo'limi yo'q, keyin biz Python-ni olamiz.

Kasbga kirish uchun qanday bilim kerak?

Zlata Obuxovskaya: Menimcha, siz bitta ramkani yaxshi bilishingiz kerak - va boshqalar nima borligini va ular qachon ishlatilishini bilishingiz kerak. Tornado qayerda, Django qayerda, Flask qayerda, aiohttp qayerda va hokazo.
Protokollar kabi narsa borligini bilish foydali bo'ladi. Xususan, http protokolini bilish veb-ilovalarni yaratishda markaziy o'rin tutadi.

Bundan tashqari, hech bo'lmaganda, veb-loyihalarda frontend qanday ishlashini taxminan tushunishingiz kerak: HTML, CSS, JS nima.

Aleksey Shtyrnyaev: Va hujjatlarning qaerdaligini biling. Bu eng muhimi.

Grigoriy Petrov: Mana, biz juda chayqalgan erga qadam qo'ymoqdamiz. Agar omadimiz kelmasa va biz qandaydir tarzda zamonaviy frontendni jiddiy o'rganishni boshlasak, bu Python-dagi backendga qaraganda 10 baravar murakkabroq bo'ladi. Ajam ishlab chiquvchi o'z e'tiborini cheklab qo'yishi kerak, shunda u HTMLni o'rganishni boshlashi mumkin, lekin bu barcha divs, spans, floats, hamma narsa qanday tekislanganligi va bir qatorda joylashganligida yo'qolib ketmasligi kerak.

Aleksey Shtyrnyaev: Asosiy Bootstrap kursi kerak. Va HTML asoslari.

Birinchi yilda siz JS ramkalarini o'rganmasligingiz kerak (agar siz backendga e'tibor qaratsangiz). Bootstrap-ning asosiy kursida allaqachon tayyor modullar mavjud: agar siz slayderni xohlasangiz, slayder yarating; agar siz suzuvchi menyuni xohlasangiz, suzuvchi menyu yarating.

Zlata Obuxovskaya: O'ylaymanki, frontendni o'rganayotganda, siz o'zingizni, xususan, veb-ilovalarga statika qanday berilganligi bilan tanishishingiz mumkin. Shunday qilib, ishlab chiquvchi veb-ilovalar arxitekturasi printsipial ravishda qanday ishlashini va ular ishlab chiqarishda qanday yashashini o'rganishni boshlash uchun muammosiz harakat qiladi.

Grigoriy Petrov: Ha, agar siz Python-ni backend ishlab chiqish tili sifatida tanlagan bo'lsangiz va, masalan, Django-ni ramka sifatida tanlagan bo'lsangiz, men uni darhol tavsiya qilaman: Djangoning Django kitobida hujjatlari bor, bu juda zo'r, u Zlata aytgan hamma narsani o'z ichiga oladi, u haqiqatan ham yangi boshlanuvchilar uchun yaxshi.

Aleksey Shtyrnyaev: Ba'zi Django qizlari, agar maqsadingiz Djangoni o'rganish bo'lsa, tez boshlash uchun ham mos keladi. Bu o'quv qo'llanma bo'lib, unda bir kun ichida siz eng yuqori darajaga o'tishingiz, asoslarni va ramka nimaga qodirligini tushunishingiz mumkin.

Valentin Dombrovskiy: Podkastni yozib olishga tayyorgarlik ko'rish jarayonida biz Python dasturchisiga veb-ishlab chiqish uchun kerak bo'lgan narsalar ro'yxatini tuzdik, bu esa avval aytganlarimizni umumlashtiradi.

Pythonda veb-ishlab chiqish asoslariga nimalar kiradi

  • Django, Flask, aiohttp, Tornado va boshqalar veb-ramkalari (va boshqalarning mavjudligi haqida bilish).
  • Protokollar va API'lar: birinchi navbatda http, JSON-RPC, Protocol Buffers, gRPC.
  • ORM va migratsiya, relyatsion ma'lumotlar bazalari, SQLAlchemy, SQL, PostgreSQL, MySQL.
  • HTML, CSS, Bootstrap asoslari, shuningdek JS ramkalari va JQuery.
  • Ilovaning ishlab chiqarishda ishlash tamoyillari, sinov, birlik testlari, avtotestlar, versiyalarni boshqarish tizimlari, git.

Yoshlarga algoritmlar kerakmi?

Zlata Obuxovskaya: Avvaliga siz algoritmlarni bilishingiz shart emas, agar siz etarlicha uzoq vaqt ishlab chiqish bilan shug'ullansangiz, ular asta-sekin sizning boshingizda paydo bo'ladi. Men yaxshi rasmiy algoritmlar kursiga ega bo'lmagan bir necha tonna yaxshi muhandislarni bilaman.

Grigoriy Petrov: Men olovga yonilg'i quymoqchiman. Algoritmlarga bo'lgan ishtiyoqimiz qayerdan kelib chiqadi?

Bizda hozirda algoritmlar bo‘yicha fundamental ta’lim yo‘q, dasturchilarni tayyorlashni bilmaymiz, texnik bazamiz yo‘q.

Ular buni qilishga harakat qilmoqdalar, ammo bizda Xogvartsning hikoyasi bor: bizda bitta sehrgar bo'lmasa, biz sehrgarlar uchun maktab yarata olmaymiz. Shuning uchun, universitet ularga kelib: "Dasturchilarni tayyorlashni boshlang", deb so'rashi kerak, ammo ularda dasturchilar yo'q, chunki hamma Mail.ru, Rambler va Yandex'da ishlaydi, ular u erda baxtlimi?

Universitet qaraydi va aytadi:
- Yaxshi, dasturlash. Keling, tegishli bilim sohasini topamiz va u yerdan mutaxassislarni taklif qilamiz. Keling, nusxa yoza oladigan jurnalistlarni, elektr zanjirlarini yasay oladigan elektrotexnika va algoritmlardan foydalana oladigan matematiklarni taklif qilaylik.

Oxir-oqibat, bu g'isht va tsement elementar zarrachalardan yasalganligi uchun quruvchiga zarrachalar fizikasini o'rgatish kabi amaliy ekanligi ma'lum bo'ldi.

Shu bilan birga, ular o'zlari tsement va g'isht haqida gapirmaydilar, chunki quruvchini tayyorlashga harakat qilayotgan fizik uylarni qanday qurishni bilmaydi. Natijada, biz "tsement qanday ishlashini" mukammal tasvirlay oladigan quruvchini olamiz, lekin uni hech qachon ko'rmagan va undan qanday qilishni bilmaydi.

Algoritmlar va ma'lumotlar tuzilmalari juda yaxshi, lekin bu juda kichik dastur maydoni. Ular zudlik bilan kerak bo'ladi, masalan, agar siz o'yin mexanizmi, kompilyator yoki tarmoq protokolini yozsangiz.

Aksariyat dasturchilar algoritmlar va ma'lumotlar tuzilmalari kerak bo'lmagan biznes muammolarini hal qilishadi.

U erda eng qiyin matematika ikki marta qo'shish va keyin bo'lishdir. Bu mutlaqo boshqa bilimlarni talab qiladi. Biznes muammolarini hal qilish fundamental bilimlarni emas, balki asosan amaliy bilimlarni talab qiladi.

Ajam ishlab chiquvchining biznes haqida tushunchaga ega bo'lishi va kerakli tuzilmalarni tayyor bloklardan qanday qilib to'g'ri va tez yig'ish, ularni qanday tuzatish, ular parchalanib ketmasligiga ishonch hosil qilish, nima uchun parchalanishini bilish yaxshiroqdir. talablar o'zgarganda nima sodir bo'ladi va dastur yomg'irdan keyin uy kabi "poydevorga joylasha" boshlaydi.
Bu amaliy narsalar va dasturiy ta'minotni qanday yozishni tushunishdir. U tuzatuvchiga qo'shimcha ravishda dasturning qayerda sekinlashishini aniq ko'rsatadigan vositalar to'plamiga ega ekanligini bilishi kerak.

Valentin Dombrovskiy: Bu taqqoslash xayolimga keldi: bu biznes tilidan kompyuter bilan muloqot qilish mumkin bo'lgan tilga tarjima. Ya'ni, dasturchi o'ziga xos tilshunosdir.

Grigoriy Petrov: Biznesga tilshunos emas, yozuvchi kerak. Ming yil oldin bu so'z nima uchun bu so'zga aylanganini yozuvchi bilishi shart emas. U bu so'zlarni qo'llash qobiliyatiga ega bo'lishi kerak.

Dasturchi sifatida birinchi ishingizni topish uchun nima kerak

Aleksey Shtyrnyaev: Yoshlarni qanday pishirish uchun universal retsepti yo'q.

Agar siz biron bir kompaniyaga kelsangiz, ular sizni Django, JSON va bir nechta algoritmlarni bilganingiz uchun emas, balki ishga olishadi. Siz, ehtimol, ushbu kompaniyaga bu erda va hozir kerak bo'lgan ko'nikmalar uchun ishga olinadi.

Ko'plab kompaniyalar mavjud va ularning barchasi turli talablarga ega. Keyinchalik rezyumeni tayyorlash va ish topish uchun olinishi kerak bo'lgan universal bilimlar yo'q.

Grigoriy Petrov: Biz VoxImplantda bir nechta muhandislarni qidirganimizda, texnik direktorimiz asosiy talabni quyidagicha shakllantirdi: inson muammolarni hal qila olishi kerak. Kichkina bola buni har doim ham samarali bajarmasligi aniq, eng yaxshi tarzda emas va har doim ham to'g'ri emas, lekin ideal holda siz odamga vazifa berasiz, u uni siqib chiqaradi va hal qiladi. Bu ish beruvchilar birinchi navbatda izlayotgan qobiliyatdir.

Zlata Obuxovskaya: Boshqa sohalardan ish qidirayotgan odamlar ishbilarmonlik nuqtai nazaridan qandaydir afzalliklarga ega, chunki ular allaqachon qandaydir yo'lni bosib o'tgan va muammolarni tezda hal qila oladi. Bu yumshoq ko'nikmalar, men buni hatto ish madaniyati deb atagan bo'lardim. Ko'pincha universitet bitiruvchilari hali bu ish madaniyatini rivojlantirmagan.

Ammo men hali ham yangi boshlanuvchilarga qandaydir retsept berishga harakat qilmoqchiman.

Ajam ishlab chiquvchi uchun birinchi qadamlar

Zlata Obuxovskaya: Birinchisi, bu hali ham o'zingizning loyihangiz, chunki siz rezyumeingizda biror narsa yozishingiz va minimal portfelni ko'rsatishingiz kerak. Ushbu loyihalar o'zingiz uchun emas, balki mustaqil loyiha sifatida - kimdir uchun qilingan bo'lsa, bu ajoyibroq.

Birinchi loyihalardan so'ng, siz allaqachon rezyume yaratishingiz va uni iyun oyi lavozimlari bo'lgan barcha kompaniyalarga yuborishingiz mumkin. Intervyular kompaniyalarga nima kerakligini tushunish imkonini beradi. Ertami-kechmi kimdir sizni hech bo'lmaganda kichik kompaniyada ishga oladi. Keyinchalik, ushbu ish tajribasi sizga kattaroq va qiziqarli kompaniyaga kirish imkoniyatini beradi.

Valentin Dombrovskiy: Aytgancha, bizning kurslarimizda biz talabalarni 10 haftalik treningdan keyin o'z loyihasiga ega bo'lishga tayyorlaymiz. Bundan tashqari, biz jamoani rivojlantirish ko'nikmalarini o'rgatamiz. Bu aynan Zlata aytgan yumshoq qobiliyatlar.

Aleksey Shtyrnyaev: Men sizga tajribamdan ayta olamanki, birinchi ishingizni izlash juda uzoq vaqt talab qilishi mumkin. Bir yoki ikki oy qidirsangiz, bu normal holat. Agar siz rezyumeni barcha kompaniyalarga topshirsangiz, intervyularga boring, uchinchi oyda siz albatta biror narsani topasiz.

Valentin Dombrovskiy: Siz o'zingizning loyihalaringizni qisqartirishingiz yoki oddiy mustaqil loyihalarni qabul qilishingiz va shu bilan birga rezyumeingizni yuborishingiz mumkin.

Python dasturchisi qanday istiqbollarga ega?

Zlata Obuxovskaya: Python dasturchisi istalgan joyga borishi mumkin. Siz sinovdan o'tishingiz va katta me'morga rivojlanishni davom ettirishingiz mumkin. Yoki hatto menejmentga. Texnik menejerlarning har xil turlari mavjud va siz yuqori boshqaruv darajasiga etishishingiz mumkin. Siz DevOps maʼlumotlar fanida rivojlanishingiz, avtomatlashtirilgan test yoki mashinani oʻrganishga oʻtishingiz mumkin.

Valentin Dombrovskiy: Umuman olganda, juda ko'p variant va imkoniyatlar mavjud, jumladan kurslarimiz. Kirishda sizga ko'p bilim kerak emas, lekin undan keyin kengroq doirani qamrab olish tavsiya etiladi, chunki qancha ko'p imkon bo'lsa, siz uchun shuncha yaxshi bo'ladi.

***

Bu nashrning faqat bir qismi Python Junior. Epizodning toʻliq versiyasi mavjud tinglash.

Yoki hatto qarang:

Videoni ijro etish

Podkast RSS

O'qiganingiz, tinglaganingiz yoki tomosha qilganingiz uchun tashakkur.

Manba: www.habr.com

a Izoh qo'shish