Python për Web: çfarë duhet të dijë një i ri për të punuar dhe zhvilluar

Ne bëmë një transkript të shkurtër me mendimet kryesore nga Podcast-i i Python Junior: në të kemi diskutuar se ku të fillojmë dhe ku të shkojmë si një zhvillues fillestar i Python. Kohët e fundit kemi shumë përmbajtje për të mesmet dhe të moshuarit, por ky episod është padyshim për të rinjtë.

Python për Web: çfarë duhet të dijë një i ri për të punuar dhe zhvilluar

Temat kryesore:

  • Çfarë njohurish duhet të praktikojë një programues fillestar
    zhvillimi i uebit?
  • Çfarë presin punëdhënësit nga zhvilluesit?
  • Çfarë duhet bërë për të gjetur një punë pa përvojë?
  • Si mund të zhvillohet një zhvillues Python?

Python Junior Podcast është një podcast programimi për ata që duan të kuptojnë më mirë Python. Transmetimet kryhen nga ungjilltarët e komunitetit Moskë Python dhe mësuesit e lëndëve Mësoni Python.

Pjesëmarrësit në bisedë:

  • Valentin Dombrovsky,bashkëthemelues i MoscowPython
  • Zlata Obukhovskaya, Udhëheqësi i ekipit NVIDIA
  • Grigory Petrov, ungjilltar Moskë Python
  • Alexey Shtyrnyaev, zhvillues në FinEx, mësues i kurseve Learn
    Piton

Pse Python është i mirë për zhvillimin e uebit

Valentin Dombrovsky: Pse është Python i përshtatshëm për zhvillimin e uebit? Pse jo PHP ose JavaScript, për shembull?

Grigory Petrov: Kështu që nuk ka shumë zgjedhje. Përkundër faktit se në Ueb-in modern mund të ndërtoni një aplikacion me një faqe të vetme ose një aplikacion progresiv në internet pa një sfond - thjesht duke përdorur teknologji të përparme, duke përdorur JavaScript - ai është ende shumë i ndërlikuar, i indeksuar dobët dhe kërkon zhvillues të lezetshëm.

Nëse duam të krijojmë një faqe interneti ose shërbim, ne përdorim një qasje të kombinuar: disa backend zbatojnë logjikën dhe krijojnë faqe në internet, dhe disa frontend vizatojnë këto faqe në shfletues. Dhe kur na duhet t'i bashkojmë shpejt të gjitha për diçka, ne në të vërtetë nuk kemi një zgjedhje.

Le të shohim opsionet e mundshme.

  • C#. Microsoft është vërtet i mrekullueshëm, ata bënë .NET Core dhe po e promovojnë atë në çdo mënyrë të mundshme. Por, së pari, kjo është një teknologji e re ndër-platformë, dhe jo gjithçka është ende e qetë atje. Së dyti, është me të vërtetë e shtrenjtë, ka pak zhvillues të C# - thjesht sepse është jopopullor.
  • Java. Eshte e komplikuar. Krijimi i një faqe interneti normale në Java nuk kërkon 10 rreshta kodi, si në Python. Ky është shumë kod, këto janë korniza dhe ju duhet të dini specifikat e konfigurimit të serverëve Java. Në përgjithësi, dhimbje dhe vuajtje të vazhdueshme.
  • PHP. Në versionet e fundit është e mrekullueshme. Unë madje do të them këtë: PHP 7.2 nuk është më keq se Python. Por nuk mund të marrësh dhe të përdorësh thjesht PHP 7.2. Nëse një zhvillues i zakonshëm, jo ​​kryesor bën një faqe interneti në PHP, ai nuk do të shkruajë vetëm në 7.2: ai do të duhet të lexojë akoma disa tekste shkollore, mësime, ka shumë kode të trashëgimisë kudo, dhe kjo nuk është shumë e mirë.
  • JavaScript dhe Node.js. Është e mrekullueshme dhe shumë moderne kur ka një gjuhë si në pjesën e përparme ashtu edhe në pjesën e pasme. Thjesht jo shumë e qëndrueshme. Node.js është një gjë e mirë, por është problematike ta vendosësh atë në prodhim në mënyrë që të mos rrëzohet dhe të funksionojë në mënyrë të qëndrueshme. Plus, nëse duam të shkruajmë kod JavaScript cilësor, nuk kemi nevojë për JavaScript, por për TypeScript. Por TypeScript është papritur kompleks dhe truri i zhvilluesit mesatar zien kur e shohin atë.

