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

Kultura 2.0

Nenad Milanović (COING): Domaće IT kompanije moraju se boriti za prava LGBTQ+ populacije

Direktor kompanije COING za Netokraciju objašnjava zašto IT kompanije treba da se bore protiv diskriminacije LGBTQ+ populacije u Srbiji i diskriminišu diskriminatore.

Kultura 2.0

Usvojen Zakon o digitalnoj imovini! Šta dalje?

Nakon javno održane rasprave, Narodna skupština je usvojila Zakon o digitalnoj imovini, čime se Srbija svrstala u krug retkih država koje su zakonski regulisale oblast digitalne imovine. U nastavku otkrivamo šta nam to Zakon donosi u odnosu na Nacrt i šta možemo očekivati u budućnosti.

Gaming

Svetski poznati CS:GO timovi iz Beograda igraju na turniru vrednom milion dolara

Neki od najboljih svetskih timova u globalno popularnoj igri Counter Strike: Global Offensive upravo se nalaze u Beogradu gde igraju mečeve Blast Pro Series Finala - turnira od milion dolara.

Propustili ste

Kultura 2.0

Kako da nam internet iskustvo bude bolje (i mnogo bezbednije) u 2021. godini?

Ako razmišljate o tome da li (i kako) da promenite svoje internet navike po pitanju privatnosti i bezbednosti - ovo je tekst za vas.

Gaming

Svetski poznati CS:GO timovi iz Beograda igraju na turniru vrednom milion dolara

Neki od najboljih svetskih timova u globalno popularnoj igri Counter Strike: Global Offensive upravo se nalaze u Beogradu gde igraju mečeve Blast Pro Series Finala - turnira od milion dolara.

Startapi i poslovanje

Beogradski Konstrukt akviziran od strane HTEC-a uz najavljene nove akvizicije širom regiona

Kompanija HTEC akvizirala je Konstrukt u cilju pojačanja produktnog i brend dizajna za svoje klijente.

Internet marketing

Oglašavanje na Snapchatu nije bauk i treba ga iskoristiti pre konkurencije

Koji tip kompanija u Srbiji bi trebalo da razmisli o tome da se priključi Snapchatu i da se oglašava na toj društvenoj mreži?

Office Talks Podcast

Profesionalni razvoj programera (upoznajte Symphony)

Tridesetu epizodu Office Talks podcasta obeležio je razgovor sa predstavnicima kompanije Symphony. Sa njima smo pričali o istoriji kompanije, procesu regrutovanja, kulturi rada i izazovima sa kojima su se susretali za vreme pandemije.

Kultura 2.0

Žene imaju jednaku sposobnost ‘preživljavanja’ na online platformama, ali slabije ulaze u ovu oblast

Predstavljamo vam rezultate specijalnog izdanja Gigmetar istraživanja koje pokazuje kako su se gig radnice adaptirale na nove uslove rada koje je donela pandemija.