Python Weberako: junior batek lan egiteko eta garatzeko jakin behar duena

Transkripzio labur bat egin dugu Python Junior Podcast-eko gogoeta nagusiekin: bertan Python garatzaile hasiberri gisa nondik hasi eta nora joan eztabaidatu genuen. Azkenaldian eduki asko ditugu ertaineko eta nagusientzako, baina atal hau, zalantzarik gabe, gazteentzako da.

Python Weberako: junior batek lan egiteko eta garatzeko jakin behar duena

Gai nagusiak:

  • Programatzaile hasiberri batek zer ezagutza landu behar duen
    web garapena?
  • Zer espero dute enpresaburuek garatzaileengandik?
  • Zer egin esperientziarik gabe lana aurkitzeko?
  • Nola garatu daiteke Python garatzaile bat?

Python Junior Podcast programazio podcast bat da Python hobeto ulertu nahi dutenentzat. Emankizunak komunitateko ebanjelariek egiten dituzte MoscowPython eta ikastaroko irakasleak Ikasi Python.

Elkarrizketan parte hartzaileak:

  • Valentin Dombrovsky,MoscowPython-en sortzailekidea
  • Zlata Obukhovskaya, NVIDIA taldeko burua
  • Grigori Petrov, MoscowPython ebanjelaria
  • Alexey Shtyrnyaev, FinEx-eko garatzailea, Learn ikastaroen irakaslea
    Python

Zergatik da ona Python web garapenerako

Valentin Dombrovsky: Zergatik da egokia Python web garapenerako? Zergatik ez PHP edo JavaScript, adibidez?

Grigori Petrov: Beraz, ez dago aukera handirik. Nahiz eta Web modernoan orrialde bakarreko aplikazio bat edo web aplikazio progresibo bat eraiki dezakezu backend gabe - fronte-end teknologiak soilik erabiliz, JavaScript erabiliz - oraindik konplikatuegia da, gaizki indexatua eta garatzaile bikainak behar ditu.

Webgune edo zerbitzu bat egin nahi badugu, ikuspegi konbinatua erabiltzen dugu: backend batzuek logika inplementatzen dute eta web orriak sortzen dituzte, eta frontend batzuek web orri hauek nabigatzailean marrazten dituzte. Eta dena azkar batu behar dugunean zerbaitetan, ez dugu aukerarik.

Ikus ditzagun aukera posibleak.

  • C#. Microsoft benetan bikaina da, .NET Core egin zuten eta modu guztietan sustatzen ari dira. Baina, lehenik eta behin, plataforma anitzeko teknologia berria da, eta oraindik ez dago dena leuna. Bigarrenik, oso garestia da, C# garatzaile gutxi daude - ezaguna ez delako.
  • Java. Zaila da. Webgune normal bat Javan egiteak ez du 10 kode lerro hartzen, Python-en bezala. Hau kode asko da, hauek markoak dira, eta Java zerbitzariak konfiguratzeko zehaztasunak ezagutu behar dituzu. Oro har, etengabeko mina eta sufrimendua.
  • PHP. Azken bertsioetan zoragarria da. Hau ere esango dut: PHP 7.2 ez da Python baino okerragoa. Baina ezin duzu PHP 7.2 hartu eta erabili. Garatzaile arruntak, ez goi-mailakoak, webgune bat PHPn egiten badu, ez du 7.2an bakarrik idatziko: oraindik testu-liburu batzuk irakurri beharko ditu, tutorialak, legacy kode asko dago nonahi, eta hau ez da oso ona.
  • JavaScript eta Node.js. Zoragarria eta oso modernoa da front-end eta backend-ean hizkuntza bat dagoenean. Ez da oso egonkorra. Node.js gauza ona da, baina arazoa da ekoizpenean zabaltzea, huts egin ez dadin eta egonkor funtziona dezan. Gainera, kalitatezko JavaScript kodea idatzi nahi badugu, ez dugu JavaScript behar, TypeScript baizik. Baina TypeScript ustekabeko konplexua da, eta batez besteko garatzaileen garunak irakiten dira ikusten dutenean.

