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

Startapi i poslovanje

Sasomange od letos zabeležio 100.000 registrovanih korisnika u pohodu na udeo u domaćem ‘classifieds’ tržištu

Sredinom godine na tržište Srbije stigao je novi oglasnik koji tehnologijom i dizajnom želi da se bori za svoj deo 'classifieds' kolača. Zanimalo nas je kako je čitava priča zamišljena i šta to novo Sasomange.rs pruža domaćim kupcima i trgovcima.

Analiza

Vodeća udruženja frilensera predstavljaju dalje korake ukoliko nadležni organi ne odgovore na njihove zahteve

Sa predstavnicima Udruženja radnika na internetu i Udruženja frilensera i preduzetnika razgovarali smo o narednim koracima kada je reč o pregovorima sa nadležnim organima zbog najavljenog oporezivanja frilensera.

Kolumna

Filtriranje interneta u Srbiji donosi ozbiljne posledice i nepoznatu korist

Filtriranje interneta je u Srbiji uvedeno radi navodnog sprečavanja dalje štete po republički budžet i ekonomiju i uz zanemarivanje brojnih aspekata koji ovaj opasan presedan nosi sa sobom. U tekstu analiziramo zašto je ta odluka besmislena i do kakvih posledica može dovesti.

Propustili ste

Gaming

Facebookov ‘cloud gaming’ ponudiće oglašivačima nove mogućnosti za reklamu

'Cloud' gejming je termin koji je u ovoj dinamičnoj godini isplivao na površinu i zainteresovao mnoge. Iako mu je potrebno još vremena da pokaže svoj pun potencijal, velike kompanije polažu ogromnu nadu u ovu oblast. Nakon kompanija Google i Apple, svoj 'cloud' gejming servis predstavio je i Facebook.

Društvene mreže

1.000.000 pregleda kasnije i domaći Extreme Intimo srušio je Instagram svojim humanim gestom

Ovih dana niste mogli da ne primetite video koji je šerovan širom Instagrama: kampanju #stvarnoželim brenda Extreme Intimo koji je za svako deljenje videa poklanjao novčana sredstva za porodilišta širom Srbije. Više o tome razgovaramo sa predstavnicima ove kompanije.

Internet marketing

TikTok kampanja ‘Teži Ravnoteži’ za 10 dana ima više od 700.000 pregleda – i interesuje tinejdžere širom Balkana

U okviru nacionalne kampanje 'Teži ravnoteži' pokrenut je i TikTok kanal sa ciljem edukacije đaka i studenata na temu zdravih životnih stilova. U nastavku teksta organizatori nam detaljnije otkrivaju o čemu je reč.

Office Talks Podcast

Država ćuti na zahteve frilensera (gost Miran Pogačar)

23. epizodu Office Talks podkasta obeležila je aktuelna tema oporezivanja frilensera. Naš gost bio je Miran Pogačar, predsednik novoosnovanog Udruženja radnika na Internetu.

Startapi i poslovanje

Nakon pritiska javnosti Apple konačno smanjuje App Store naknadu na 15% – ali samo za pojedine developere

Kao deo novog programa za mala preduzeća kompanija Apple najavila je smanjenje stope provizije u App Store prodavnici za 15% - što predstavlja jednu od najznačajnijih promena u procesu u kojem iOS developeri zarađuju na svojim igrama i aplikacijama za Apple uređaje.

Društvene mreže

Snap Inc. imenovao predstavnika za Srbiju – u skladu sa Zakonom o zaštiti podataka o ličnosti

Poverenik za informacije od javnog značaja i zaštitu podataka o ličnosti saopštio je da je i kompanija Snap Inc. imenovala svog predstavnika za Republiku Srbiju.