Le të lëmë jashtë Ruby, Haskell, Erlang dhe gjëra të tjera të veçanta, dhe ne kemi mbetur me... Python. Një gjuhë me sintaksë të qëndrueshme, një bibliotekë standarde uniforme, dokumentacionin më të mirë, korniza të lehta popullore dhe kombinimin mega-popullor Django.

Rezulton se, pavarësisht zgjedhjes më të gjerë, nëse kemi zhvillues të zakonshëm, jo ​​top, ne jemi një biznes i zakonshëm që dëshirojmë të bëjmë faqe interneti të zakonshme, nuk kemi një departament zhvillimi për 50 persona, atëherë marrim Python.

Çfarë njohurish nevojiten për të hyrë në profesion?

Zlata Obukhovskaya: Unë besoj se ju duhet të njihni mirë një kornizë - dhe të dini se çfarë ekzistojnë të tjerat dhe kur ato përdoren. Ku është Tornado, ku është Django, ku është Flask, ku është aiohttp e kështu me radhë.
Do të jetë e dobishme të dini se ekziston një gjë e tillë si protokollet. Në veçanti, njohja e protokollit http është thelbësore për ndërtimin e aplikacioneve në ueb.

Ju gjithashtu duhet të kuptoni përafërsisht se si funksionon pjesa e përparme në projektet në internet: çfarë është HTML, CSS, JS.

Alexey Shtyrnyaev: Dhe di ku është dokumentacioni. Është më e rëndësishmja.

Grigory Petrov: Këtu po shkelim në tokë shumë të lëkundur. Nëse jemi të pafat dhe fillojmë disi të studiojmë seriozisht frontendin modern, atëherë do të jetë rreth 10 herë më i ndërlikuar se fundi në Python. Një zhvillues fillestar duhet të kufizojë fokusin e tij në mënyrë që të mund të fillojë të mësojë HTML, por të mos humbasë në të gjitha këto div, shtrirje, lundrime, se si çdo gjë është në linjë dhe në rreshtim.

Alexey Shtyrnyaev: Keni nevojë për një kurs bazë Bootstrap. Dhe bazat e HTML.

Në vitin e parë, nuk duhet të futeni në kornizat JS (nëse jeni duke u fokusuar në backend). Kursi bazë i Bootstrap ka tashmë module të gatshme: nëse dëshironi një rrëshqitës, bëni një rrëshqitës; nëse dëshironi një menu lundruese, bëni një menu lundruese.

Zlata Obukhovskaya: Unë mendoj se ndërsa studioni frontendin, mund të zhytni veten, në veçanti, në mënyrën se si statika u jepet përgjithësisht aplikacioneve në internet. Kështu, zhvilluesi vazhdon pa probleme për të filluar të mësojë se si funksionon në parim arkitektura e aplikacioneve në ueb dhe se si ato jetojnë në prodhim.

Grigory Petrov: Po, do ta rekomandoj menjëherë në rast se keni zgjedhur Python si një gjuhë zhvillimi mbështetës dhe, për shembull, Django si kornizë: Django ka dokumentacion në Librin e Django, është vërtet i lezetshëm, përmban gjithçka që tha Zlata, ajo me të vërtetë mirë për një fillestar.

Alexey Shtyrnyaev: Disa Django Girls janë gjithashtu të përshtatshme për një fillim të shpejtë nëse qëllimi juaj është të mësoni Django. Ky është një tutorial ku brenda një dite mund të kaloni në krye, të kuptoni bazat dhe çfarë është në gjendje korniza.

Valentin Dombrovsky: Në përgatitje për regjistrimin e podcast-it, ne përpiluam një listë të asaj që i nevojitet një programuesi Python për zhvillimin e uebit, i cili përmbledh atë që thamë më parë.

Çfarë përfshihet në bazat për zhvillimin e uebit në Python

  • Korniza në internet Django, Flask, aiohttp, Tornado, etj. (dhe di për ekzistencën e të tjerëve).
  • Protokollet dhe API-të: kryesisht http, JSON-RPC, Protocol Buffers, gRPC.
  • ORM dhe migrimet, bazat e të dhënave relacionale, SQLAlchemy, SQL, PostgreSQL, MySQL.
  • Bazat e HTML, CSS, Bootstrap, si dhe kornizat JS dhe JQuery.
  • Parimet e funksionimit të aplikacionit në prodhim, testimi, testet e njësive, autotestet, sistemet e kontrollit të versionit, git.

