Biz Python Junior Podcast-ın əsas fikirləri ilə qısa bir transkript hazırladıq: orada Python-un başlanğıc tərtibçisi kimi haradan başlamaq və hara getmək lazım olduğunu müzakirə etdik. Son vaxtlar orta və yaşlılar üçün çoxlu məzmunumuz var, lakin bu epizod mütləq yeniyetmələr üçündür.

Əsas mövzular:
- Təcrübə üçün təcrübəsiz bir proqramçı hansı biliklərə ehtiyac duyur
veb inkişafı? - İşəgötürənlər tərtibatçılardan nə gözləyirlər?
- Təcrübəsiz iş tapmaq üçün nə etməli?
- Python tərtibatçısı necə inkişaf edə bilər?
Python Junior Podcast Python-u daha yaxşı başa düşmək istəyənlər üçün proqramlaşdırma podkastidır. Verilişlər icma evangelistləri tərəfindən aparılır və kurs müəllimləri .
Söhbət iştirakçıları:
- Valentin Dombrovski,MoscowPython-un həmtəsisçisi
- Zlata Obuxovskaya, NVIDIA komandasının lideri
- Qriqori Petrov, Evangelist MoskvaPython
- Aleksey Ştırnyaev, FinEx-də tərtibatçı, Learn kurslarının müəllimi
Python
Python niyə veb inkişafı üçün yaxşıdır
Valentin Dombrovski: Python niyə veb inkişafı üçün uyğundur? Məsələn, niyə PHP və ya JavaScript olmasın?
Qriqori Petrov: Beləliklə, çox seçim yoxdur. Baxmayaraq ki, müasir İnternetdə bir səhifə tətbiqi və ya mütərəqqi veb tətbiqi arxa plan olmadan - sırf front-end texnologiyalarından istifadə etməklə, JavaScript-dən istifadə etməklə - hələ də çox mürəkkəbdir, zəif indeksləşdirilmişdir və sərin tərtibatçılar tələb edir.
Veb sayt və ya xidmət yaratmaq istəyiriksə, biz birləşmiş yanaşmadan istifadə edirik: bəzi backend məntiqi həyata keçirir və veb səhifələr yaradır, bəziləri isə bu veb səhifələri brauzerdə çəkir. Və hər şeyi tez bir zamanda bir yerə yığmaq lazım olanda, həqiqətən seçimimiz yoxdur.
Gəlin mümkün variantlara baxaq.
- C#. Microsoft həqiqətən əladır, onlar .NET Core yaratdılar və onu hər cür təbliğ edirlər. Lakin, birincisi, bu, yeni çarpaz platforma texnologiyasıdır və hələ orada hər şey hamar deyil. İkincisi, bu, həqiqətən bahalıdır, C# tərtibatçıları azdır - sadəcə olaraq, populyar olmadığı üçün.
- Java. Bu mürəkkəbdir. Java-da normal veb sayt yaratmaq Python-da olduğu kimi 10 sətir kod tələb etmir. Bu çoxlu koddur, bunlar çərçivələrdir və siz Java serverlərinin qurulmasının xüsusiyyətlərini bilməlisiniz. Ümumiyyətlə, davamlı ağrı və əzab.
- PHP. Ən son versiyalarda çox gözəldir. Hətta bunu deyəcəyəm: PHP 7.2 Python-dan pis deyil. Ancaq siz sadəcə olaraq PHP 7.2-ni götürüb istifadə edə bilməzsiniz. Əgər adi, top olmayan tərtibatçı PHP-də vebsayt yaradırsa, o, təkcə 7.2-də yazmayacaq: o, hələ də bəzi dərslikləri, dərs vəsaitlərini oxumalı olacaq, hər yerdə çoxlu köhnə kodlar var və bu o qədər də yaxşı deyil.
- JavaScript və Node.js. Həm ön, həm də arxa tərəfdə bir dil olduqda bu gözəl və çox müasirdir. Sadəcə çox stabil deyil. Node.js yaxşı bir şeydir, lakin qəzaya uğramaması və stabil işləməsi üçün onu istehsalda yerləşdirmək problemlidir. Üstəlik, keyfiyyətli JavaScript kodu yazmaq istəyiriksə, bizə JavaScript yox, TypeScript lazımdır. Ancaq TypeScript gözlənilmədən mürəkkəbdir və adi tərtibatçının beyni onu görəndə qaynayır.
Gəlin Ruby, Haskell, Erlanq və digər niş materialları tərk edək və bizdə... Python qalır. Ardıcıl sintaksisi, vahid standart kitabxanası, ən yaxşı sənədləri, populyar yüngül çərçivələri və meqa-populyar Django birləşməsi olan dil.
Belə çıxır ki, ən geniş seçimə baxmayaraq, əgər bizim adi, top developerlərimiz varsa, biz adi vebsaytlar hazırlamaq istəyən adi biznesiyiksə, 50 nəfərlik inkişaf departamentimiz yoxdursa, onda Python-u götürürük.
Peşəyə girmək üçün hansı bilik lazımdır?
Zlata Obukhovskaya: İnanıram ki, bir çərçivəni yaxşı bilməlisən - və başqalarının nə olduğunu və nə vaxt istifadə edildiyini bilmək. Tornado haradadır, Django haradadır, Flask haradadır, aiohttp haradadır və s.
Protokol kimi bir şeyin olduğunu bilmək faydalı olacaq. Xüsusilə, http protokolunun bilikləri veb proqramların qurulması üçün mərkəzidir.
Siz həmçinin ən azı kobud şəkildə veb layihələrində frontendin necə işlədiyini başa düşməlisiniz: HTML, CSS, JS nədir.
Aleksey Ştırnyaev: Və sənədlərin harada olduğunu bilin. Bu ən vacibdir.
Qriqori Petrov: Budur, biz çox sarsıntılı zəmində addımlayırıq. Əgər bəxtimiz gətirməsə və hansısa şəkildə müasir cəbhəni ciddi şəkildə öyrənməyə başlasaq, o zaman Python-da arxa plandan təxminən 10 dəfə daha mürəkkəb olacaq. Təcrübəsiz bir tərtibatçı diqqətini məhdudlaşdırmalıdır ki, HTML öyrənməyə başlaya bilsin, lakin bütün bu divlərdə, spanlarda, üzənlərdə, hər şeyin necə düzüldüyü və düzüldüyündə itməsin.
Aleksey Ştırnyaev: Əsas Bootstrap kursuna ehtiyacınız var. Və HTML əsasları.
Birinci ildə siz JS çərçivələri ilə tanış olmamalısınız (əgər siz arxa plana diqqət yetirirsinizsə). Əsas Bootstrap kursunda artıq hazır modullar var: slayder istəyirsinizsə, sürüşdürün; üzən menyu istəyirsinizsə, üzən menyu yaradın.
Zlata Obukhovskaya: Düşünürəm ki, ön tərəfi öyrənərkən özünüzü, xüsusən də statikanın ümumiyyətlə veb tətbiqlərinə necə verildiyinə qərq edə bilərsiniz. Beləliklə, tərtibatçı rəvan şəkildə veb proqramların arxitekturasının prinsipcə necə işlədiyini və istehsalda necə yaşadıqlarını öyrənməyə başlayır.
Qriqori Petrov: Bəli, Python-u backend inkişaf dili kimi və məsələn, çərçivə kimi Djanqonu seçsəniz, dərhal tövsiyə edəcəyəm: Django Django Kitabında sənədlərə malikdir, bu, həqiqətən gözəldir, Zlatanın dediyi hər şeyi ehtiva edir, o, həqiqətən yeni başlayanlar üçün yaxşıdır.
Aleksey Ştırnyaev: Məqsədiniz Djanqo öyrənməkdirsə, bəzi Django Qızları sürətli bir başlanğıc üçün də uyğundur. Bu, bir gündə yuxarıya keçə biləcəyiniz, əsasları və çərçivənin nəyə qadir olduğunu başa düşə biləcəyiniz bir dərslikdir.
Valentin Dombrovski: Podkasti yazmağa hazırlaşarkən biz Python proqramçısının veb inkişafı üçün lazım olanların siyahısını tərtib etdik ki, bu da daha əvvəl dediklərimizi ümumiləşdirir.
Python-da veb inkişafı üçün əsaslara nə daxildir
- Veb çərçivələri Django, Flask, aiohttp, Tornado və s. (və başqalarının mövcudluğu haqqında məlumat).
- Protokollar və API-lər: ilk növbədə http, JSON-RPC, Protokol Buferləri, gRPC.
- ORM və miqrasiya, əlaqəli verilənlər bazaları, SQLAlchemy, SQL, PostgreSQL, MySQL.
- HTML, CSS, Bootstrap, həmçinin JS çərçivələri və JQuery əsasları.
- İstehsalda tətbiqin iş prinsipləri, sınaq, vahid sınaqları, avtotestlər, versiyaya nəzarət sistemləri, git.
Gənclərin alqoritmlərə ehtiyacı varmı?
Zlata Obukhovskaya: Əvvəlcə alqoritmləri bilmək lazım deyil, kifayət qədər uzun müddət inkişafla məşğul olsanız, onlar tədricən beyninizdə görünəcəklər. Mən yaxşı formal alqoritmlər kursu olmayan bir ton yaxşı mühəndis tanıyıram.
Qriqori Petrov: Mən atəşə yanacaq qatmaq istəyirəm. Alqoritmlərə olan həvəsimiz haradan qaynaqlanır?
Hazırda alqoritmlər üzrə fundamental təhsilimiz yoxdur, proqramçıları necə hazırlayacağımızı bilmirik, texniki bazamız yoxdur.
Onlar bunu etməyə çalışırlar, amma burada Hogwarts hekayəsi var: bir sehrbazımız olmadığı halda biz sehrbazlar üçün məktəb yarada bilmərik. Ona görə də universitet onlara yaxınlaşıb soruşanda nə etməlidir: “Proqramçılar hazırlamağa başlayın”, amma proqramçılar yoxdur, çünki hamı Mail.ru, Rambler və Yandex-də işləyir, orada xoşbəxtdirlərmi?
Universitet baxır və deyir:
- Yaxşı, proqramlaşdırma. Gəlin bəzi əlaqəli bilik sahəsi tapaq və oradan mütəxəssislər dəvət edək. Kopiya yazmağı bacaran jurnalistləri, elektrik dövrələrini qura bilən elektrik mühəndislərini, alqoritmlərdən istifadə etməyi bacaran riyaziyyatçıları dəvət edək.
Sonda məlum olur ki, bu, yalnız kərpic və sement elementar hissəciklərdən ibarət olduğu üçün inşaatçıya hissəciklər fizikasını öyrətmək qədər praktikdir.
Eyni zamanda, özləri sement və kərpicdən danışmırlar, çünki inşaatçı yetişdirməyə çalışan fizik ev tikməyi bilmir. Nəticədə, biz "sementin necə işlədiyini" mükəmməl təsvir edə bilən bir inşaatçı alırıq, lakin bunu heç vaxt görməmiş və ondan bir şey hazırlamağı bilməyən bir inşaatçı alırıq.
Alqoritmlər və məlumat strukturları çox yaxşıdır, lakin bu, çox kiçik bir tətbiq sahəsidir. Onlar, məsələn, oyun mühərriki, tərtibçi və ya şəbəkə protokolu yazırsınızsa, təcili olaraq lazımdır.
Əksər proqramçılar alqoritmlərə və məlumat strukturlarına ehtiyac olmayan iş problemlərini həll edirlər.
Orada ən çətin riyaziyyat iki dəfə toplamaq və sonra bölməkdir. Tamamilə fərqli bilik tələb edir. Biznes problemlərinin həlli fundamental biliklərdən daha çox tətbiqi tələb edir.
Təcrübəsiz bir tərtibatçının iş anlayışına sahib olması və lazımi strukturları hazır bloklardan necə düzgün və tez bir şəkildə yığmaq, onları necə ayırmaq, dağılmamasına necə əmin olmaq, niyə parçalandığını bilmək daha yaxşıdır. tələblər dəyişdikdə və proqram yağışdan sonra ev kimi "bünövrəyə oturmağa" başlayanda nə baş verir.
Bunlar praktiki şeylər və proqram təminatının necə yazılacağını başa düşməkdir. O, bilməlidir ki, sazlayıcıya əlavə olaraq, proqramın harada yavaşladığını dəqiq göstərəcək alətlər dəsti var.
Valentin Dombrovski: Bu müqayisə ağlıma gəldi: bu, biznes dilindən kompüterlə ünsiyyət qura biləcəyiniz dilə tərcümədir. Yəni proqramçı bir növ spesifik dilçidir.
Qriqori Petrov: Biznesə dilçi yox, yazıçı lazımdır. Yazıçıya bilmək lazım deyil ki, min il əvvəl bu sözün niyə buna çevrildiyini bilsin. O, bu sözləri tətbiq etməyi bacarmalıdır.
Tərtibatçı kimi ilk işinizi tapmaq üçün nə lazımdır
Aleksey Ştırnyaev: Yəqin ki, kiçikləri necə bişirmək üçün universal resept yoxdur.
Hansısa şirkətə gəlsəniz, sizi Django, JSON və bir neçə alqoritm bildiyiniz üçün işə götürəcəklər. Çox güman ki, bu şirkətin burada və indi ehtiyac duyduğu bacarıqlar üçün işə götürüləcəksiniz.
Bir çox şirkət var və hamısının fərqli tələbləri var. CV hazırlamaq və iş tapmaq üçün əldə edilməli olan belə bir universal bilik yoxdur.
Qriqori Petrov: Biz VoxImplant-da bir neçə mühəndis axtaran zaman texniki direktorumuz əsas tələbi belə ifadə etdi: insan problemləri həll etməyi bacarmalıdır. Aydındır ki, bir gənc bunu həmişə effektiv, ən yaxşı şəkildə və həmişə düzgün etməyəcək, amma ideal olaraq bir insana bir tapşırıq verirsən, o, onu gərginləşdirir və həll edir. Bu, işəgötürənlərin ilk növbədə axtardığı bacarıqdır.
Zlata Obukhovskaya: Başqa sahələrdən iş axtaran insanlar iş nöqteyi-nəzərindən müəyyən üstünlüklərə malikdirlər, çünki onlar artıq müəyyən yol keçiblər və problemləri tez həll etməyi bacarırlar. Bunlar yumşaq bacarıqlardır, hətta mən buna iş mədəniyyəti deyərdim. Çox vaxt universitet məzunlarında bu iş mədəniyyəti hələ formalaşmayıb.
Ancaq yenə də yeni başlayanlara bir növ resept verməyə çalışmaq istərdim.
Təcrübəsiz bir tərtibatçı üçün ilk addımlar
Zlata Obukhovskaya: Birincisi, bu, hələ də sizin bir növ layihənizdir, çünki CV-nizdə nəsə yazmalı və minimal portfel göstərməlisiniz. Bu layihələr özünüz üçün deyil, müstəqil bir layihə kimi - kimsə üçün hazırlandıqda daha gözəldir.
İlk layihələrdən sonra siz artıq CV hazırlayıb iyun ayı vəzifələri olan bütün şirkətlərə göndərə bilərsiniz. Müsahibələr şirkətlərin nəyə ehtiyacı olduğu barədə məlumat verəcəkdir. Gec-tez kimsə sizi, heç olmasa kiçik bir şirkətdə işə götürəcək. Sonradan bu iş təcrübəsi sizə daha böyük və daha maraqlı şirkətə daxil olmaq imkanı verəcək.
Valentin Dombrovski: Yeri gəlmişkən, kurslarımızda biz tələbələri 10 həftəlik təlim müddətində öz layihəsinə sahib olmağa hazırlayırıq. Üstəlik biz komanda inkişaf bacarıqlarını öyrədirik. Bunlar məhz Zlatanın danışdığı yumşaq bacarıqlardır.
Aleksey Ştırnyaev: Təcrübədən sizə deyə bilərəm ki, ilk işinizi axtarmaq çox uzun çəkə bilər. Bir və ya iki ay axtarırsınızsa, bu normaldır. CV-nizi bütün şirkətlərə təqdim etsəniz, müsahibələrə gedin, üçüncü ayda mütləq nəsə tapacaqsınız.
Valentin Dombrovski: Siz öz layihələrinizi kəsə və ya sadə müstəqil layihələri götürə və eyni zamanda CV-nizi göndərə bilərsiniz.
Python tərtibatçısının hansı perspektivləri var?
Zlata Obukhovskaya: Python tərtibatçısı istənilən yerə gedə bilər. Siz sınaqdan keçə və böyük bir memar kimi inkişaf etməyə davam edə bilərsiniz. Və ya hətta idarəçiliyə. Texniki menecerlərin müxtəlif növləri var və siz yüksək səviyyəli menecmentə yüksələ bilərsiniz. Məlumat elmində, DevOps-da inkişaf edə, avtomatlaşdırılmış testlərə və ya maşın öyrənməsinə keçə bilərsiniz.
Valentin Dombrovski: Ümumiyyətlə, kurslarımız da daxil olmaqla, çoxlu variant və imkanlar var. Girişdə çox biliyə ehtiyacınız yoxdur, lakin daha geniş diapazonu əhatə etmək məsləhətdir, çünki nə qədər çox bacarsanız, sizin üçün bir o qədər yaxşıdır.
***
Bu buraxılışın yalnız bir hissəsidir . Epizodun tam versiyası mövcuddur .
Və ya hətta baxın:

Oxuduğunuz, dinlədiyiniz və ya izlədiyiniz üçün təşəkkür edirik.
Mənbə: www.habr.com
