Kako naučiti Python na jednostavan način (a ne onako kako sam ja to učinio)

Python bi trebao biti jedan od najlakših programskih jezika za učenje. Znajući da sam se osjećala prilično loše kad sam prvi put pokušala, a nisam uspjela to naučiti. Bilo je još gore drugi put kad nisam uspio.

Ali ispostavilo se - a to sam naučio iz trećeg pokušaja - da Python može biti stvarno dostupan, čak i nekodičarima koji vole humanističke znanosti poput mene. Jednostavno mu morate pristupiti na pravi način.

Kako nisam uspio naučiti Python ... prvi put

Prvi put sam pokušao naučiti Python prije gotovo deset godina. Nisam bio baš siguran što želim raditi s tim - možda automatizirati neki svoj posao, možda napisati malu aplikaciju. Samo se činilo kao vještina koju bi bilo dobro znati.

Zato sam uzeo kopiju tada besplatnog PDF -a Learn Python the Hard Way i počeo pokušavati raditi na njemu.

Prvi zid u koji sam udario bio je postavljanje Pythona na moj vlastiti sustav. Pogotovo u to vrijeme, većina uputa o tome kako to raditi napisana je za iskusne programere i trebalo mi je zauvijek da prolazim kroz sve.

Želio sam naučiti kako pisati Python kôd, a moj prvi korak bio je potrošiti pet sati u borbi s naredbenim retkom? Bio sam demotiviran prije nego što sam uopće počeo.

Kad bih napokon stvari namjestio, mogao bih zajedno s knjigom pisati i kod. I neko sam vrijeme usporavao sastavljajući vrlo jednostavnu tekstualnu avanturističku igru.

Ali kad pogodim prvi pravi izazov - one trenutke koji uvijek dođu u kodiranju gdje nešto ne uspije i jednostavno ne možete shvatiti zašto - odustajem.

Morao sam obaviti važnije stvari nego lupati glavom o tipkovnicu i slagati zagonetne poruke o pogreškama. Pogotovo kad mi je krajnji cilj bio izraditi tekstualnu avanturističku igru ​​do koje mi nije bilo stalo i koju nikad nitko neće igrati.

Kako nisam uspio naučiti Python ... drugi put

Nekoliko godina kasnije, pokušao sam ponovno. Do tada sam radio kao novinar i počeo sam se zanimati za podatkovno novinarstvo, a posebno za struganje weba.

Znao sam da će biti potrebno imati Python vještine kodiranja, pa sam pronašao internetsku obrazovnu platformu - neću reći koju - i započeo sam početni Python tečaj.

Kao i većina MOOC-ova, i ovaj se tečaj temeljio na video zapisima. Gledao bih predavanje o temi vezanoj uz Python, odgovarao na kviz na web mjestu tečaja kako bih potvrdio da sam naučio materijal, a zatim bih prešao na sljedeći modul.

Iskusni programeri vjerojatno već mogu pogoditi što se dalje dogodilo: kad sam pokušao napisati Python kôd za sebe, nisam mogao ništa učiniti.

Gledajući kako netko drugi kodira video zapise i slušajući njihova objašnjenja, pomislio sam da učim kako to učiniti za sebe. I činilo se da su kvizovi s više izbora i popunjavanjem praznih mjesta na kojima sam dobivao 100% potvrdu da sam shvatio materijal.

Ali naravno, kad je došlo vrijeme da ga primijenim samostalno, nisam mogao. Mogao sam pregledati videozapise i kopirati ono što je predavač radio, ali bilo mi je jako teško primijeniti sve što sam naučio na vlastite projekte.

Bilo je također teško ostati motiviran, jer sam radio na stvarima koje mi se nisu činile relevantnima.

Htjela sam naučiti struganje s weba. Ali umjesto toga, mučio sam se s razumijevanjem video predavanja o konceptu objektno orijentiranog programiranja (OOP). Kakve je veze sve ovo imalo s mojim ciljevima? Nisam bio siguran, a to je olakšalo prekid. Opet.

