PC Ekspert Forum

PC Ekspert Forum (http://forum.pcekspert.com/index.php)
-   Web dizajn, programiranje i ostalo (http://forum.pcekspert.com/forumdisplay.php?f=39)
-   -   Python - kako početi? (http://forum.pcekspert.com/showthread.php?t=266367)

KhongLo 05.01.2015. 00:49

Python - kako početi?
 
Pregledavao sam forum i vidio da se tu i tamo javljaju upiti vezani uz Python. Često ga se preporuča kao prvi izbor, kako za one koji još nikada nisu programirali, a htjeli bi početi, tako i za one koji već znaju programirati u nekom drugom programskom jeziku, a htjeli bi dodati još jedan na listu u svom CV-u. Kolegiji vezani uz Python u programu su mnogih svjetski renomiranih sveučilišta, a vidim da na mala vrata ulazi i u nastavne programe srednjih škola i fakulteta diljem Lijepe Naše. Osobno mi se jezik jako sviđa zbog svoje jednostavnosti i funkcionalnosti, pa sam odlučio otvoriti temu i podijeliti svoja iskustva. Nadam se da će bar nekome biti od koristi i da će se i drugi korisnici nadovezati sa svojim znanjem i iskustvom...

Što je Python?

Python je interpretirani općenamjenski programski jezik visoke razine. Tvorac jezika je Guido van Rossum, a ime je dobio prema serijalu Monty Python. Besplatan je i otvorenoga je koda te podržan na velikom broju različitih operativnih sustava, uključujući Windows, Linux i Mac. Korisniku daje mogućnost korištenja većine programski paradigmi, a najviše se ističu proceduralno i objektno orijentirano programiranje. Upravo zahvaljujući Pythonu, YouTube, Dropbox, mnoge Googleove usluge i mnoge distibucije Linuxa (npr. Ubuntu i Mint) izgledaju onako kako ih danas poznajemo. Više na službenim stranicama i Wikipediji...

Preduvjeti za programiranje u Pythonu:
  1. Potrebno je imati računalo na raspolaganju. *
  2. Znati se služiti barem jednim text editorom (npr. Notepad, Notepad++, Vim, Emacs, Nano, Atom, TextMate, Sublime Text, gedit, Kate, itd.). **
  3. Preuzeti Python interpreter (download) i instalirati ga na računalo (uputstva). ***
  4. Uistinu je poželjno, rekao bih čak i nužno, služiti se engleskim jezikom. ****
* Python interpreter moguće je instalirati i na tabletima (pouzdano znam za iPad).
** Uz interpreter dolazi i IDE, no za početak preporučam korištenje text editora. Postoje i razni drugi IDE-ovi koje je moguće besplatno preuzeti s interneta ili ih kupiti.
*** Mac i većina distribucija Linuxa dolaze s predinstaliranim Python interpreterom. Za provjeru otvorite Terminal i upišite help python ili python --version.
**** Za one kojima engleski jezik predstavlja problem bit će navedena i literatura na hrvatskom te ostalim jezicima na kraju.

Koju verziju trebam odabrati: Python 2 ili Python 3?
Ukratko: odaberite prema vlastitim potrebama.
Pojašnjenje:
Online kolegiji za početnike:
  • Learn Python The Hard Way by Zed Shaw (za potpune početnike, tj. one koji nisu ranije programirali)
  • Codecademy (za potpune početnike i one koji imaju prethodnog iskustva s programiranjem u drugim programskim jezicima; potrebno se registrirati ili prijaviti koristeći Facebook ili Google+ account; na stranici postoji interaktivni online interpreter)
  • Learn Python (za potpune početnike i one koji imaju prethodnog iskustva s programiranjem u drugim programskim jezicima; na stranici postoji interaktivni online interpreter)
  • Video snimke s predavanja iz Introduction to Computer Science and Programming na Massachusetts Institute of Technology (MIT 1)
  • Video snimke s predavanja iz Introduction to Computer Science and Programming na Massachusetts Institute of Technology (MIT 2)
  • A Byte of Python by Swaroop C H (vrlo kratki tutorial za potpune početnike)
  • Online Python Tutor (s4vgR ga preporuča za totalne početnike)

Ma ja bih radije da me neka zgodna cura uvede u sve to! :)
Ne sviđa se meni to sve online, daj mi neku knjigu!
Već poznajem osnove Pythona. Htio bih krenuti s nečim konkretnim!
Coding styleKao što i u PEP-u 8 piše, prilagodite svojim potrebama i radnoj okolini.

Kompletna dokumentacija o svemu i svačemu:
Dodatna literatura:
Literatura na hrvatskom i ostalim jezicima:

cccp 05.01.2015. 12:47

Lijep sažetak. Hvala na tome, možda napokon pokrenem lijenu guzicu :)

rodney 05.01.2015. 19:21

Apeliram na "upravu" da stave ovo kao sticky. Mislim da se ovakav post svakako mora istaknuti iznad gomile "do my homework" tema, pa čak i iznad onih par suvislih.

gaggo 05.01.2015. 19:36

Jako dobar post i jako informativno!
Ako zelis imam prezentacije u pdf-u sa kolegija na faksu gdje smo poceli koristiti python za obradu teksta.

KhongLo 05.01.2015. 20:18

@cccp - Ja sam krenuo iz razloga jer sam se htio upoznati s OOP-om i vidjeti što nudi u odnosu na paradigme koje su mi dosada bile poznate (moj background su MATLAB i Fortran 90 u kojima OOP postoji, ali se njegove mogućnosti baš i ne koriste prečesto). Ako te nešto treba malo "pogurati", kao početnu točku preporučam Codecademy jer imaju sustav bodovanja, tj. možeš pratiti svoj napredak u postotcima koji predstavljaju omjer onog gdje si trenutno i onog što sve treba riješiti da bi ti na profilu pod Completed Skills stajalo Python, a postoji i n day(s) streak. Druga opcija je korištenje nečega od ostalog što sam naveo i da svaki dan uploadaš svoj kod negdje (npr. na GitHub koji također ima Current streak).

@gaggo - Može! Python najčešće i koristim upravo za raznorazna čarobiranja s datotekama punim brojki i pokojim slovom, pa mislim da će dobro doći. Ako je moguće, molio bih te da ovdje staviš link da malo obogatimo i nadopunimo temu.

Mr. X 04.02.2015. 08:13

@KhongLo
ovime si uspio zainteresirati nekoga tko nikad nije programirao. svaka čast!

pogi 04.02.2015. 08:26

još jedan glas za Stiki!

Cartmann 17.02.2015. 18:46

Odlična tj. vrlo korisna tema. :care::care:

ps. sad si i mene sjetio fortrana i programiranja početkom 90tih. :)