Utz ditzagun Ruby, Haskell, Erlang eta nitxoko beste gauza batzuk, eta geratzen zaigu... Python. Sintaxi koherentea duen hizkuntza, liburutegi estandar uniforme bat, dokumentazio onena, marko arin ezagunak eta Django konbinatu mega-populatua.

Bihurtzen da, aukerarik zabalena izan arren, garatzaile arruntak, ez goi mailakoak, webgune arruntak egin nahi dituen negozio arrunta garela, ez daukagu ​​50 pertsonentzako garapen sailik, orduan Python hartzen dugu.

Zein ezagutza behar da lanbidean sartzeko?

Zlata Obukhovskaya: Uste dut esparru bat ondo ezagutu behar duzula, eta beste batzuk zer dauden eta noiz erabiltzen diren jakin. Non dago Tornado, non Django, non Flask, non aiohttp eta abar.
Baliagarria izango da jakitea badela protokoloak. Bereziki, http protokoloaren ezagutza funtsezkoa da web aplikazioak eraikitzeko.

Web proiektuetan frontend-ak nola funtzionatzen duen gutxi gorabehera ulertu behar duzu ere: zer da HTML, CSS, JS.

Alexey Shtyrnyaev: Eta jakin ezazu non dagoen dokumentazioa. Garrantzitsuena da.

Grigori Petrov: Hemen oso lur astindua zapaltzen ari gara. Zorterik ez badugu eta nolabait frontend modernoa serio aztertzen hasten bagara, orduan Python-en backend-a baino 10 aldiz konplikatuagoa izango da. Garatzaile hasiberri batek bere arreta mugatu behar du HTML ikasten hasteko, baina ez galtzeko div, tarte, flotazio hauetan guztietan, dena nola lerrokatu eta lerrokatuta dagoen.

Alexey Shtyrnyaev: Oinarrizko Bootstrap ikastaroa behar da. Eta HTMLren oinarriak.

Lehenengo urtean, ez zenuke JS esparruetan sakondu behar (backend-ean zentratzen bazara). Oinarrizko Bootstrap ikastaroak dagoeneko eginiko moduluak ditu: graduatzailea nahi baduzu, egin graduatzailea; menu flotagarria nahi baduzu, egin menu flotagarria.

Zlata Obukhovskaya: Uste dut frontend-a aztertzen duzun bitartean murgil zaitezkeela, bereziki, web aplikazioei estatika orokorrean nola ematen zaien. Modu honetan, garatzaileak arinki mugitzen du web aplikazioen arkitekturak printzipioz nola funtzionatzen duen eta ekoizpenean nola bizi diren ikasten hasteko.

Grigori Petrov: Bai, berehala gomendatuko dizut Python backend garapen-lengoaia gisa aukeratu baduzu eta, adibidez, Django marko gisa: Django-k dokumentazioa dauka Django Liburuan, oso polita da, Zlatak esandako guztia dauka, benetan. hasiberrientzako ona.

Alexey Shtyrnyaev: Django Girls batzuk ere egokiak dira azkar hasteko zure helburua Django ikastea bada. Tutorial bat da, non egun batean goia jo dezakezu, oinarriak eta markoa zertarako gai den ulertu.

Valentin Dombrovsky: Podcast-a grabatzeko prestatzeko, Python programatzaile batek web garapenerako behar duenaren zerrenda osatu dugu, lehen esan duguna laburbiltzen duena.

Python-en web garapenerako oinarrietan sartzen dena

  • Web esparruak Django, Flask, aiohttp, Tornado, etab. (eta besteen existentziaz ezagutzea).
  • Protokoloak eta APIak: nagusiki http, JSON-RPC, Protocol Buffers, gRPC.
  • ORM eta migrazioak, datu-base erlazionalak, SQLAlchemy, SQL, PostgreSQL, MySQL.
  • HTML, CSS, Bootstrap, baita JS frameworks eta JQuery oinarriak.
  • Aplikazioen funtzionamenduaren printzipioak ekoizpenean, saiakuntzan, unitateko probak, autotestak, bertsioak kontrolatzeko sistemak, git.

Algoritmorik behar al dute gazteek?

