Kako jednostavno početi sa učenjem programskog jezika Python?

Kako jednostavno početi sa učenjem programskog jezika Python?

Među programskim jezicima postoje velike razlike kako u samom procesu rada, tako i u krajnjim rezultatima. U razgovoru sa Nikolom Kolevskim, otkrivamo zašto je Python sve popularniji među programerima i šta ga izdvaja od drugih tehnologija.

U poslednjih nekoliko godina Python kao programski jezik sve je popularniji što na domaćem, što na svetskom IT tržištu, a sve veći broj ljudi koji ulaze u svet programiranja odlučuje da svoju karijeru započnu baš u ovoj tehnologiji. Otuda smo u razgovoru sa Nikolom Kolevskim, koji inače ima iskustvo rada u ovom jeziku, odlučili da detaljnije i bliže objasnimo o čemu je zapravo reč kada govorimo o Pythonu.

U intervjuu koji sledi, između ostalog, dotakli smo se i onoga što će najviše zanimati sadašnje i buduće programere, a to je koliko se zapravo Python razlikuje od ostalih jezika, šta tačno nudi, koji su mu limiti, kao i koja su dalja predviđanja kada je reč u upotrebi ovog jezika kako u svetu, tako i u Srbiji.

Python nudi čist interfejs, a idealan je za brze eksperimentalne sesije

“Python mi se pojavio na radaru po preporuci. Do tada sam mahom koristio C ili C# za desktop i PHP uz JS za web. U retrospektivi ne znam zašto nisam koristio C# za web – verovatno zato što je PHP delovao mnogo prirodnije”, započinje Nikola razgovor za Netokraciju prisećajući se svojih prvih koraka u ovoj tehnologiji. Međutim, kako dodaje, Python se ispostavio kao dovoljno opšt da zameni sve od navedenog, osim C-a za embedded i JS-a za browser.

Kako nam je otkrio, za njegovo razumevanje Pythona, ključan je bio Django web framework, dok je sam framework interno glomazan, interfejs koji pruža je iznenađujuće čist. Nikola dodaje:

Ispostavilo se da ovo važi za većinu popularnih biblioteka. Tad mi je Python konačno kliknuo – izuzetno čisti interfejsi koji omogućavaju brz rad u svom domenu u veoma sintaksno-sažetom jeziku. Neko će se verovatno nasmejati na “čisti interfejsi” u dinamičkom, slabo tipiziranom jeziku, ali zajednica uglavnom vrlo lepo dokumentuje, te je učenje lako.

Pored pomenute dokumentacije, našem sagovorniku je najviše pomogla lokalna zajednica, tačnije u Haklabu gde je Python bio dosta korišćen, te je imao gde da posmatra kolege kako barataju njime. “Python je bio čest izbor jer je idealan za brze eksperimentalne sesije. Tu je i Python Belgrade meetup koji nažalost ne posećujem dovoljno često ali su iskustva bila svakako sjajna – organizatorima možemo da se zahvalimo i za PyCon Balkan”, otkrio nam je Nikola.

Ono što smo uspeli da saznamo zahvaljujući našem sagovorniku jeste da mu programi kao što su Python Weekly i GitHub trending stranica za Python (kroz GitHunt New Page ekstenziju za Chrome) i dan danas pomažu da prati globalnu Python zajednicu.

Na pitanje Netokacije zašto, prema njegovom mišljenju, ovaj programski jezik poslednjih godina doživljava veliki rast na svetskom nivou, ali i kod nas, Kolevski odgovara:

Lak odgovor bi bio zbog značaja u novim oblastima, poput veštačke inteligencije, data science-a i sličnih oblasti gde je prioritet u ergonomiji razvoja. Velike količine podataka predstavljaju izazov koji nije lako napasti isključivo misaonom analizom – potrebno je okruženje u kom se možete poigrati sa podacima.

Prema mom mišljenju, najveći pokretač ovoga je bio IPython Notebook, kasnije preimenovan u Jupyter Notebook. Ovo okruženje je najsličnije laboratoriji, gde uz interaktivno istraživanje dolazite do formiranog naučnog rada, ili, po rečima autora, do komputacionog narativa. Nekima poznatiji primer bi bio Matlab ili čak Excel, samo sa poznatijim programskim jezikom za opštu primenu.

Kako je naveo, ovo bi mogao da bude lak odgovor, ali ne i kompletan s obzirom na to da se popularnost ne zaustavlja na naučnim krugovima. Štaviše, Nikola nam je otkrio da je prema StackOverflow vizuelizacijama od pre par godina sistemska administracija/DevOps još jedna od oblasti koja sve više koristi Python, kao i da je činjenica da se spominje češće i u različitim krugovima uzrokovala rast popularnosti samog jezika.

Otuda smo se, kao logičan sled događaja, zapitali po čemu je zapravo Python specifičan u odnosu na popularne programske jezike? Šaljivo, Nikola kaže da je popularan baš po tome što nije specifičan. Šalu na stranu, on kaže da je prva razlika sa kojom se programer susreće zapravo sintaksa.