A kako sam trenutno nezaposlen (skoro 3mj), a ispucao sam sve veze za pronalazak drugog vjerojatno ću bit nezaposlen još neko vrijeme pa gledam kako najbolje iskoristit taj period.

Razmišljao sam upisat i položit ccna jer su i mreže moje interesno područje, ali phyton odnosno programiranje u tom dijelu mi ipak bolje leži.

ps. imam jedno polu-off topic pitanje za one koji rade u toj branši, što im je najgori/najteži dio posla?

wnbeeeE 17.02.2015. 19:09

Najteži dio je navesti klijenta / poslodavca da ti točno objasni što želi u samom startu jer u suprotnome može nastati cirkus. Ili možda objasniti poslodavcu na čemu se trenutno radi :D

partwish 17.02.2015. 19:30

Zašto baš phyton, a ne neki drugi programski jezik. Ne pitam ovo kao nekakvo filozofiranje ili podbadanje, nego čisto informativno... Zašto phyton, a ne c++ ili java?

Neo-ST 17.02.2015. 20:08

FYI, trenutno na Courseri traju predavanja o Pythonu, namijenjena potpunim početnicima (čak i ljudima koji se općenito ne razume baš u kompjutere, dakle baš ono teška nula :D ).

Kurs završava 29.4., trenutno je u tijeku 3. tjedan predavanja (od njih 10), međutim bilo tko se može spojiti bilo kada i odgledati predavanja, te riješiti assignmente za bodove koji će vam trebati kasnije ako želite certifikat.