A kanë nevojë të rinjtë për algoritme?

Zlata Obukhovskaya: Në fillim, nuk keni nevojë t'i njihni algoritmet; ato gradualisht do të shfaqen në kokën tuaj nëse angazhoheni në zhvillim mjaftueshëm gjatë. Unë njoh një ton inxhinierësh të mirë që nuk kanë pasur një kurs të mirë formal algoritmesh.

Grigory Petrov: Dua t'i hedh benzinë ​​zjarrit. Nga vjen dëshira jonë për algoritme?

Aktualisht nuk kemi një arsim themelor në algoritme, nuk dimë të trajnojmë programues, nuk kemi një bazë teknike.

Ata po përpiqen ta bëjnë këtë, por këtu kemi historinë e Hogwarts: ne nuk mund të krijojmë një shkollë për magjistarët, ndërkohë që nuk kemi një magjistar të vetëm. Prandaj, çfarë duhet të bëjë një universitet kur vijnë tek ata dhe pyesin: "Filloni të trajnoni programues", por ata nuk kanë programues, sepse të gjithë punojnë në Mail.ru, Rambler dhe Yandex, a janë të lumtur atje?

Universiteti shikon dhe thotë:
- Mirë, programim. Le të gjejmë disa fusha të lidhura me njohuritë dhe të ftojmë specialistë nga atje. Le të ftojmë gazetarë që mund të shkruajnë kopje, inxhinierë elektrikë që mund të bëjnë qarqe elektrike dhe matematikanë që mund të përdorin algoritme.

Në fund, rezulton se kjo është po aq praktike sa të mësosh fizikën e grimcave të një ndërtuesi vetëm sepse tulla dhe çimentoja janë bërë nga grimca elementare.

Në të njëjtën kohë, ata nuk flasin vetë për çimento dhe tulla, sepse fizikani që përpiqet të trajnojë një ndërtues nuk di të ndërtojë shtëpi. Si rezultat, marrim një ndërtues i cili është në gjendje të përshkruajë në mënyrë të përsosur se si "punon çimentoja", por nuk e ka parë kurrë dhe nuk di të bëjë asgjë prej tij.

Algoritmet dhe strukturat e të dhënave janë shumë të mira, por kjo është një zonë shumë e vogël aplikimi. Ato nevojiten urgjentisht, për shembull, nëse jeni duke shkruar një motor loje, përpilues ose protokoll rrjeti.

Shumica e programuesve zgjidhin problemet e biznesit ku algoritmet dhe strukturat e të dhënave nuk nevojiten.

Matematika më e vështirë atje është mbledhja e dyfishit dhe më pas pjesëtimi. Kërkon njohuri krejtësisht të ndryshme. Zgjidhja e problemeve të biznesit kërkon njohuri kryesisht aplikative dhe jo themelore.

Është më mirë që një zhvillues fillestar të ketë një kuptim të biznesit dhe se si të montojë saktë dhe shpejt strukturat e nevojshme nga blloqet e gatshme, si t'i korrigjojë ato, si të sigurohet që ato të mos shpërbëhen, të dinë pse shpërbëhen, çfarë ndodh kur kërkesat ndryshojnë dhe programi fillon "të vendoset në themel" si një shtëpi pas shiut.
Këto janë gjëra praktike dhe një kuptim se si të shkruani softuer. Ai duhet të dijë se përveç korrigjuesit, ai ka një grup mjetesh që do të tregojnë saktësisht se ku po ngadalësohet programi.

Valentin Dombrovsky: Ky krahasim më erdhi në mendje: ky është një përkthim nga gjuha e biznesit në një gjuhë në të cilën mund të komunikosh me një kompjuter. Kjo do të thotë, një programues është një lloj gjuhëtari specifik.

Grigory Petrov: Biznesi ka nevojë për një shkrimtar, jo një gjuhëtar. Shkrimtari nuk ka nevojë të dijë pse një mijë vjet më parë kjo fjalë u shndërrua në këtë. Ai duhet të jetë në gjendje t'i zbatojë këto fjalë.

Çfarë ju nevojitet për të gjetur punën tuaj të parë si zhvillues

Alexey Shtyrnyaev: Ndoshta nuk ka asnjë recetë universale se si të gatuaj junior.