“Godine rada u C-olikim jezicima su nas navikle da strukturu opisujemo simbolima, najčešće vitičastim zagradama ({}). U Python-u se struktura opisuje prostorno. Uvlačenje reda podrazumeva da je kod u dubljem leksičkom bloku”, kaže Nikola i dodaje:

Sa strane zajednice specifičan je način “upravljanja”. Guido van Rossum, kreator Python-a, je do 2018. godine bio Benevolent dictator for life (češće pisano kao BDFL), kada je otišao u penziju i predao kormilo Steering Council-u od pet ključnih programera koji rade na CPython-u.

Ovo znači da jedna (ili pet u slučaju Council-a) osoba ima konačnu odluku o bitnim stvarima. U realnosti proces uvođenja novih stvari i izmena postojećih se vodi kroz Python Enhancement Proposals. Kroz njih praktično svako (uz sponzorstvo ključnih programera) može dati svoju preporuku za izmene i standarde.

Tako nam je Nikola otkrio da su neki od poznatijih PEP-ova PEP8, koji definiše stil pisanja Python koda, i PEP20, takozvani Zen of Python, koji opisuje Guido-ve principe kroz 19 aforizama. Kroz Zen of Python je i zajednica počela da deli principe jezika, iz kojih bi naš sagovornik izdvojio sledeći: “There should be one– and preferably only one –obvious way to do it.”

Ovaj jezik je idealan za ulazak u svet programiranja

U nastavku smo sa Nikolom pričali i o tome da li postoje neke glavne predrasude zajednice programera u vezi ovog jezika i da li su, prema njegovom mišljenju, opravdane ili ne. Na primer da li je sporiji od ostalih i slično.

“Dok je u opštem slučaju to tačno, radi se o prevelikoj generalizaciji. Jedan od razloga je Global Interpreter Lock”, smatra Nikola. On dalje dodaje da u referentnoj implementaciji, zvanoj CPython, GIL sprečava izvršavanje više od jedne programske niti u jednom trenutku. Zapravo, kaže on, ovo efektivno znači da jedan Python proces ne može koristiti punu snagu multijezgarnih procesora koji su danas u praktično svakom računarskom sistemu.

“Srećom, ovo ne utiče previše na glavne upotrebe Python-a kojima je usko grlo ulaz/izlaz podataka, kao što su web serveri ili DevOps orkestracija. Naravno, brže je uvek bolje, te postoje neki načini da se umanje efekti GIL-a”, kaže Kolevski za Netokraciju i objašnjava:

Ukoliko je u pitanju čista računska obrada, multiprocessing: biblioteka ugrađena u jezik omogućava pokretanje računskih operacija u zasebnim procesima koji se ne utrkuju oko istog GIL-a. Loša strana multiprocessing-a je odvojeni memorijski prostor i samim tim veća upotreba memorije, sporija promena konteksta i složenija komunikacija između procesa.

Ako je pak ulaz/izlaz usko grlo Python pruža:

asyncio biblioteku od verzije 3.4. asyncio uvodi mogućnost asinhronog programiranja, gde lako možemo pisati naizgled sinhron kod kojih zapravo prepušta kontrolu drugim ko-rutinama (asinhroni pandan nitima) kad god naiđemo na operaciju koja čeka na ulaz/izlaz. Ovo je slično načinu rada Node.js-a i vrlo pogodno za pisanje web servera koji obrađuju veliki broj zahteva.

Stvar je ovde tehnički malo složenija. “Python na način na koji biste ga koristili u školskom okruženju jeste nepogodan za razvoj softvera visokih performansi, ali sam jezik pruža dovoljno mogućnosti za bolje performanse”, kaže nam Nikola.

Ipak, ono što je dobro jeste da limiti za ovaj jezik, uslovno rečeno, ne postoje. Ono što nam je naš sagovornik otkrio jeste da to važi za svaki Tjuring potpun jezik. Ipak, prema njegovim rečima, postoje stvari za koje je jezik manje pogodan i on ga lično ne bi koristio za razvoj desktop aplikacija jer je generalna podrška za grafičke interfejse rudimentarna ili bolja u drugim jezicima.

Takođe, Nikola kaže da Python nije pogodan za embedded sisteme (npr. softver za industrijsku elektroniku), što zapravo važi za većinu interpretiranih jezika (JS, Ruby, PHP, Perl, itd.) jer im je memorijski otisak prevelik za specijalizovane uređaje koji imaju malo memorije na raspolaganju.

Sa druge strane, što se tiče prednosti koje ovaj jezik donosi, naš sagovornik dodaje da one takođe ne postoje ili sa bar ne razlikuju od specifičnosti s obzirom da se ovde radi o jeziku opšte namene sa vrlo zdravom zajednicom:

Ja najviše volim da ga koristim za backend development, posebno u ranim fazama gde još uvek istražujem proizvod. Django je savršen za izuzetno brz i ergonomičan razvoj CRUD aplikacija (koje prestavljaju veliku većinu onoga šta tržište traži).