Inače, sve je besplatno:

https://www.coursera.org/course/pythonlearn

wnbeeeE 17.02.2015. 20:14

Citiraj:

Autor partwish (Post 2737665)
Zašto baš phyton, a ne neki drugi programski jezik. Ne pitam ovo kao nekakvo filozofiranje ili podbadanje, nego čisto informativno... Zašto phyton, a ne c++ ili java?

zbog na oko jednostavne sintakse. Preporučljiv je apsolutnim početnicima.

Ako pitaš zašto baš taj jezik, neki od razloga bi bili
- dobra dokumentacija
- čistljivost koda
- koristi se za web aplikacije, desktop aplikacije, te dosta i u znanstvene svrhe
- stvari su uglavnom jednostavnije za isprogramirati nego recimo u c++
- nema kompajliranja, koristi se interpreter
- nema brige oko memory managmenta, znaci nemoras alocirati memoriju za varijable, niti moras oslobadati memoriju jednom kad zavrsis sa njihovom upotrebom
Eto par stvari iz glave..

Sve ovisi što te zanima i u kojem polju želiš raditi.

partwish 17.02.2015. 20:24

Citiraj:

Autor wnbeeeE (Post 2737693)
zbog na oko jednostavne sintakse. Preporučljiv je apsolutnim početnicima.

Aha, ja sam radio nešto sitno c++.

Cartmann 17.02.2015. 22:48

Citiraj:

Autor wnbeeeE (Post 2737654)
Najteži dio je navesti klijenta / poslodavca da ti točno objasni što želi u samom startu jer u suprotnome može nastati cirkus. Ili možda objasniti poslodavcu na čemu se trenutno radi :D

Da. Jer gledam poslove vani i vidim da se python znalce bez problema plaća 300-400 funti na dan (što bi bilo 3100-4200 kuna dnevno) pa se pitam gdje leži zec s obzirom da te imperijalisti neće platiti ni pennya više nego što moraju.

http://www.reed.co.uk/jobs/contract-...eywords=python

http://www.reed.co.uk/jobs/python-de...eywords=python

KhongLo 18.02.2015. 00:29

Citiraj:

Autor partwish (Post 2737665)
Zašto baš phyton, a ne neki drugi programski jezik. Ne pitam ovo kao nekakvo filozofiranje ili podbadanje, nego čisto informativno... Zašto phyton, a ne c++ ili java?

Osim svega što je wnbeeeE već napisao, ja bih još nadodao ogroman broj korisnika. Time je šansa da će se dobiti pomoć kada negdje zapne daleko veća nego kad se radi o jeziku čija je zajednica dosta mala kao što je to slučaj kod npr. Fortrana, kojeg danas pretežito koriste samo matematičari, fizičari i inženjeri, i to uglavnom kada stvarno moraju. Osim toga, Python je dovoljno mlad programski jezik, a opet je dovoljno star i time jako dobro razvijen, pa se ne treba bojati za njegovu budućnost, tj. da se neće više razvijati ili koristiti za koju godinu. Još je k tome i veoma popularan i rasprostranjen, pa se dolazi do onog all the cool kids do it :D

Citiraj:

Autor Neo-ST (Post 2737689)
FYI, trenutno na Courseri traju predavanja o Pythonu, namijenjena potpunim početnicima (čak i ljudima koji se općenito ne razume baš u kompjutere, dakle baš ono teška nula :D ).

Kurs završava 29.4., trenutno je u tijeku 3. tjedan predavanja (od njih 10), međutim bilo tko se može spojiti bilo kada i odgledati predavanja, te riješiti assignmente za bodove koji će vam trebati kasnije ako želite certifikat.

Inače, sve je besplatno:

https://www.coursera.org/course/pythonlearn

Hvala na informaciji! Nadam se da ću stići baciti oko na koje predavanje čisto da vidim kako su oni složili kolegij i u kojem smjeru će ga voditi.

Citiraj:

Autor Cartmann (Post 2737786)
Da. Jer gledam poslove vani i vidim da se python znalce bez problema plaća 300-400 funti na dan (što bi bilo 3100-4200 kuna dnevno) pa se pitam gdje leži zec s obzirom da te imperijalisti neće platiti ni pennya više nego što moraju.

http://www.reed.co.uk/jobs/contract-...eywords=python

http://www.reed.co.uk/jobs/python-de...eywords=python

Vidi njega! Ja pokrenuo temu za početnike, a on je već u glavi vrti nule :D (JK)

Kruno M 18.02.2015. 08:22

Svaka čast.

Da li ima tko iskustva sa pythonom i android programiranjem? Koji alat je najbolji a to?

s4vgR 18.02.2015. 08:51

Kivy (nisam koristio)


Citiraj:

Autor KhongLo (Post 2737827)
Osim svega što je wnbeeeE već napisao, ja bih još nadodao ogroman broj korisnika. Time je šansa da će se dobiti pomoć kada negdje zapne daleko veća nego kad se radi o jeziku čija je zajednica dosta mala kao što je to slučaj kod npr. Fortrana, kojeg danas pretežito koriste samo matematičari, fizičari i inženjeri, i to uglavnom kada stvarno moraju.

+ ooogroman broj open source modula

zubich 18.02.2015. 09:08

Python - kako početi?
 
@KrunoM
Ja imam i s pythonom i s android programiranjem, ali s pythonom nebuš radio android aplikacije, za to imaš javu.

da i ja osobno nadodam na listu odgovora na gornje pitanje "zašto python?"...
Python se smatra jezikom za rapid development, označavajući svojstvo rasprostranjenosti i jednostavnosti. Tako si možeš uzeti bilo koji adekvatan framework za ono što želiš raditi i imaš sve osnovne probleme rješene, dok bi, na primjer, razvoj web aplikacije u c++ potrajao n-tero puta dulje.

partwish 18.02.2015. 09:55

Pa hvala svima na odgovorima. Razmišljao sam da se malo bacim na php, a sad ste mi ubacili bubu u uho s ovim... Prokletnici! :D

Cartmann 18.02.2015. 12:04

Citiraj:

Autor KhongLo (Post 2737827)
Vidi njega! Ja pokrenuo temu za početnike, a on je već u glavi vrti nule :D (JK)

U, daleko sam ja od tih nula. :) Baš pitam iz perspektive početnika, ali baš potpunog početnika tipa bakice koja radi na kasi u konzumu.

Kad gledam kao početnik (zamislim da imam 18 godina i biram svoj put), izgleda mi teže položiti ccna, ccnp,.. te dizajnirati i administrirati mrežu za 25k godišnje, nego python (django, mysql, javascript,..) i raditi u ubs banci za 60k godišnje. Ili još boje junior developer za 30-40k.

wnbeeeE 18.02.2015. 14:11

Citiraj:

Autor Cartmann (Post 2737952)
Kad gledam kao početnik (zamislim da imam 18 godina i biram svoj put), izgleda mi teže položiti ccna, ccnp,.. te dizajnirati i administrirati mrežu za 25k godišnje, nego python (django, mysql, javascript,..) i raditi u ubs banci za 60k godišnje. Ili još boje junior developer za 30-40k.

izgleda ti :D

Cartmann 18.02.2015. 15:47

Možeš li malo detaljnije, vjerujem da ta tema nije nezanimljiva, bar ne početnicima.

Ne znam kako bi objasnio, npr. da mi dođe netko i kaže "ja sam bloger i zarađujem milijun kuna godišnje", shvatio bi zašto je to tako. Čovjek piše blog kojeg prate milijuni te od reklama zarađuje taj novac. Samo od desetaka tisuća, pa i stotina tisuća blogera koji ne mogu zaraditi ni jednu kunu, on je taj koji je imao mix talenta i sreće da dođe u tu poziciju. S druge strane mi se čini da python developer može biti svak tko ima dovoljno upornosti i želje, sreća i talent nisu presudni u toj priči. Ispada da svak tko ima volje uložiti par godina života može doći do plaće od 400-600 tisuća kuna godišnje (pretvoreno iz funti u kune).

