MS minősítéseket érintő változások 2023.07-01-től!

Gondolatok a Pythonról

Beszélgetés Dr. Guta Gáborral a könyvéről és az általa kidolgozott képzésekről

Kezdjük az elején. Miért és mikor kezdtél el Python nyelvvel foglalkozni?

Nem is tudom, hogyan jött az ötlet, hogy Python nyelvben szeretnék fejleszteni. Amire emlékszem, hogy az első nagyobb munkám Pythonban egy nyelvtan tanuló (grammatical inference) algoritmus fejlesztése volt a 2000-es évek közepén. Algoritmusok prototípizálásával ebben a nyelvben lehetett a leggyorsabban haladni. Mivel több éven át foglalkoztam szoftverek minőségének és fejlesztési folyamatainak mérésével (software metrics), ezért nagyon nem lepett meg, hogy egy dinamikus nyelvben magasabb produktivitást lehet elérni.
Amit még nagyon pontosan fel tudok idézni, hogy hogyan vált a Python a fő munkanyelvemmé. Tudni kell rólam, hogy elég sok nyelvet láttam, nagyon szerettem C-ben és Javában fejleszteni, aztán egy időben a C#-ba is beleástam magam. Valamikor 2010-ben realizáltam, hogy nem lehet mindenhez érteni és tudatosan elkezdtem nem követni a C# és .Net világot. A Java nyelvvel való munka elengedése nehezebb volt, mivel elég mélyen ismertem a nyelvet: még fordító front-endet is írtam valamikor a 2000-es évek elején, valamint több könyvespolcnyi szakkönyvet halmoztam fel és olvastam el. Aztán az, ahogyan az Oracle kezelte a nyelv fejlesztését, megkönnyítette ezt a folyamatot, és Java-val is egyre kevesebbet foglalkoztam. Persze ebben a szakmában muszáj mindig valami újat tanulni, ezért voltak kisebb projektjeim JVM nyelvekkel például Groovyval, majd Scalaval. Akkor döntöttem el véglegesen, hogy nem akarok már átlagos Java projekteket többé elvállalni, amikor beesett egy ilyen megkeresés egy Django alkalmazás fejlesztési projekt közepén: a Java annyira körülményesnek és nehézkesnek tűnt azzal összehasonlítva, amin dolgoztam. Ez persze szigorúan szubjektív és véletlenül sem más nyelvek kritikájának szánom.

Hogyan jutottál arra az elhatározásra, hogy oktasd is a Pythont?

Oktatni mindig is szerettem, már harmadéves egyetemistaként DSP processzorok programozását tanítottam, miután döntős volt a csapatom a Texas Instruments DSP és Analag Challengen. A Python ideális témának tűnt, mert kedveltem mint nyelvet. Amikor elhatároztam, hogy kidolgozok egy tananyagot, akkor még nem számított a népszerűbb nyelvek egyikének sem. Olyannyira nem, hogy a keresőkben nem találtam publikus tantermi, Magyarországon meghirdetett Python tréninget. A nyelv alacsonyabb népszerűsége azért volt előnyös, mert mindig lelkes és motivált résztvevők jöttek a képzésekre, akiket tényleg érdekelt. Az oktatás tehát hobbinak indult évi néhány tréninggel. Azóta persze sok idő eltelt és az egyik legnépszerűbb nyelv lett. Ennek két oldala van: egyrészt nagyon örömteli, hogy egyre többen tanulnak programozni, másrészt ez bevonz olyan résztvevőket is, akik már nem igazi kíváncsiságból szeretnék megtanulni, hanem muszájból. Sajnos azt tapasztaltam az oktatási piacon is, hogy megjelennek az olyan oktatók, akiknek a Python nyelv csak egy újabb tananyag, amit oktatni kell, de a nyelvben szerzett tapasztalatuk még egy junior Python fejlesztő szintjét sem éri el.

És hogyan jött a könyvírás ötlete?

