5 grymma Python-resurser för nybörjaren
Text skriven av Sandra Svensson.
Python är språket för nybörjaren. Här börjar du.
Python kan användas för en mängd olika uppgifter, stora som små. Med Python kan du bygga spel, skapa program som hämtar information från webbsidor (så kallad webbscraping), eller skapa en kattdetektor (tillsammans med microdatorn Raspberry Pi). Python används också i webbutveckling – bland annat Pinterest, The Guardian och Instagram är byggda med Python som grund. Men innan du kommer så långt måste du förstås lära dig språket. Här är fem ställen att börja på.
1. Coursera – Python for Everybody
På Coursera hittar du en mängd olika onlinekurser från universitet som till exempel Princeton, Stanford och University of Michigan. Den sistnämnda institutionen håller i ”Python for Everybody”, fem videobaserade kurser ledda av den superpopulära läraren Dr. Charles Severance (känd som ”Dr Chuck” bland sina elever). Kursen går igenom allt ifrån grunderna i Python, till hur man skriver enkla webcrawlers och webscraping-program med samma språk. Kunskapstester, kluriga inlämningsuppgifter och en tillhörande kursbok ingår också. Allt är gratis så länge man inte vill ha kurscertifikat, förutom den sista delen, kursens ”Capstone”. Första kursen i serien är Programming for Everybody.
Fördelar: Du lär dig programmera. Kursen guidar dig i hur du installerar Python och hur du sätter upp en utvecklingsmiljö. Du kommer att lära dig grundkoncept inom programmering och även få bygga program själv. Dessutom får du lära dig lite internethistoria!
Nackdelar: Gillar du inte videobaserade kurser så kanske det här inte är något för dig. Å andra sidan så gillade inte jag videobaserade kurser innan jag råkade på denna och insåg hur pedagogiskt formatet kan vara när det används rätt.
Codecademy sägs ofta vara en bra sida för nybörjare. Deras Python-spår fungerar lite som Codecademy verkar göra i övrigt – man slängs in i språket och får lära sig genom att lösa enklare uppgifter direkt i webbläsaren. I början får man en lättsam, rolig introduktion till språket – sedan ökar svårighetsgraden.
Fördelar: Du får snabbt en känsla för programmeringsspråket, utan att du behöver installera en massa program först. Ett enkelt sätt att testa på Python, kanske för att sedan jämföra med något annat språk som sidan erbjuder.
Nackdelar: Du får inte testa på att programmera ”på riktigt”. Det kan vara svårt att förstå vad du egentligen kan använda Python till, när du bara skrivit Python-kod i browsern. Kursen ger heller ingen djupare förståelse för språket eller för programmering i allmänhet, något som märks när problemen är svårare och man inte har en aning om hur man ska lösa dem då man inte fått lära sig ”tänka som en programmerare”.
3. Learn Python The Hard Way
Första ”boken” på listan! Learn Python The Hard Way säger sig vara skapad för den som vet absolut NADA om programmering. Boken bygger till stor del på att man ska lära sig genom att koda, koda, koda och sedan koda lite till. ”The Hard Way” handlar alltså inte om svårighetsgraden, utan om att man verkligen nöter in kunskaperna genom många timmars kodknackande.
Fördelar: Precis som i Coursera-kursen så kommer du att lära dig sätta upp en utvecklarmiljö och sedan koda i den. Kursen inkluderar också en sjukt bra ”Crash Course” till Terminalen/Kommandopromptern, något du kommer ha nytta av i resten av ditt hackerliv. Du kommer också att skriva många rader Python-kod, vilket kan vara ett bra sätt att få syntaxen att fastna i skallen.
Nackdelar: Det var det där om The Hard Way. Att nöta in kod genom att om och om igen skriva av exempel från en bok är knappast en lärostil som passar alla. Vissa recensioner på Amazon.com menar också att det saknas djupare förklaringar av vissa moment och att boken alltför ofta säger ”om du vill veta mer, googla”.
4. Think Python – How to Think Like a Computer Scientist
Andra ”boken” på listan! Think Python är riktad till såväl nybörjare som till personer med förkunskaper i programmering. Den går in på djupet i språket och i grundkoncept inom programmering – den ämnar ju lära ut hur man ska tänka som en Computer Scientist! Utöver en grym teoribas så inkluderar boken flera övningar att sätta tänderna i, debugging-exempel, ordlistor och annat matnyttigt.
Fördelar: Du lär dig förstå programmering på riktigt och får gedigna kunskaper i hur Python fungerar. Jag har hört flera personer namnge denna bok som det som fick dem att lära sig Python, istället för att bara lära sig några rader kod. (Som att lära sig spanska, tänker jag, istället för att bara lära sig hur man säger ”una cerveza por favor”.)
Nackdelar: Det här är INTE en bok för den som vill ”lära sig Python på 30 dagar” (om nu det ens är möjligt eller eftersträvansvärt att göra det). Det här är en bok för den som vill bli utvecklare på riktigt. Den ger gedigna kunskaper, men kräver samtidigt en del förkunskaper. Jag fastnade på matten ganska snart – här krävs det att man har bra koll på just matematiken för att ta sig igenom övningarna.
5. Automate the Boring Stuff With Python
Tredje ”boken” på listan! Den här inleds med orden ”Everyone should learn to code, but not everyone needs to become a software engineer or computer scientist.” Automate the Boring Stuff riktar sig till den som vill lära sig att göra specifika grejer med Python. Till exempel byta namn på en massa filer i en mapp, gå igenom tusen Excel-rader för att hitta några specifika fält som ska uppdateras eller kopiera data från en mängd PDF-filer. Inga förkunskaper behövs.
Fördelar: Utöver att du får lära dig grundläggande byggstenar i Python, så får du också direkt använda dem till att bygga användbara verktyg. Många kurser lär ut programmeringsspråk med exempelövningar som kanske är svåra att förstå vitsen med (”varför ska jag skriva ett program som räknar ut vinkeln av en viss triangel?”, här ges istället exempel som man direkt kan ha nytta av.
Nackdelar: Jag har själv inte använt mig av den här boken, så jag försökte leta upp några mindre positiva recensioner av den för att ge en mer balanserad bild. Men det verkar knappt finnas några? De få som jag har sett tycker att den ger en för ytlig introduktion till Python och att IRL-varianten av boken är för dåligt bunden.