wnbeeeE 18.02.2015. 16:08

Citiraj:

Autor Cartmann (Post 2738113)
Možeš li malo detaljnije, vjerujem da ta tema nije nezanimljiva, bar ne početnicima.

Ne znam kako bi objasnio, npr. da mi dođe netko i kaže "ja sam bloger i zarađujem milijun kuna godišnje", shvatio bi zašto je to tako. Čovjek piše blog kojeg prate milijuni te od reklama zarađuje taj novac. Samo od desetaka tisuća, pa i stotina tisuća blogera koji ne mogu zaraditi ni jednu kunu, on je taj koji je imao mix talenta i sreće da dođe u tu poziciju. S druge strane mi se čini da python developer može biti svak tko ima dovoljno upornosti i želje, sreća i talent nisu presudni u toj priči. Ispada da svak tko ima volje uložiti par godina života može doći do plaće od 400-600 tisuća kuna godišnje (pretvoreno iz funti u kune).

To i je problem, nema svako toliko volje, vremena i novaca da baci dvije godine života full time na nešto. Potrebno je uložiti puno sati, ali najveći problem i nisu uloženi sati i volja već učenje na pravim projektima. Ekipa obično završi codeacademy/codeschool/knjigu/tutorijal ali ne radi na projektu, a na pravim se projektima uči zanat.

Zato kažu da je dobro znati što želiš napraviti("sagraditi") sa tim jezikom prije nego što ga kreneš učiti, tako da ga kroz učenje možeš mic po mic raditi i praksati se. Ne bi baš rekao da je to tako lako i jednostavno, jer zahtjeva dosta učenja, vježbanja i neprospavanih noći, pogotovo za apsolutnog početnika, ali sve se može :) Danas je to bar lako uz sve te materijale što su nam dostupni.

Ja sam evo za primjer završio studij turizma i ekonomije, a radim full time u it-u ko developer jer mi je studij ostavljao dovoljno vremena sa strane da se posvetim onome što me uvijek zanimalo.

KhongLo 18.02.2015. 19:51

Citiraj:

Autor wnbeeeE (Post 2738121)
To i je problem, nema svako toliko volje, vremena i novaca da baci dvije godine života full time na nešto. Potrebno je uložiti puno sati, ali najveći problem i nisu uloženi sati i volja već učenje na pravim projektima. Ekipa obično završi codeacademy/codeschool/knjigu/tutorijal ali ne radi na projektu, a na pravim se projektima uči zanat.

U potpunosti se slažem. Knjige, tutorijali i tečajevi su dobri za upoznavanje s nekim programskim jezikom (ili bilo kojom drugom tematikom), ali nikakve koristi od svega toga dok se naučeno negdje ne primjeni. Tek kad se krene s nečim što ima glavu i rep i kad se u međuvremenu naiđe na desetke i stotine pitanja i problema, te se na kraju postigne željeni rezultat, onda se može reći da nešto znaš.

Čak i ako se netko ne bavi takvim poslom, danas barem više nije problem pronaći projekte. Open source projekti veoma često nove contributore čekaju širom raširenih ruku. Samo na GitHubu takvih projekata ima "beskonačno" mnogo, a ima ih i na drugim stranicama.

Citiraj:

Ja sam evo za primjer završio studij turizma i ekonomije, a radim full time u it-u ko developer jer mi je studij ostavljao dovoljno vremena sa strane da se posvetim onome što me uvijek zanimalo.
:respekt:

Cartmann 18.02.2015. 20:26

