Készítettünk egy rövid átiratot a Python Junior Podcast főbb gondolataiból: ebben megbeszéltük, hogy kezdő Python fejlesztőként merre induljunk el és merre induljunk el. Az utóbbi időben sok tartalmat kínálunk közép- és idősebbeknek, de ez az epizód határozottan a fiataloknak szól.

Fő téma:
- Milyen ismereteket kell gyakorolnia egy kezdő programozónak
webfejlesztés? - Mit várnak el a munkaadók a fejlesztőktől?
- Mi a teendő, ha tapasztalat nélkül szeretnél munkát találni?
- Hogyan fejlődhet egy Python fejlesztő?
A Python Junior Podcast egy programozási podcast azok számára, akik jobban szeretnék megérteni a Pythont. A közvetítéseket közösségi evangélisták vezetik és a tanfolyam tanárai .
A beszélgetés résztvevői:
- Valentin Dombrovsky,a MoscowPython társalapítója
- Zlata Obukhovskaya, NVIDIA csapatvezető
- Grigorij Petrov, evangélista MoszkvaPython
- Alekszej Shtyrnyaev, a FinEx fejlesztője, a Learn tanfolyamok tanára
Piton
Miért jó a Python webfejlesztéshez?
Valentin Dombrovsky: Miért alkalmas a Python webfejlesztésre? Miért nem például a PHP vagy a JavaScript?
Grigorij Petrov: Szóval nincs sok választás. Annak ellenére, hogy a modern weben valójában egyetlen oldalas alkalmazást vagy progresszív webalkalmazást készíthet háttérrendszer nélkül - pusztán front-end technológiákkal, JavaScript használatával -, ez még mindig túl bonyolult, rosszul indexelt és jó fejlesztőket igényel.
Ha weboldalt vagy szolgáltatást akarunk készíteni, akkor kombinált megközelítést alkalmazunk: egyes háttérrendszerek megvalósítják a logikát és weboldalakat hoznak létre, más frontendek pedig megrajzolják ezeket a weboldalakat a böngészőben. És amikor gyorsan össze kell raknunk az egészet valamiben, akkor nem igazán van más választásunk.
Nézzük a lehetséges lehetőségeket.
- C#. A Microsoft tényleg nagyszerű, elkészítették a .NET Core-t, és minden lehetséges módon népszerűsítik. De először is, ez egy új, többplatformos technológia, és még nem minden zökkenőmentes. Másodszor, nagyon drága, kevés a C# fejlesztő - egyszerűen azért, mert népszerűtlen.
- Java. Ez komplikált. Egy normál webhely elkészítéséhez Java nyelven nem kell 10 sornyi kód, mint a Pythonban. Ez sok kód, ezek keretrendszerek, és ismerni kell a Java szerverek beállításának sajátosságait. Általában folyamatos fájdalom és szenvedés.
- PHP. A legújabb verziókban csodálatos. Még azt is mondom: a PHP 7.2 semmivel sem rosszabb, mint a Python. De nem tudod csak felvenni és használni a PHP 7.2-t. Ha egy hétköznapi, nem csúcsfejlesztő PHP-ben csinál weboldalt, akkor nem csak 7.2-ben fog írni: akkor is el kell olvasnia néhány tankönyvet, tutorialokat, sok a legacy kód mindenhol, és ez nem túl jó.
- JavaScript és Node.js. Csodálatos és nagyon modern, ha egy nyelv van az előtérben és a háttérben is. Csak nem túl stabil. A Node.js jó dolog, de problémás élesben telepíteni, hogy ne omoljon össze és stabilan működjön. Ráadásul ha minőségi JavaScript kódot akarunk írni, akkor nem JavaScript, hanem TypeScript kell. A TypeScript azonban váratlanul bonyolult, és az átlagos fejlesztő agya felforr, ha látja.
Hagyjuk ki a Rubyt, Haskellt, Erlangot és a többi niche-cuccot, és maradunk... Python. Egy konzisztens szintaxisú nyelv, egységes szabványkönyvtár, a legjobb dokumentáció, népszerű könnyű keretrendszerek és a rendkívül népszerű Django kombináció.
Kiderült, hogy a legszélesebb választék ellenére, ha rendes, nem top fejlesztőink vannak, hétköznapi vállalkozás vagyunk, aki hétköznapi weboldalakat akar készíteni, nincs 50 fős fejlesztői részlegünk, akkor vesszük a Pythont.
Milyen tudás szükséges a szakmához?
Zlata Obukhovskaya: Úgy gondolom, hogy egy keretrendszert jól kell ismernie – és tudnia kell, hogy mások milyenek és mikor használják őket. Hol a Tornado, hol a Django, hol a Flask, hol az aiohttp és így tovább.
Hasznos lesz tudni, hogy létezik olyan dolog, mint a protokollok. Különösen a http protokoll ismerete központi szerepet játszik a webalkalmazások felépítésében.
Azt is legalább nagyjából meg kell értened, hogyan működik a webprojektekben a front end: mi az a HTML, CSS, JS.
Alekszej Shtyrnyaev: És tudja, hol van a dokumentáció. Ez a legfontosabb.
Grigorij Petrov: Itt nagyon ingatag talajra lépünk. Ha nincs szerencsénk, és valahogy elkezdjük komolyan tanulmányozni a modern frontendet, akkor az körülbelül 10-szer bonyolultabb lesz, mint a Python backendje. Egy kezdő fejlesztőnek korlátoznia kell a fókuszt, hogy elkezdhesse a HTML tanulását, de ne vesszen el ezekben a divekben, spanokban, lebegtetésekben, hogy minden igazodik és sorakozik.
Alekszej Shtyrnyaev: Szükség van egy alap Bootstrap tanfolyamra. És a HTML alapjai.
Az első évben nem szabad elmélyedni a JS keretrendszerekben (ha a háttérrendszerre koncentrálsz). A Bootstrap alaptanfolyamon már vannak kész modulok: ha csúszkát akarunk, készítsünk csúszkát, ha lebegő menüt, akkor lebegő menüt.
Zlata Obukhovskaya: Úgy gondolom, hogy a frontend tanulmányozása során elmerülhet különösen abban, hogy általában hogyan adják meg a statikát a webes alkalmazásoknak. Így a fejlesztő simán továbbmegy, hogy megtanulja, hogyan működik elvileg a webes alkalmazások architektúrája, és hogyan élnek a termelésben.
Grigorij Petrov: Igen, azonnal ajánlom arra az esetre, ha a Pythont választotta háttérfejlesztői nyelvnek, és például a Django-t keretrendszernek: a Django dokumentációja van a Django Bookban, nagyon klassz, mindent tartalmaz, amit Zlata mondott, tényleg kezdőnek jó.
Alekszej Shtyrnyaev: Egyes Django Girls gyors kezdésre is alkalmas, ha a Django megtanulása a cél. Ez egy olyan oktatóprogram, ahol egy nap alatt áttekintheti a csúcsot, megértheti az alapokat és azt, hogy mire képes a keretrendszer.
Valentin Dombrovsky: A podcast rögzítésére készülve összeállítottunk egy listát arról, hogy egy Python programozónak mire van szüksége a webfejlesztéshez, amely összefoglalja a korábban elmondottakat.
Mit tartalmaz a Python webfejlesztés alapjai
- Webes keretrendszerek: Django, Flask, aiohttp, Tornado stb. (és tudjon mások létezéséről).
- Protokollok és API-k: elsősorban http, JSON-RPC, Protokollpufferek, gRPC.
- ORM és migráció, relációs adatbázisok, SQLAlchemy, SQL, PostgreSQL, MySQL.
- A HTML, CSS, Bootstrap, valamint a JS keretrendszerek és a JQuery alapjai.
- Alkalmazás működési elvei termelésben, tesztelésben, egységtesztekben, autotesztekben, verzióvezérlő rendszerekben, gitben.
Szükségük van a junioroknak algoritmusokra?
Zlata Obukhovskaya: Eleinte nem kell ismerned az algoritmusokat, fokozatosan megjelennek a fejedben, ha elég sokáig veszed részt a fejlesztésben. Rengeteg jó mérnököt ismerek, akiknek nem volt jó formális algoritmus-tanfolyama.
Grigorij Petrov: olajat akarok önteni a tűzre. Honnan ered az algoritmusok iránti vágyunk?
Jelenleg nem rendelkezünk alapvető algoritmusoktatással, nem ismerjük a programozók képzését, nincs technikai bázisunk.
Megpróbálják ezt megtenni, de itt van a Roxfort története: nem tudunk varázslóiskolát létrehozni, miközben nincs egyetlen varázslónk sem. Ezért mit tegyen egy egyetem, amikor hozzájuk fordul, és megkérdezi: „Kezdje el a programozók képzését”, de nincs programozójuk, mert mindenki a Mail.ru-nál, a Ramblernél és a Yandexnél dolgozik, boldogok ott?
Az egyetem ránéz, és azt mondja:
- Oké, programozás. Keressünk valamilyen kapcsolódó tudásterületet, és hívjunk meg onnan szakembereket. Hívjunk meg újságírókat, akik tudnak másolni, villamosmérnököket, akik elektromos áramköröket készítenek, és matematikusokat, akik algoritmusokat tudnak használni.
A végén kiderül, hogy ez olyan praktikus, mint egy építő részecskefizikát tanítani csak azért, mert a tégla és a cement elemi részecskékből áll.
Ugyanakkor maguk a cementről és a tégláról sem beszélnek, mert az építőmestert képezni próbáló fizikus nem tudja, hogyan kell házat építeni. Ennek eredményeként olyan építőt kapunk, aki tökéletesen le tudja írni a „cement működését”, de még soha nem látta, és nem tud belőle semmit sem készíteni.
Az algoritmusok és az adatstruktúrák nagyon jók, de ez nagyon kicsi alkalmazási terület. Sürgősen szükség van rájuk például, ha játékmotort, fordítót vagy hálózati protokollt írsz.
A legtöbb programozó olyan üzleti problémákat old meg, ahol nincs szükség algoritmusokra és adatstruktúrákra.
A legnehezebb matematika a kétszeri összeadás, majd az osztás. Egészen más tudást igényel. Az üzleti problémák megoldása elsősorban alkalmazott, nem pedig alapvető ismereteket igényel.
A kezdő fejlesztőnek jobb, ha megérti az üzletet, és hogyan lehet helyesen és gyorsan összeállítani a szükséges szerkezeteket kész blokkokból, hogyan lehet őket hibakeresni, hogyan lehet megbizonyosodni arról, hogy nem esnek szét, tudja, miért esnek szét, mi történik, ha változnak a követelmények, és a program úgy kezd "letelepedni az alapokra", mint egy ház eső után.
Ezek gyakorlati dolgok és a szoftver írásának megértése. Tudnia kell, hogy a hibakeresőn kívül van egy eszközkészlete, amely pontosan megmutatja, hol lassul a program.
Valentin Dombrovsky: Ez az összehasonlítás jutott eszembe: ez egy fordítás az üzleti élet nyelvéből egy olyan nyelvre, amelyen számítógéppel lehet kommunikálni. Vagyis a programozó egyfajta sajátos nyelvész.
Grigorij Petrov: Az üzletnek íróra van szüksége, nem nyelvészre. Az írónak nem kell tudnia, miért alakult át ezer évvel ezelőtt ez a szó erre. Tudnia kell alkalmazni ezeket a szavakat.
Amire szüksége van az első fejlesztői munkahely megtalálásához
Alekszej Shtyrnyaev: Valószínűleg nincs univerzális recept a junior főzéshez.
Ha valamelyik céghez jössz, nem azért veszik fel, mert ismered a Django-t, a JSON-t és néhány algoritmust. Valószínűleg olyan készségekért veszik fel, amelyekre ennek a cégnek itt és most szüksége van.
Sok cég van, és mindegyiknek más-más követelményei vannak. Nincs ilyen univerzális tudásmennyiség, amit az önéletrajz további elkészítéséhez és álláskereséshez kell megszerezni.
Grigorij Petrov: Amikor a VoxImplantnál több mérnököt kerestünk, műszaki igazgatónk az alapvető követelményt a következőképpen fogalmazta meg: az embernek meg kell tudnia oldani a problémákat. Nyilvánvaló, hogy egy junior nem mindig csinálja ezt hatékonyan, nem a legjobb módon és nem mindig helyesen, de ideális esetben adsz egy feladatot az embernek, ő megfeszíti és megoldja. Ez az a készség, amelyet elsősorban a munkaadók keresnek.
Zlata Obukhovskaya: Azok, akik más területen keresnek munkát, üzleti szempontból előnyben részesülnek, mert már megtettek egy utat, és gyorsan meg tudják oldani a problémákat. Ezek soft skillek, akár munkakultúrának is nevezném. Az egyetemet végzettek gyakran még nem alakították ki ezt a munkakultúrát.
De azért megpróbálnék valamiféle receptet adni kezdőknek.
Első lépések egy kezdő fejlesztő számára
Zlata Obukhovskaya: Az első, hogy ez még mindig valamiféle saját projekt, mert írni kell valamit az önéletrajzba, és fel kell mutatni egy minimális portfóliót. Menőbb, ha ezeket a projekteket nem magadnak készítik, hanem szabadúszó projektként – valakinek.
Az első projektek után már lehet önéletrajzot készíteni és elküldeni minden olyan cégnek, ahol van júniusi pozíció. Az interjúk betekintést nyújtanak abba, hogy mire van szükségük a cégeknek. Előbb-utóbb valaki felvesz, legalábbis egy kis cégnél. Ezt követően ez a munkatapasztalat lehetőséget ad arra, hogy egy nagyobb és érdekesebb társaságba kerüljön.
Valentin Dombrovsky: Egyébként tanfolyamainkon felkészítjük a hallgatókat arra, hogy a képzést követő 10 héten belül saját projektet készítsenek. Emellett fejlesztjük a csapatfejlesztési készségeket. Pontosan ezek azok a puha készségek, amelyekről Zlata beszélt.
Alekszej Shtyrnyaev: Tapasztalatból mondom, hogy nagyon sokáig tarthat az első munkahely keresése. Ha egy-két hónapig keresel, az normális. Ha minden céghez beküldöd az önéletrajzod, menj el interjúkra, a harmadik hónapban biztosan találsz valamit.
Valentin Dombrovsky: Megvághatja saját projektjeit, vagy egyszerű szabadúszó projekteket vállalhat, és ezzel egyidejűleg elküldheti önéletrajzát.
Milyen kilátásai vannak egy Python fejlesztőnek?
Zlata Obukhovskaya: Egy Python fejlesztő bárhová mehet. Belekezdhet a tesztelésbe, és tovább fejlődhet vezető építészvé. Vagy akár a menedzsmentbe is. Különböző típusú műszaki vezetők léteznek, és Ön a felső vezetőkké nőhet. Fejleszthet az adattudományban, a DevOps-ban, belevághat az automatizált tesztelésbe vagy a gépi tanulásba.
Valentin Dombrovsky: Általánosságban elmondható, hogy rengeteg lehetőség és lehetőség van, beleértve a tanfolyamainkat is. A bejáratnál nem kell sok tudás, de célszerű ekkor szélesebb kört lefedni, mert minél többet tudsz, annál jobb.
***
Ez csak egy része a kiadásnak . Az epizód teljes verziója elérhető .
Vagy nézd meg:

Köszönöm, hogy elolvasta, meghallgatta vagy megnézte.
Forrás: will.com
