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

Wonder Dynamics Nikole Todorovića otvara studio u Novom Sadu – podrška stigla i od Stivena Spilberga!

U savetodavnom odboru ovog startapa nalaze se poznati američki investitori, vodeći stručnjaci za razvoj veštačke inteligencije i neka od najvećih imena svetske kinematografije među kojima su Stiven Spilberg i Džo Ruso. Sa Nikolom Todorovićem, koji je jedan od osnivača, razgovaramo o njegovom odlasku u SAD, građenju karijere u Holivudu i pokretanju startapa sa glumcem Tajem Šeridanom, zvezdom filma Ready Player One.

Novost

Nebojša Radović je novi direktor za akviziciju korisnika u kompaniji Zynga koja stoji iza igre FarmVille

Američka kompanija Zynga, pored čuvene mobile igre FarmVille, stoji iza velikog broja svetski popularnih igara koje igraju milioni igrača širom sveta. Njen novi direktor za akviziciju korisnika je Nebojša Radović.

Novost

Kompanija Quantox Technology organizuje novi humanitarni CS:GO turnir – početni fond 1.000.000 dinara

Od 3. do 4. aprila kompanija Quantox Technology organizovaće drugi po redu humanitarni turnir u popularnoj video igri CS:GO. Cilj je da se prikupe novčana sredstva za sve one koji se bore sa zdravstvenim poteškoćama.

Propustili ste

Karijere

Razgovori sa seniorima: Kako domaću IT industriju vidi softverski inženjer?

Jelena Lazić iz kompanije Centili deli svoja razmišljanja.

Office Talks Podcast

Planovi Playrixa za studio u Srbiji

Gost redakcije Netokracije u novog epizodi Office Talks podcasta bio je Mirko Topalski, CEO game dev kompanije PlayrixRS. Sa njim nakon prošlogodišnjeg intervjua po drugi put detaljno razgovaramo o poslovanju u industriji razvoja igara u Srbiji nakon akvizicije Eipixa od strane ruskog giganta Playrixa.

Startapi i poslovanje

Listty kao ‘Instagram za muziku’ otkriva nam šta naši prijatelji slušaju i zašto je muzika bolja kada se deli sa drugima

Ako čujete dobru pesmu verovatno želite da je podelite sa svojim prijateljima. Startap iz Srbije sa servisom Listty omogućava upravo to i nastoji da objedini najbolje od poznatih muzičkih servisa u okviru jedne aplikacije.

Startapi i poslovanje

Otvoren poziv za startape iz Srbije za ViennaUP konferenciju, prijavite se već sada

Grad Beč nekoliko godina unazad organizuje niz događaja za startape koji su se kroz različita izdanja pretvorili u jedan od najvećih inovacijskih festivala u regionu - Vienna UP. Ove godine počinje 27. aprila i trajaće do 12. maja.

Startapi i poslovanje

Novosadski Anari AI dobio investiciju od $2.000.000 za proizvodnju AI čipova u cloudu

Ova srpsko-američka kompanija je za dva meseca zatvorila investicionu 'seed' rundu vođenu od strane nemačkog fonda Earlybird VC, koji je po prvi put investirao u jedan srpski startap. U investiciji su učestvovali i fondovi Acequia Capital i Serbian Entrepreneurs kao i Erica Ries, osnivač Lean Startup-a.

Startapi i poslovanje

€1.000.000 privredi Srbije iz SAD kroz projekat Tesla Nation

Ovaj projekat nastoji da razvije privredne veze Srbije i sveta uz pomoć dijaspore i kompanija koje su se udružile da ga podrže, a cilj mu je da promoviše Srbiju u inostranstvu kao zemlju inovatora i izuzetnih IT profesionalaca.