Zašto nisam uspio

Retrospektivno, nije preteško shvatiti zašto nisam uspio. Prvi put su moje velike pogreške bile:

  1. Nemajući jasan cilj . Zašto sam učio Python? Zapravo nisam znala. Zbog toga je zaista lako napustiti kad se krene teško - što će uvijek i biti, prije ili kasnije.
  2. Previše izazova unaprijed . Prije ili kasnije, morao bih smisliti kako Python uvesti u svoj sustav, ali postavljajući ovo s nula relevantnih iskustava, prije nego što bih napisao koliko je to print(‘Hello world!’)bio recept za frustraciju i neuspjeh.

Kada učite nešto izazovno, pogotovo kao totalni početnik, trebaju vam rane pobjede koje će vam pomoći da vjerujete da to stvarno možete.

Počevši s frustrirajućim izazovom koji nije uključivao ni kodiranje, osiguralo mi se da ih nisam motivirao i potvrdio rane pobjede.

Drugi put sam izbjegao te pogreške, ali umjesto toga napravio sam neke nove:

  1. Nisam učio radeći. Gledajući videozapise i prolazeći kvizove osjećao sam se kao da znam kodirati, ali zapravo nisam kodirao. Kad sam pokušao (i nisam uspio) napisati kod, to me još više frustriralo jer sam mislio da sam ga već razumio. I zato što sam morao gomilu klikati u svakom videozapisu da bih ponovno gledao različite odjeljke i učio stvari.
  2. Imao sam jasan cilj, ali ne i jasan put prema njemu. Znao sam da se želim baviti podatkovnim novinarstvom i struganjem weba, ali pohađao sam generički početni tečaj Pythona. To je značilo da učim lekcije koje su mogle biti ključne za razvoj softvera, ali nisu bile toliko relevantne za podatkovno novinarstvo. Često mi je bilo teško povezati osnove koje sam učio na nastavi s onim što sam zapravo želio raditi s kodom.

Kroz sve to činio sam i još jednu veliku mentalnu pogrešku. Razmišljao sam o učenju Pythona u vrlo crno-bijelim uvjetima. Ili sam "naučio Python" - cijeli Python - ili nisam.

To je perspektivu učenja zaista zastrašivalo. Kad god bih naišao na izazov, pogoršavalo me to što sam razmišljao o nekom mitskom Pythonovom „cilju“ koji je još uvijek bio jako, jako daleko.

To je naravno pogrešno. Poput govornog jezika, i Python (i drugi programski jezici) nisu nešto što zapravo i dovršite . I poput govornog jezika, zapravo ne trebate tečno govoriti Python da biste to učinili.

Kao što će vam reći bilo koji student prve godine razmjene, samo pitanje "Koliko je ovo?" i "Gdje je kupaonica?" na lokalnom jeziku može stvarno utjecati na vašu kvalitetu života.

Isto vrijedi i za Python. Ne trebate znati sve - ili čak sve toliko, nužno - da biste stvarno promijenili svoj život.

Ali to je lekcija koju sam naučio samo slučajno.

Kako sam zapravo naučio (neki) Python

Do 2018. godine odustao sam od učenja Pythona. Dva puta sam pokušao i dva puta nisam uspio! Ali onda sam primljen u tvrtku Dataquest, tvrtku koja podučava vještine znanosti podataka - uključujući Python programiranje - na mreži.

Moj novi posao nije zahtijevao nikakvu vještinu kodiranja, ali zaključio sam da još uvijek moram isprobati platformu za učenje. Morao sam razumjeti naš proizvod i ono što su osjećali naši učenici. Možda bih, pomislio sam, mogao čak naučiti dovoljno da napravim neko struganje po mreži, kao što sam planirao prije.

Dakle, s malo treme, stvorio sam račun i započeo naš tečaj za Python za Data Science.