Zlata Obukhovskaya: Hasieran, ez dituzu algoritmoak ezagutu behar; pixkanaka-pixkanaka zure buruan agertuko dira garapenean nahikoa luzea egiten baduzu. Ezagutzen ditut algoritmo formalen ikastaro on bat izan ez duten ingeniari on asko.

Grigori Petrov: Suari erregaia gehitu nahi diot. Nondik datorkigu algoritmoen irrika?

Gaur egun ez dugu algoritmoetan oinarrizko heziketarik, ez dakigu programatzaileak trebatzen, ez dugu oinarri teknikorik.

Hori egiten saiatzen ari dira, baina hemen dugu Hogwarts-en istorioa: ezin dugu aztientzako eskolarik sortu morroi bakar bat ez dugun bitartean. Hori dela eta, zer egin behar du unibertsitate batek haiengana etortzen direnean eta galdetzen dutenean: "Hasi programatzaileak trebatzen", baina ez dute programatzailerik, denek Mail.ru, Rambler eta Yandex-en lan egiten dutelako, pozik al daude?

Unibertsitateak begiratu eta esaten du:
- Ados, programazioa. Bila ditzagun erlazionatutako ezagutza-arloren bat eta gonbida ditzagun hortik espezialistak. Gonbida ditzagun kopiak idazteko gai diren kazetariak, zirkuitu elektrikoak egin ditzaketen ingeniari elektrikoak eta algoritmoak erabil ditzaketen matematikariak.

Azkenean, hori eraikitzaile bati partikulen fisika irakastea bezain praktikoa da, adreilua eta zementua oinarrizko partikulaz eginda daudelako.

Aldi berean, ez dute zementuaz eta adreiluaz hitz egiten, eraikitzailea prestatzen saiatzen ari den fisikariak ez baitaki etxeak egiten. Ondorioz, "zementuak" nola funtzionatzen duen ezin hobeto deskribatzeko gai den eraikitzaile bat lortzen dugu, baina inoiz ikusi ez duena eta hortik ezer egiten ez dakiena.

Algoritmoak eta datu-egiturak oso onak dira, baina aplikazio eremu oso txikia da hau. Premiazkoa da, adibidez, joko-motorra, konpilatzailea edo sareko protokoloa idazten ari bazara.

Programatzaile gehienek negozio-arazoak konpontzen dituzte non algoritmoak eta datu-egiturak behar ez diren.

Bertan matematikarik zailena bi aldiz gehitzea eta gero zatitzea da. Ezagutza guztiz desberdinak eskatzen ditu. Enpresa-arazoak konpontzeko, batez ere, oinarrizko ezagutza aplikatu beharrean behar da.

Hobe da garatzaile hasiberri batek negozioak ulertzea eta prest dauden blokeetatik behar diren egiturak behar bezala eta azkar nola muntatu, nola arazketa, nola ziurtatu ez diren desegin, zergatik erortzen diren jakitea, zer gertatzen da eskakizunak aldatzen direnean eta programa "oinarrietan finkatzen" hasten denean euriaren ondoren etxe bat bezala.
Hauek gauza praktikoak dira eta softwarea nola idatzi ulertzeko. Jakin behar du arazteaz gain, programa zehatz-mehatz non moteltzen den erakutsiko duen tresna multzo bat duela.

Valentin Dombrovsky: Konparaketa hau etorri zitzaidan burura: negozio-hizkuntzatik ordenagailu batekin komunikatzeko hizkuntza batera egindako itzulpena da. Hau da, programatzailea hizkuntzalari espezifiko moduko bat da.

Grigori Petrov: Enpresak idazle bat behar du, ez hizkuntzalaria. Idazleak ez du jakin behar duela mila urte hitz hori zergatik bihurtu zen honetan. Hitz hauek aplikatzeko gai izan behar du.

Garatzaile gisa zure lehen lana aurkitzeko behar duzuna

Alexey Shtyrnyaev: Seguruenik ez dago errezeta unibertsala nola prestatzeko junior.

Enpresaren batera etortzen bazara, ez zaituzte kontratatuko Django, JSON eta algoritmo batzuk ezagutzen dituzulako. Seguruenik enpresa honek hemen eta orain behar dituen gaitasunetarako kontratatuko zaituzte.

