Ima li takvih danas uopšte? Tragam za srodnom dušom.
Hoću u stvari da podelim svoje skromno nedavno iskustvo sa forumašima koji možda razmišljaju o tome, a možda bude i nekih korisnih ideja.
Pre jedno godinu dana objavio sam jedan rad, hajde da kažem jednu vrstu leksikona, nije bitno za ovu priču. I prošlo je to OK, ali me i posle nešto teralo da dodajem i oduzimam, širim i prepravljam, tu nema kraja u principu, takva je priroda materije. Shvatio sam da bi elektronska verzija bila prava stvar jer se može modifikovati i koristiti u letu najnovija verzija. Neko drugo dopunjeno štampano izdanje je moguće ali nije verovatno u dogledno vreme.
Volim da se oslonim na samog sebe pa odlučim tako u trenutku da sam to iskodiram, bez programerskog backgrounda osim što sam kao klinac nešto minimalno prčkao u Basicu negde tamo 80tih u pauzi između maltretiranja džojstika. I onda pitam par prijatelja i rođaka profi developera, kažem hoću sam da napravim desktop aplikacijicu, šta da radim. Većina mi kaže: uzmi Python. Ja se počešem po glavi, nemam pojma o tome, kažem OK.
I tako sednem, instaliram taj Python, poskidam s neta knjige i neke video tutorijale, uzmem jedan tefter, sednem i u slobodno vreme zapisujem i ukucavam one jednostavne primere u prost editor što sam skinuo. Jedno mesec dana tako kad i koliko sam mogao. To je bilo u oktobru prošle godine. Skapiram kako idu logičke operacije, petlje i promenljive, naučim malo i tu sintaksu i specifičnosti Pythona, isprobavam ovo i ono, naravno neprestano radi google i stackoverflow.com. Onda krenem da radim algoritam i crtam frontend rukom na papiru. I na kraju počnem da pišem i kod, istovremeno i dalje učim u letu.
I otkrijem neverovatno zadovoljstvo u svemu tome. Narednih par meseci sam grabio svaki slobodni trenutak, a nije ih bilo mnogo, krećem da se igram s tkinterom. Napravim lep mali interfejs, prozor resizable, dugmići, ikonice, liste, pretrage, istorija, browsing. Pa dodam zvuk, wow. Pa onda dodam ilustracije, wow. Napravim linkove, formate teksta, kako mi šta pada na pamet, i nastavljam da se oduševljavam kao tinejdžer, svaki problem me namuči, neki i po par dana, ali bude wow na kraju. I završim na kraju sve to ove godine, utisci profi ljudi su bili veoma dobri. Još isprogramiram jednu zabavnu igricu kao dodatak i ručno iscrtam sve sam u njoj. Mislim, moj source code je sigurno haotičan i neracionalan, sa možda ponekim čudnim rešenjem, sada bi to sigurno bolje uradio, a interfejs možda izgleda kao nešto od pre desetak godina, ali me mrzi da više prepravljam jer sve radi odlično, više ljudi je isprobavalo i tražilo bagove.
Sve u svemu, čitavo iskustvo je bilo istinsko uživanje i povratak u mladost. Osim što sam se na kraju zaista "opučio" da napravim od source code .exe fajl koji može samostalno da radi na svakom Windows računaru. Eeee to je bila višednevna noćna mora i nerviranje. Za te stvari Python je zaista loš.
Elem, ako neko misli da se ovako malo igra i uči, evo nekih mojih amaterskih zapažanja:
- Nisam probao druge jezike ali mislim da je Python zaista dobar izbor za učenje i za početnike, što uopšte ne znači da ćete biti ograničeni u radu. Mogućnosti su velike, pritom ja sam koristio samo osnovnu biblioteku.
- Solidno znanje engleskog jezika je važno. Nisam baš ni tražio tutorijale na srpskom, ali sam siguran da ćete se zaglaviti ako učite sami a ne znate engleski, google i stackoverflow su mi neprestano radili. Jednostavno nećete naći na srpskom rešenja za sve probleme.
- Ako ne uživate u procesu, ne vredi. Za amatersko prčkanje ovog tipa entuzijazam je apsolutni must.
- Ako ste generalno malo slabiji s logikom, biće malo teže ali praksa je mama. Matematika nije previše bitna, ali logika jeste.
- Poželjno je da imate nekog za redovne konsultacije, nije isto kao traženje info po netu. Ja to nisam imao, morao sam sve sam što mi je oduzelo vremena.
- Dobro je da to što radite ima nekog smisla, da postoji praktična korist od svega. Iako je učenje samo po sebi uvek korisno, upotrebljiv krajnji rezultat vas gura dalje, bar je tako bilo u mom slučaju. U stvari, ja želim da ponovim ovo iskustvo ali sad nemam ideju šta bi sledeće korisno za sebe mogao da uradim.
- Rešenje za svaki problem uvek postoji, ne odustajte lako. Ako volite izazove nema problema.
To je moja amaterska programerska priča i dokaz da se to može i bez predznanja. Nadam se da može ohrabriti nekog ko je razmišljao o tome, a mislio da je preteško ili da ne može, da ipak proba. Ako takvih uopšte ima 😄