Na moje iznenađenje, osjećao sam se zabavno i lako. I na moje veće iznenađenje, uopće nije trebalo dugo prije nego što sam se osjećao kao da bih mogao samostalno graditi neke projekte.

Napisao sam mali skript za razvrstavanje e-mailova. Koristio sam Python za brzu analizu nekih podataka ankete. I, u naletima i počecima, izgradio sam veliki projekt struganja i analize weba o kojem sam sanjao još dok sam bio novinar.

Zapravo sam koristio - i još uvijek koristim - Python kako bih olakšao svoj posao i poboljšao svoj život. Nekoliko godina kasnije, još uvijek sam programer za početnike, ali mogu kombinirati male skripte kako bih olakšao stvari i riješio probleme analize podataka koje imam na poslu koristeći Python.

To se dogodilo jer sam, više slučajno nego dizajnirano, naišao na način učenja Pythona koji je izbjegao gotovo sve pogreške koje sam počinio svojim ranijim naporima:

  • Ušao sam s jasnim ciljem - naučiti dovoljno Pythona da bih mogao malo raditi s podacima kako bih mogao bolje razumjeti naše kupce.
  • U potpunosti sam izbjegao izazov instaliranja Pythona jer Dataquest omogućuje učenje i pisanje koda izravno u prozoru preglednika.
  • Učio sam kodirati zapravo kodirajući, a ne gledajući tuđi kôd.
  • Učio sam na putu koji je posebno dizajniran za Python rad podataka, pa se sve ono što sam učio i svaka vježba koju sam radio osjećao relevantnim.
  • Samo sam pokušavao naučiti što mi treba, a ne cijeli Python.

Kako olakšati učenje Pythona

Osvrćući se na svoje pogreške, a zatim i na slučajni uspjeh, mislim da se to svodi na nekoliko jednostavnih poteza:

Prvo, uđite s ciljem. Zašto želite naučiti Python? Što, konkretno, želite graditi s tim? Ako nemate dobar odgovor na ovo pitanje, bit će stvarno teško ostati motiviran.

Drugo, pronađite način za učenje radeći ono što zapravo želite. Ako možete pronaći ciljani resurs za učenje, poput platforme koja uči Python posebno za razvoj igara, to je sjajno. Ali općeniti resursi za učenje mogu funkcionirati previše dok primjenjujete ono što naučite s nekim početnim Python projektima dok učite.

Vaše učenje kodiranja mora uključivati ​​zapravo pisanje koda, a to mora biti zapravo pisanje koda koji čini nešto što vas zanima.

Treće, izbjegavajte glavni izazov postavljanja Pythona i njegovih različitih knjižnica na vaš lokalni sustav.

Sada postoji mnoštvo mrežnih platformi koje vam omogućuju pisanje i pokretanje koda u web pregledniku ili kôd možete pisati i pokretati u bilježnicu na Google Colabu ili sličnoj platformi. Samo pokušajte sebi olakšati početak rada. Kasnije se možete brinuti o lokalnoj postavci.

Četvrto, ne pokušavajte "naučiti Python". To je ogroman dugoročni cilj koji je nedvojbeno nekako nedostižan - čak i najbolji Pythonovi programeri ne znaju doslovno sve o tome.

Umjesto toga, pokušajte naučiti kako koristiti Python za izgradnju jednostavne verzije vašeg ciljnog projekta ili jednog dijela tog projekta. Zatim naučite kako pomoću Pythona povećati taj projekt ili kako prijeći na sljedeći korak.

Razdvojite velike zadatke na manje dijelove i usmjerite svoje ciljeve na izgradnju nečega tako da dobijete psihološku nagradu da ste nešto izgradili kad ga dovršite.

Slijedite ove smjernice bez obzira na vaš osobni razlog za učenje Pythona i ne sumnjam da ćete uspjeti postići svoje ciljeve, a da pritom ne morate dva puta uspjeti i prestati!