Učenje Python-a ne razlikuje se mnogo od učenja drugih programskih jezika. Jedan put do sticanja znanja u Python-u (ili bilo kojem drugom jeziku) najviše zavisi od postojećeg znanja i iskustva u programiranju. To znači da iskusni programeri – koji su već upoznati sa glavnim programskim konceptima – obično koriste različite strategije za razliku od početnika.
Međutim, malo je stvari koje su zajedničke svima, a jedna od njih je da morate mnogo da vežbate!
Srećom, Python ima široku, prijatelјsku i posvećenu zajednicu. On je open-source i pruža nekoliko okruženja koja stvarno olakšavaju razvoj.
- Izaberite odgovarajuće okruženje
Za početak bi trebali da budete u redu s redovnim Python 3 interpretatorom i menadžerom paketa na bilo kojem operativnom sistemu koji koristite. Windows, Mac OS ili bilo koji Linux distributer će odraditi posao. (Čak i Android sa QPython-om, iako su njegove mogućnosti ograničene u poređenju sa originalnim Python-om). Kasnije možete da instalirate Anaconda-u na Windows, Mac OS ili Linux. Sadrži interpretator Python, paket Conda, sistem zavisnosti i sistem upravlјanja okruženjem, kao i mnoge pakete drugih proizvođača koji bi mogli da vam budu korisni. Trebali biste da odaberete odgovarajuće IDE (integrisano razvojno okruženje). Mnoga IDE opšte namene kao Visual Studio, Visual Studio Code, Emacs, Vim Sublime Text ili Atom imaju zaista dobru podršku za Python. Ako vam se sviđaju proizvodi JetBrains-a, možete da koristite PyCharm. Spyder je pogodan IDE samo za Python koji je uklјučen u Anaconda-i. IPython i Jupiter su zaista sjajni za početak s obzirom da nude lepe interaktivne funkcionalnosti. Na kraju, tu je i Python Console, ali možda će vam biti korisnije da brzo proverite neki kratak kod, a ne da pišete pune programe. Druga dobra ideja je da razmotrite instaliranje i prilagođavanje Python lintera kao što su Pylint ili Pyflakes. Oni su mali paketi koji ističu probleme u kodu koji se odnose na sintaksu ili stil.
- Pobrinite da imate jake osnove
Ako želite da vežbate bilo koji programski jezik, trebalo bi da dobro naučite osnove kako biste mogli da se nadogradite na njima. To znači da morate da znate barem osnovnu sintaksu, da razumete glavne programske koncepte, upoznate se sa ugrađenim tipovima i strukturama podataka i tako dalјe.
U Python-u bi trebalo da proverite da li razumete klauzulu if, while i for petlјe, funkcije, celi brojevi, floats, strings, tuples, skupovi, liste, rečnici itd. Neke druge vrste kao što su složeni brojevi, imenovani tuples, zamrznuti skupovi mogu da budu korisni takođe.
- Pišite i pobolјšajte kod
Pisanje puno koda za sebe je važan deo učenja programskih jezika.
Započnite sa kodom iz knjiga i tutorijala. Zatim pokušajte da ga modifikujete, učinite uopštenijim ili pogodnim za neke druge svrhe. Nakon toga, pokušajte da kombinujete ono što ste naučili sa malim, ali smislenim programima.
Međutim, zapamtite jednu od najvažnijih stvari u vezi s programiranjem: ne radi se o kucanju, već o razmišlјanju!
Napravićete greške. Svi programeri to rade. To uopšte nije loše. Ono što je veoma važno jeste da pokušate da shvatite šta je pošlo po zlu, to jest učite na sopstvenim greškama. Svaki put kada dobijete i ispravite grešku, postaćete malo bolјi programer nego što ste bili pre.
Ponekad je korisno vratiti se vašem starom kodu i da pokušate da ga pobolјšate. Nadamo se da ćete primetiti da ste mnogo bolјi nego ranije kada ste napisali originalni kod.
Razmislite o problemima koje želite da rešite. U idealnom slučaju, to su pitanja o kojima ste strastveni. Emocionalna uklјučenost obično pobolјšava rezultate. Odredite svoje male i srednje projekte i pokušajte na njima često da radite. Čim naučite nešto novo, zapitajte se kako to možete da primenite na neki problem za čije ste rešavanje zainteresovani.
- Pročitajte Dokumentaciju
Dokumentacija je kritična za Python. Trebalo bi da napravite naviku da je često čitate. U idealnom slučaju, pre nego što primenite neku postojeću funkciju ili metodu, trebalo bi da proverite odgovarajuću dokumentaciju.
Srećom, Python ugrađene biblioteke i najpopularniji paketi trećih strana obično dolaze sa opsežnom dokumentacijom dostupnom na njihovim web sajtovima i dokumentima koje možete da preuzmete. Takođe možete da dobijete dokumentaciju entiteta Python (klasa, metoda, funkcija itd.) programskim pozivanjem atributa. .doc :
Dokumentacija može da sadrži više detalјa u nekim slučajevima.
Iz dokumentacije možete puno da naučite. Možete da shvatite kako koristiti funkciju, metod ili klasu, koje argumente da obezbedite, koje povratne vrednosti da očekujete itd. Često sadrži srodne primere koji mogu da budu prilično informativni, a ponekad i prosvetlјujući.
- Gradite na osnovama
Jednom kada ste u redu sa osnovama, možete da počnete da proširujete svoje znanje.
Ne brinite, nećete zaboraviti osnove. Trebaće vam stalno.
Teme kao što su rukovanje izuzetkom, pakovanje i otpakivanje, * args i ** kwargs, dekorateri funkcija, moduli i paketi, objektno orijentisano programiranje i generatori se često koriste i treba ih dobro razumeti i uveliko primenjivati.
Postoje naprednije teme koje treba da se pokriju poput posebnih metoda, koroutina, asinhronog programiranja, multithreading i multiprocessing, regularnih izraza, testiranja jedinica i tako dalјe. Verovatno vam neće biti sve potrebno na početku. Dakle, možete da počnete sa onim što se čini korisnim. Na primer, ako vam trebaju neke manipulacije strogim nizovima, možete da se pozabavite regularnim izrazima. Ako radite na nekom velikom naučnom računarskom projektu, možda bi vam se višestruka obrada učinila zanimlјivijom.
- Uhvatite savete, standarde, savete i trikove
Postoje mnoge karakteristike jezika specifične za Python, a njihovo učenje nije trivijalni zadatak. Srećom, postoje neki resursi koji mnoge od njih uzvišuju.
Zvanična Python dokumentacija sadrži mnogo informacija. PEP 20, koji je T. Peters nazvao i The Zen of Python, definisao je vodeće principe Pythona:
PEP 8 ili Style Guide for Python Code od G. van Rossum-a, B. Warsaw, i N. Coghlan-a donosi stilski vodič za Python kod. Često je korisno da ga pročitate i pokušate da se držite toga što je više moguće. To bi moglo da pobolјša čitlјivost vašeg koda i olakša vama i ostalim programerima održavanje.
Slično tome, PEP 257, tj. Docstring Conventions D. Goodger-a i G. van Rossum-a, objašnjavaju kako da napišete dokumentaciju koja kasnije može da se dobije sa .doc.
Knjige The Little Book of Python Anti-Patterns od A. Deves-a i C. Neumann-a (besplatne i dostupne na mreži), kao i Python Tricks: Buffet of Avesome Python Features od D. Bader-a nude mnogo informacija o tome kako da napišete čist, efikasan, održiv i Pythonic kod.
- Analizirajte izvorni kod
Python je open-source, kao i većina popularnih biblioteka. To znači da možete da pristupite i pročitate izvorni kod. Često je dostupan na GitHub-u, ali postoje i druga mesta gde možete da pronađete izvor.
Čitanje i razumevanje koda za biblioteku koja vas zanima omogućava bolјi uvid u njegove mogućnosti i detalјe implementacije.
Pored toga, možete puno da naučite analizirajući izvor koji su napisali drugi (nadamo se dobri) programeri. Možete da dobijete ideje, vidite njihove načine primene, naučite nove obrasce i trikove, i tako dalјe.
- Zainteresujte se za biblioteke
Python dolazi sa mnoštvom korisnih biblioteka za različite svrhe: regularni izrazi, matematika, statistika, generisanje slučajnih brojeva, testiranje jedinica, iteriranje, funkcionalno programiranje, multithreading i multiprocesiranje, definisanje apstraktnih klasa i još mnogo toga. Postoje neke vrlo korisne biblioteke trećih strana iz mnogih različitih naučnih i tehnoloških oblasti.
Očigledno je da ne možete da naučite kako da ih sve koristite, ali možete da se fokusirate na nekoliko njih koje izgledaju zanimlјivo za područje za koje želite da se specijalizujete.
Ako želite da budetw biti data scientist ili praktičar mašinskog učenja, moraćete da počnete sa NumPy, koji je osnovna biblioteka za efikasan i koncizan rad sa jednodimenzionalnim i višedimenzionalnim nizovima. Brz je i omogućava rad sa nizom bez izričitog pisanja Pythona za petlјe:
NumPy pruža brojne funkcije za upravlјanje nizovima. Takođe ima ograničen broj rutina za linearnu algebru, statistiku, generisanje slučajnih brojeva i još mnogo toga.
SciPy je naučna računarska biblioteka izgrađena na vrhu NumPy-a koja sadrži dodatne rutine za linearnu algebru i statistiku, ali i za optimizaciju, interpolaciju, integraciju, korišćenjem posebnih funkcija, Fourier-ove transformacije i još mnogo toga.
Pandas je jedna od najpopularnijih biblioteka uopšte. Takođe je izgrađen na vrhu NumPy-a i dobro sarađuje sa NumPy i SciPy. Omogućuje rad sa označenim jednodimenzionalnim podacima.
Scikit-learn je osnovna biblioteka za mašinsko učenje s mnogim algoritmima koji dele konzistentni API (aplikacijski programski interfejs). TensorFlow, Theano, Pytoch i Keras koriste se za veštačke neuronske mreže.
Matplotlib i Bokeh su dobre opcije za vizuelizaciju podataka.
Sve ove biblioteke imaju veoma dobru dokumentaciju. O nekima od njih možete da saznate i u udžbeniku za mašinsko učenje Duomly.
Ako želite da se bavite razvojem weba, možete da naučite i vežbate rad sa nekim od Python web frameworks-a za back-end. Najpopularniji je Django koji dolazi sa većinom potrebnih delova. Veoma je pogodan za velike web aplikacije sa uobičajenim zahtevima. Drugi je Flask – moćan, fleksibilan i praktičan microframework sa mnogim ekstenzijama. I Django i Flask spadaju u najpopularnije web frameworks-e uopšte.
Python ima i druge frameworks-e weba kao što su Pyramid, Bottle, Tornado i tako dalјe.
SQLAlchemy je paket koji omogućava rad sa bazama podataka na objektno orijentisan način. Snažno ga koriste web frameworksči, ali i data science.
- Postanite deo zajednice
Kao što je već rečeno, Python ima veliku, posvećenu i prijatelјsku zajednicu. Možete da postanete deo toga. Čitajte postove, komentarišite, postavlјajte pitanja, tražite objašnjenja itd.
Nakon što steknete dovolјan nivo znanja, možete da počnete da doprinosite kao programer u projektima otvorenog koda ili kao neko ko piše zanimlјive postove i tutorijale. Zajednica i mnogi potencijalni poslodavci visoko ocenjuju ovaj doprinos.
- Naučite drugi programski jezik
Python je programski jezik opšte namene i u mnogim situacijama može u potpunosti da ispuni svačije zahteve.
Međutim, uvek je korisno da se nauče drugi programski jezici. Ovako možete da produbite svoje razumevanje opštih programskih paradigmi i proširite svoje vidike. Jednom kada znate jedan jezik, lakše ćete naučiti drugi. Većina dobrih programera poznaje nekoliko programskih jezika.
Ako želite da budete web programer, verovatno će vam biti potreban JavaScript. Učenje C je dobro za bolјe razumevanje osnovnih programskih koncepata, ali uz to možete da razvijete i vrlo brze Python funkcije. Rust je relativno nov i zadivlјujući programski jezik koji već ima dobru integraciju sa Python-om.
Primeri projekata za praksu
Postoji mnogo potencijalnih malih projekata koje možete da koristite za vežbanje Pythona.
Na primer, možete da pokušate da automatizujete dosadne zadatke. Poznavanje string-ova, regularnih izraza i, na kraju, biblioteka sa predlozima poput Jinja može da vam pomogne da efikasno upravlјate tekstualnim datotekama: pretragom, podudaranjem, zamenom ili upoređivanjem datoteka.
Ako često radite sa Microsoft Office Excel-om, možete da pokušate da koristite XLWings, NumPy i Pandas da biste ubrzali proračune.
Možete da koristite Python za pravlјenje igara. Na primer, možete da primenite biblioteku nasumično i pokušate da simulirate kockice za kockanje ili radite sa kartama. Ako želite da napravite lep grafički korisnički interfejs, možete da koristite biblioteke poput PyQt ili Tkinter. Neke od uobičajenih aplikacija za početnike kreiraju kalkulator (više opcija je bolјe) ili dobro poznatu igru pod nazivom Tic Tac Toe.
Ako volite da skočite na razvoj weba, možete da pokušate sa Flask-om. Potrebno je samo pet linija koda da biste dobili najosnovniju, ali funkcionalnu web aplikaciju. Službeni Flask web sajt sadrži sjajnu dokumentaciju i udžbenike koje možete da koristite da biste naučili ovaj sjajan framework.
Zaklјučci
Upravo ste pročitali nekoliko saveta kako da vežbate Python. Nadamo se da će vam pomoći da postanete Python programer. Ne zaboravite da zadržite kodiranje, pišete zanimlјive programe, pokušate da učite na greškama i uklјučite se u deo zajednice. Konačno, uvek imajte na umu da se programiranje ne odnosi na kucanje. Sve je stvar razmišlјanja.
Srecno kodiranje!