Nëse vini në ndonjë kompani, ata do t'ju punësojnë jo sepse dini Django, JSON dhe disa algoritme. Me shumë mundësi do të punësoheni për aftësitë që i duhen kësaj kompanie këtu dhe tani.

Ka shumë kompani dhe të gjitha kanë kërkesa të ndryshme. Nuk ka një sasi të tillë universale njohurish që duhet të merret për të përgatitur më tej një rezyme dhe për të shkuar të gjesh një punë.

Grigory Petrov: Kur ne në VoxImplant po kërkonim disa inxhinierë, drejtori ynë teknik formuloi kërkesën bazë si më poshtë: një person duhet të jetë në gjendje të zgjidhë problemet. Është e qartë se një i ri nuk do ta bëjë gjithmonë këtë në mënyrë efektive, jo në mënyrën më të mirë dhe jo gjithmonë saktë, por në mënyrë ideale ju i jepni një personi një detyrë, ai e sforcon dhe e zgjidh atë. Kjo është aftësia që punëdhënësit kërkojnë kryesisht.

Zlata Obukhovskaya: Njerëzit që kërkojnë punë nga fusha të tjera kanë një avantazh nga pikëpamja e biznesit, sepse ata tashmë kanë shkuar në njëfarë mënyre dhe janë në gjendje t'i zgjidhin problemet shpejt. Këto janë aftësi të buta, madje do ta quaja kulturë pune. Shpesh, të diplomuarit nuk e kanë zhvilluar ende këtë kulturë pune.

Por unë ende do të doja të përpiqesha t'u jap një lloj recete fillestarëve.

Hapat e parë për një zhvillues fillestar

Zlata Obukhovskaya: E para është se ky është ende një lloj projekti juaj, sepse duhet të shkruani diçka në CV dhe të tregoni një portofol minimal. Është më mirë kur këto projekte nuk bëhen për veten tuaj, por si një projekt i pavarur - për dikë.

Pas projekteve të para, tashmë mund të bëni një CV dhe ta dërgoni në të gjitha kompanitë ku ka pozicione qershori. Intervistat do të ofrojnë pasqyrë se çfarë kanë nevojë kompanitë. Herët a vonë dikush do t'ju punësojë, të paktën në një kompani të vogël. Më pas, kjo përvojë pune do t'ju japë mundësinë të futeni në një kompani më të madhe dhe më interesante.

Valentin Dombrovsky: Meqë ra fjala, në kurset tona ne i përgatisim studentët që të kenë projektin e tyre brenda 10 javëve të trajnimit. Plus, ne trajnojmë aftësitë e zhvillimit të ekipit. Këto janë pikërisht aftësitë e buta për të cilat foli Zlata.

Alexey Shtyrnyaev: Mund t'ju them nga përvoja se mund të duhet shumë kohë për të kërkuar punën tuaj të parë. Kur kërkoni një ose dy muaj, kjo është normale. Nëse dorëzoni CV-në tuaj në të gjitha kompanitë, shkoni në intervista, në muajin e tretë do të gjeni patjetër diçka.

Valentin Dombrovsky: Ju mund të shkurtoni projektet tuaja ose të merrni përsipër projekte të thjeshta të pavarura dhe në të njëjtën kohë të dërgoni CV-në tuaj.

Çfarë perspektive ka një zhvillues Python?

Zlata Obukhovskaya: Një zhvillues Python mund të shkojë kudo. Ju mund të shkoni në testim dhe të vazhdoni të zhvilloheni te një arkitekt i lartë. Ose edhe në menaxhim. Ka lloje të ndryshme të menaxherëve teknikë, dhe ju mund të rriteni në menaxhmentin e lartë. Mund të zhvilloheni në shkencën e të dhënave, DevOps, të shkoni në testime të automatizuara ose në mësimin e makinerive.

Valentin Dombrovsky: Në përgjithësi, ka shumë mundësi dhe mundësi, duke përfshirë kurset tona. Nuk keni nevojë për shumë njohuri në hyrje, por këshillohet që më pas të mbuloni një gamë më të gjerë, sepse sa më shumë të mundeni, aq më mirë për ju.

***

Kjo është vetëm një pjesë e lëshimit Python Junior. Versioni i plotë i episodit është në dispozicion dëgjo.

Ose edhe shikoni:

Luaj Video

Podcast RSS

Faleminderit që lexoni, dëgjuat ose shikoni.

Burimi: www.habr.com

Shto një koment