Tuesday, July 18, 2017

Al Sweigart "Automate the Boring Stuff with Python"

Eks ta natuke kurb ole - rühkida poolküpses eas kaks aastat kõrgkoolis IT süsteemide arendajaks õppida, et siis aru saada, et professionaalsel tasemel programmeerimine oleks mulle pigem karistus kui kutsumus. Kui mind üldse miski kutsub, siis on see sellisel tasemel programmeerimine, nagu Al Sweigert oma imetoredas teoses "Automate the Boring Stuff with Python" (jep, netis ka täiesti tasuta loetav!) õpetab. Raamat teeb täpselt seda, mida pealkiri lubab: õpetab nõmedaid ja rutiinseid tegevusi Pythoni programmeerimiskeeles automatiseerima.

Tõenäoliselt on enamikul arvutikasutajatest ette tulnud mingit nüri klõpsimist: failide ümberorganiseerimist, tabelitega jändamist, massilist kopeerimist ja kleepimist jne. Kui mingit sellist ühelaadset tegevust juba korda kümme tegema pead, võiks selle arutu toksimise asemel valmis kirjutada väikse programmikese, mis selle töö sinu eest ära teeb. Muidugi, kui on vaja pilte töödelda, pole vaja ise Photoshopi valmis programmeerida, juttu on sellistest tegevustest, mis on hästi suvalised ja liiga spetsiifilised, et nende jaoks mingi programm kohe kusagilt alla laadida. Näiteks kirjutasin ma programmi, mis võtab sisendiks Klassikaraadio "Fantaasia" saatejuhi nime, kammib läbi saate kodulehe eri vaated ja väljastab lõpuks loendi kõigist selle saatejuhi mängitud lugudest. Seda oli mul vaja selleks, et nendest lugudest omakorda Spotify playlist teha. Tihti kasutan Pythonit ka Exceli tabelitega opereerimiseks, sest Exceli enda võimalustega olen ma halvasti kursis ja pole kuidagi soovi sellega tegelda ka. Hiljuti kirjutasin veel programmi, millele söödan sisse loetelu huvipakkuvatest, kuid reeglina välja laenutatud teostest Tallinna keskraamatukogus, ja programm käib siis mõne tunni tagant vaatamas, kas miskit on ehk tagastatud. Kui on, saadab mulle meili. (Selle kirjutasin ma valmis enne, kui teada sain, et tänapäeval saab keskraamatukogus end ka järjekorda panna...) Oli ka plaan kirjutada väike klots, mis mind Maanteeameti e-teeninduses sisselogituna hoiaks ja teavituse saadaks, kui sõidueksamil mingi varasem aeg vabaneb, aga see tundus natuke lubamatu olevat.

Kas eelneva ärategemiseks peab raamatut lugema? Ilmselt mitte, võib ka lihtsalt guugeldada "python scrape html library", aga ma kahtlustan, et kui programmeerida ei oska, ei tule selle fraasigi peale, olgugi, et valmisprogramm on pärast võib-olla ainult 15 rida pikk. Võib ka lihtsalt Pythoni dokumentatsiooni lugeda, aga seegi pole minu meelest eriti põnev väljavaade, kui eesmärk on lihtsalt kiiresti mingi väike käkk valmis kirjutada, et oma eluga siis edasi minna. "Automate the Boring Stuff with Python" sisaldab suhteliselt vähe juttu programmeerimise kui sellise ja Pythoni eripärade kohta - ometi siiski piisavalt, et enam-vähem aimu saada, mis värk on. Samuti pole väga juttu best practice'itest, optimaalsetest viisidest asjade ärategemiseks või koodi ilust. Rõhk on peatükkidel, millest igaüks õpetab samm-sammu haaval, kuidas lahendada mingit elulist probleemi programmeerimisega, olgu selleks siis Exceli tabelite või Wordi failidega möllamine, kaustade ümbernimetamine, piltide muutmine vmt. Üks asi on nende koodijuppide kirjutamine, teine asi aga see, et kui midagi sellist pole enne teinud, ei pruugi üldse aimatagi, kuidas ja kui lihtsalt oma elukest kergemaks saaks programmeerida. Lisaks on see kõik eriti imelihtne just Pythonis. Ma olen kõige rohkem Javat õppinud, aga ma ei oskaks küll kuskilt otsast pihta hakata, kui ma nüüd Javaga tahaks Klassikaraadio kodulehte scrape'ida või oma Exceli tabelitega hullata.

Ühesõnaga tehke endale teene: lugege paar tundi seda raamatut ja ärge raisake edaspidi väärtuslikku eluaega nürile arvutitoksimisele. Selleks ei pea programmeerijaks hakkama, piisab täiesti natukese kurssiviimisega. Isegi kui alguses läheb koodi kirjutamisele hulk aega, on programmeerides veedetud aeg palju põnevamalt ja arendavamalt veedetud kui sama pikad tunnid täis ajuvaba kopeerimist-kleepimist.

0 kommentaari:

Post a Comment