Enpresa asko daude, eta guztiek baldintza desberdinak dituzte. Ez dago halako ezagutza kopuru unibertsala lortu behar denik curriculuma gehiago prestatzeko eta lan bila joateko.

Grigori Petrov: VoxImplant-en hainbat ingeniari bilatzen ari ginenean, gure zuzendari teknikoak honela formulatu zuen oinarrizko baldintza: pertsona batek arazoak konpontzeko gai izan behar du. Argi dago junior batek ez duela beti modu eraginkorrean egingo, ez modurik onenean eta ez beti zuzen, baina hobeki pertsona bati zeregin bat ematea, tentsioa eta konpontzen du. Hau da enpresaburuek batez ere bilatzen duten trebetasuna.

Zlata Obukhovskaya: Beste esparru batzuetako lana bilatzen ari diren pertsonek abantailaren bat dute negozioaren ikuspuntutik, dagoeneko bideren bat egin dutelako eta arazoak azkar konpontzeko gai direlako. Gaitasun bigunak dira, lan-kultura ere deituko nioke. Askotan, unibertsitateko tituludunek ez dute oraindik lan-kultura hori garatu.

Baina hala ere gustatuko litzaidake hasiberriei nolabaiteko errezeta ematen saiatu.

Garatzaile hasiberri baten lehen urratsak

Zlata Obukhovskaya: Lehenengoa da oraindik zure proiektu moduko bat dela, zure curriculumean zerbait idatzi behar duzulako eta portafolio minimo bat erakutsi behar duzulako. Hotza da proiektu hauek zuretzako egin ez direnean, autonomo gisa baizik - norbaitentzat.

Lehen proiektuen ostean, dagoeneko curriculuma egin dezakezu eta ekaineko lanpostuak dauden enpresa guztietara bidali. Elkarrizketek enpresek behar dutenaren berri emango dute. Lehenago edo beranduago norbaitek kontratatuko zaitu, enpresa txiki batean behintzat. Ondoren, lan-esperientzia honek enpresa handiago eta interesgarriago batean sartzeko aukera emango dizu.

Valentin Dombrovsky: Bide batez, gure ikastaroetan ikasleak prestatzen ditugu beren proiektu propioa izateko prestakuntzaren 10 asteko epean. Gainera, taldeen garapenerako gaitasunak lantzen ditugu. Horiek dira, hain zuzen ere, Zlatak hitz egin zituen gaitasun bigunak.

Alexey Shtyrnyaev: Esperientziagatik esango dizut oso denbora luzea izan daitekeela zure lehen lana bilatzeko. Hilabete bat edo bi bila ari zarenean, hori normala da. Zure curriculuma enpresa guztietara bidaltzen baduzu, joan elkarrizketetara, hirugarren hilabetean zalantzarik gabe zerbait aurkituko duzu.

Valentin Dombrovsky: Zure proiektuak moztu ditzakezu edo freelance proiektu sinpleak hartu eta, aldi berean, zure curriculuma bidali.

Zein aukera ditu Python garatzaile batek?

Zlata Obukhovskaya: Python garatzaile batek edonora joan daiteke. Probetan sartu eta goi-arkitektu batera garatzen jarraitu dezakezu. Edo kudeaketan ere. Kudeatzaile tekniko mota desberdinak daude, eta goi-zuzendaritzan haz zaitezke. Datu-zientzian, DevOps-ean garatu dezakezu proba automatizatuetan edo ikaskuntza automatikoan.

Valentin Dombrovsky: Oro har, aukera eta aukera asko daude, gure ikastaroak barne. Sarreran ez duzu ezagutza handirik behar, baina gero eskaintza zabalagoa estaltzea komeni da, zenbat eta gehiago ahal izan, orduan eta hobeto zuretzat.

***

Hau argitalpenaren zati bat besterik ez da Python Junior. Atalaren bertsio osoa eskuragarri dago entzun.

Edo begiratu ere:

bideoa

Podcast RSS

Eskerrik asko irakurtzeagatik, entzuteagatik edo ikusteagatik.

Iturria: www.habr.com

Gehitu iruzkin berria