A könyv ötlete szinte az egyik napról a másikra jött. Azt gondolom, hogy elég mélyen értem a programozási nyelvek alapkoncepcióit, hiszen sokat foglalkoztam programozási nyelvek matematikai definíciójával (formal specification of programming languages). A Python nyelvet is elég régóta és mélyen ismerem, így azt gondoltam, hogy tudok olyan könyvet írni, ami nem egy sokadik programozást oktató könyv, hanem didaktikusabb és intuitívabb felépítést követ. Olyan könyvet szerettem volna írni, ami tömör és lényegre törő. Elég alapokról indít ahhoz, hogy kezdők is bátran a kezükbe vegyék, de használható legyen tapasztalt programozók számára is. Objektumok először (object first) megközelítésű könyvet szerettem volna írni. Ezt fontosnak tartom, mert Pythonban minden objektum és szerintem nem lehet úgy oktatni a nyelvet, hogy a nyelv ismertetése végén megemlítjük, hogy egyébként vannak objektumok és osztályok, vagy, hogy ezt valamiféle haladó témaként külön tárgyaljuk. Nagyon hamar eldöntöttem azt is, hogy nem akarok hosszú könyvet írni: maximum 150-180 oldal lehet. Azt hiszem ezt mind sikerült megvalósítani a könyvben.

Miért lett a könyv alcíme az "agilis csapatok közös nyelve"? Csak agilis csapatoknak szántad?

Természetesen nem csak agilis csapatoknak szántam. Azt tapasztaltam, hogy sok cégnél erősen elválik az elemző és a fejlesztő munkakör, ráadásul az agilis szoftverfejlesztés egyik célja, hogy a megrendelő és a fejlesztők közötti kapcsolatot minél közvetlenebbé tegye. Ennek pedig az az egyik következménye, hogy az elemzők és a fejlesztők szorosabban működnek együtt. A Python meglátásom szerint alkalmasabb az ilyen közös munkára, mivel jól olvasható (sokan ezért is nevezik futtatható pszeudokódnak is).

Milyen a fogadtatása a könyvnek?

A hozzám eljutott visszajelzések meglehetősen pozitívak, mind szakmai vonalon, mind a Pythonnal most ismerkedő olvasóktól. Az eladási adatok mindenképpen azt mutatják, hogy sikeres a könyv. Ennek az állításnak a jelentését talán az szemlélteti a legjobban, hogy a könyv a Libri / Bookline számítástechnikai sikerlistáit több mint egy hónapig vezette és - bár ezek a listák elég nagy fluktuációt mutatnak -, most is sokszor lehet látni az első helyen.

Hogyan kapcsolódik a könyv az általad kidolgozott és az IQSOFT – John Bryce Oktatóközpontnál elérhető tréningekhez?

A könyvvel egy időben kihozott új tematikák erősen illeszkednek a könyvhöz. A PythonStart képzés egy az egyben a könyv felépítésén alapul és azt egészíti ki sok gyakorlati példával. A PythonDev is épít a könyvre, de nem annyira szorosan, mivel a fejlesztőknek szánt képzés feltételez egy olyan széles körű általános programozási tudást, ahol már nem kell bevezetni az alapfogalmakat. A könyvet egyébként az IQSOFT – John Bryce Oktatóközpont által szervezett Axonmatics Python képzések tanfolyami tananyagainak részeként meg is kapják a résztvevők.


Mit tanácsolsz a Python nyelvet megtanulni vágyóknak? Menjenek el a képzéseidre?

Nyilván örülök, ha eljönnek a képzéseinkre, de inkább azt mondanám, hogy tájékozódjanak a képzésekről. Azt a képzést vagy tanulási formát válasszák, ami nekik a legjobban tetszik vagy illeszkedik az előképzettségükhöz. Ezért is biztosítunk a képzéseinken különböző belépési szintű tematikákat. Ezekkel arra törekszünk, hogy a legjobb képzést nyújtsuk még akkor is, ha a tananyag kidolgozására és a felkészülésbe fektetett idő magasabbá teszi az árainkat más piaci szereplőkhöz képest. Maguk a képzési alkalmak limitáltak abban az értelemben, hogy kevés alkalmat vállalunk egy évben. Ez azért van így, mert azt gondoljuk, hogy főállásban nem lehet oktatni, mert akkor az oktató saját tudása nagyon gyorsan elavul és megkopik. Összefoglalva: ha a youtube-on található Pythonos előadásaim tetszenek és a könyvembe belelapozva azt gondolják, hogy nem egyedül akarják belőle megtanulni a Python nyelvet, hanem hatékonyabb és könnyebb lenne, hogy egy intenzív tanfolyamon sajátítanák el, akkor várjuk Önöket a képzéseinken.

címkék

Kapcsolódó tanfolyamok



Ajánlja a blogbejegyzést másoknak is!