Hvala na odgovoru. :chears: Vjerojatno će mi biti jasnije kad se uhvatim učenja. Čitam na drugom forumu prijedloge čovjeku koji želi krenuti smjerom web developmenta. Prvo python jer je lak za naučiti (par tjedana), zatim preć na CSS, html, php, html5, css3,.. i paralelno učit javascript jQuery. Ako se uhvatiš toga ozbiljno za manje od godinu dana si front end developer s plaćom od bar 5000kn (u ZG, nakon par mjeseci potrage za poslom). Ili 20-30t funti u UK. To je otprilike plaća koju dobiju sistem administratori s ccna/ccnp, ovisi o iskustvu, veličini kompanije itd. A onda vidim one oglase za python za 500 funti dnevno pa se pitam što ti ljudi rade kad se poslodavcu isplati dati taj novac tj. što ti ljudi mogu napraviti da to nitko drugi ne može uraditi za manje. Jer za tu plaću bi average Indijac dao oba bubrega i 20 godina po 16h dnevno štrebao python. I Hrvat bi. :)

KhongLo 18.02.2015. 20:36

Prilično zgodan uvod u sve što si nabrojao možeš naći na Codecademy, a sve izuzev Pythona, također imaš to i na W3Schools. Mike Locke je na svom YouTube kanalu dosta dobro opisao svoj put preko trnja do zvijezda. Iako je on web designer, a ne web developer, mnogo toga o čemu priča vrijedi za oba posla. Preporučam da baciš pogled kada nađeš vremena.

wnbeeeE 18.02.2015. 20:55

Python - kako početi?
 
Citiraj:

Autor Cartmann (Post 2738262)
Hvala na odgovoru. :chears: Vjerojatno će mi biti jasnije kad se uhvatim učenja. Čitam na drugom forumu prijedloge čovjeku koji želi krenuti smjerom web developmenta. Prvo python jer je lak za naučiti (par tjedana), zatim preć na CSS, html, php, html5, css3,.. i paralelno učit javascript jQuery.

krivo. Python neces naucit u par tjedana, napipat ćeš samo sintaksu. U web developmentu ići prvo učiti python pa onda html nema nikakvog smisla. Uči html,css (kodiranje) i javascript, a sa strane udaraj svoje po pythonu, ako si baš ambiciozan.

Moj savjet je da ignoriraš taj web svijet za sada jer tamo ima previše tehnologija, i kreni sa pythonom. A putem ćeš pohvatati html/css(štrikanje, kodiranje) ako ti već bude trebao.

Frend mi je full stack web dev u dublinu i ima 500 eura dnevnicu, ali je zato to nakrojio sa 6 godina radnog iskustva. Ništa neide preko noći. Možda kada shvatiš koliko je programiranje teško i koliko je vremena potrebno da postaneš senior shvatiš zašto je dobro plaćeno :) A shvatit ćeš. Programera vani fali i dobro su plaćeni, neka te ne brine nedostatak posla, ali fali onih dobrih programera sa iskustvom.

Cartmann 19.02.2015. 01:55

Nešto malo sam se igrao u css-u, php-u itd.. ali ne s ciljem da to radim za lovu već bi me pukla ideja da napravim blog (wp, css, vlastita domena/hosting) koji bi htio urediti po svom guštu pa bih provodio noći ispitujući opcije i mogućnosti. Onda bi me puklo da se malo igram i s joomlom ili s forumima (vbulletin, smf, dedicated, prebacivanje mysql baze s jednog na drugi), samo sam posljenjih 5-6 godina kompletno izvan toga.

Svakako da ne idem off-topic jer to nema veze s pythonom, zaintrigralo me i to što (barem koliko vidim) Indijci nisu srušili cijenu rada i na ovom području, kao u području mreža.

s4vgR 19.02.2015. 17:08

http://pythontutor.com/

ovo je zgodno za totalne početnike :)

Neo-ST 26.02.2015. 23:02

Može mi netko objasniti ovo:

http://www.pohrani.com/f/1f/rb/2BtCg...001-custom.jpg


Ovo je inače dio predavanja o funkcijama.
Tu mi nešto nije jasno.
Pri definiranju funkcije "computepay", čemu služe "h" i "r", ako dolje pri "try" segmentu te parametre pamti kao "hours" i "rate", a ne "h" i "r" ?
I čemu služi ono "return p" ako je već formulom definiran "p" ?


Sva vremena su GMT +2. Sada je 09:00.

Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
© 1999-2023 PC Ekspert - Sva prava pridržana ISSN 1334-2940
Ad Management by RedTyger