Pred sam kraj razgovora, Kolevskog smo upitali kako prema njegovom mišljenju u Srbiji stoji situacija po pitanju upotrebe Pythona i da li broj kompanija koje traže programere koji poseduju ova znanja ide u korak sa interesovanjem programera za ovaj jezik (jer, po istraživanjima domaće scene, veliki broj developera bi voleo da nauči nešto više o ovoj tehnologiji)? Nikola kaže da je iz njegovog ugla potražnja veća nego interesovanje, posebno kada je reč o potrebama za seniornijim kandidatima:

Naravno, moj pogled na trenutno stanje tržišta nije sveobuhvatan, ali svakako je teško naći kandidate. Do sada je domaće tržište bilo usko vezano za inostranstvo, što ne verujem da će se skoro promeniti. S obzirom da na inostranom tršištu potražnja za upotrebom Pythona samo raste, očekujem da će se isto oslikati i na našem.

Sumirajući ovaj razgovor, Nikola je dao savet svima koji tek ulaze u svet programiranja, rekavši da ako ste novi u ovoj oblasti, treba ići samo napred, jer će Python dati zdravu podlogu i dobro razumevanje programiranja, bez opterećujućih detalja.

“Bilo da se zadržite na Python-u ili odaberete drugi jezik principi ostaju tu, a odlična zajednica će vas izvesti na pravi put. Ako ste pak iskusniji, i već imate jezik koji vam je tečan, Python može biti fina ekskurzija u odličnu zajednicu. Svakako “švajcarski nož” koji vam može dobro doći”, zaključio je na kraju Nikola.


Odgovori

Tvoja e-mail adresa neće biti objavljena.

Popularno

Zabava i zanimljivosti

Disney+ je konačno dostupan i kod nas, ali evo šta korisnici u Srbiji ne dobijaju

Od ovog meseca, korisnici iz Srbije i regiona konačno imaju priliku da se pretplate na Disney+ striming platformu, ali uz određena ograničenja.

Startapi i poslovanje

Domaći OTA Sync podigao €250.000 – prva investicija Telekomovog VC fonda

Domaći startap OTA Sync podigao je investiciju u vrednosti od skoro 250.000 evra od strane zajedničkih investitora TS Ventures Fonda, DSI grupe poslovnih anđela i Startup Wise Guys fonda iz Estonije.

Karijere

Nakon 15 godina u medijima Ivan Jelić karijeru nastavlja u kompaniji Sourcefabric

Posle 15 godina rada na domaćem medijskom tržištu kao deo web tima B92, Ivan Jelić nastaviće svoju karijeru u kompaniji Sourcefabric. U intervjuu sa njim otkrivamo kako se odlučio da svoje nove profesionalne korake gradi u firmi koja razvija softver za medije.

Propustili ste

Web 3.0

Uvod u blokčejn: Novi vodič odgovara na pitanja o osnovama ove tehnologije

Ovaj vodič nam donosi osnove blockchain tehnologije, uvod u blockchain ekonomiju, kao i odgovore na pitanja kako ova tehnologija utiče na vaš online identitet i koja je njena budućnost.

Startapi i poslovanje

Florence Healthcare sa velikom kancelarijom u Beogradu obezbedio novih $27 miliona investicije

Cilj ove investicije je da podrži misiju kompanije da u narednoj deceniji udvostruči rezultate kliničkih istraživanja tako što će omogućiti remote pristup njihovoj dokumentaciji.

Internet marketing

Kreativna agencija Redvertex otvara kancelarije u Beogradu – zapošljavaju 3D artiste i arhitekte

Jedna od vodećih svetskih kreativnih agencija iz oblasti arhitektonske vizualizacije i marketinga posvećene svetskoj industriji nekretnina, otvara svoju kancelariju u prestonici Srbije.

Novost

Ximedes sa kancelarijama u Novom Sadu akvizirao holandski Ginger Payments – širenje tima prva stvar na spisku

Ximedes, evropska softverska firma aktivna u fintech oblasti sa kancelarijama u holandskom Harlemu, Hamburgu, Stokholmu i Novom Sadu, akvizirala je kompaniju Ginger Payments koja je vodeći provajder platforme za onlajn plaćanje sa sedištem u Amsterdamu.

Najava

Solana x Jump Hacker House konferencija o web3 tehnologiji dolazi u Beograd početkom jula

'Solana x Jump Hacker House Beograd', konferencija za softverske inženjere i tehnološke biznise zainteresovane za blockchain i web3 tehnologije biće održana u Beogradu od 02. do 06. jula.

Gaming

Highwater nova je igra srpskog Demagog studija koja ove godine dolazi na konzole i PC

Nakon uspeha video igre 'Golf Club: Wasteland' i najave igre 'The Cub', srpski game dev studio Demagog najavio je svoj novi naslov 'Highwater' koji bi uskoro trebalo da bude dostupan za gejmere širom sveta.