Den beste måten å lære Python

Python er mer populært enn noensinne, og brukes overalt fra back-end webservere, til front-end spillutvikling, og alt i mellom. Python er et sant allment språk og blir raskt et må-ha-verktøy i arsenalet av noen selvrespektive programmerer.

Men Python er ikke populært bare fordi det er populært. Det er lett å lære, leser som pseudokode, og er ugudelig smidig. Men å lære noe nytt språk kan være en skremmende oppgave, og å finne de riktige stedene og folkene som skal lære av, er halv kampen. Det er her denne veiledningen kan hjelpe. Dette er ditt blåkopi for å gjøre Python enkelt, morsomt og givende å lære.

Ser etter en snarvei?

Denne artikkelen byr på mange ressurser, men hvis du foretrekker noe mer strukturert, gir Envatos Introduksjon til Python-kurs deg et omfattende sett med video-leksjoner som får deg raskt opp til hastighet med Python for bare $ 5.

Oppgave 1: Start med det grunnleggende

På dette tidspunktet er det to hovedversjoner av Python i omløp: Python 2.7 og Python 3.2. Som du velger å lære, spiller ingen rolle for mye, da forskjellene vil være minimal-spesielt til en nybegynner. Men du bør vite at, mens Python 2 har langt, langt mer tredjepartsstøtte, er Python 3 det primære fokuset på utviklerne som designer språket. Valget er ditt, men hvis koden din virker annerledes enn noen veiledning, må du sørge for at du bruker den samme Python-versjonen som brukes i opplæringen.

Wikibooks 'Non-Programmers Tutorial for Python

Wikibooks er alltid en god kilde til å lære noe nytt, og Python er ikke noe unntak. Her finner du en solid og tilnærmet serie guider som lærer deg Pythons tov. Det blir ikke for teknisk, og du kan hoppe inn i koding noe noe nyttig og givende ganske raskt. På grunn av dette anbefaler jeg dette nettstedet som det beste stedet å starte på Python-reisen.

Den offisielle Python-opplæringen

Du finner ikke en bedre informasjonskilde enn den offisielle python.org-dokumentasjonen. Men hvis du vil hoppe rett inn, så er det sikkert mange av dere vil, dette er kanskje ikke det beste stedet å starte.

Innholdet har en tendens til å være mer teknisk enn wikibooks, noe som vil være nyttig senere når du utvikler seg gjennom språket. Men for en nybegynner kan det bare komme i veien for det som egentlig er et veldig enkelt og vakkert språk.

For nybegynnere vil den største forskjellen mellom Python 2 og Python 3 mest sannsynlig være at Python 2 kan bruke skrive ut uten parenteser. Python 3 krever parentes, men det er alt.

Oppgave 2: Tutorials og Screencasts

TheNewBostons Python Programmering Tutorials

TheNewBostons spillelister er alltid gode, og du kan lære en hel rekke språk. 'Bucky' er en flott instruktør fordi han slår en virkelig god balanse mellom å være morsom og samtidig lette å lytte. Jeg anbefaler på det sterkeste noen av hans spillelister - spesielt hans Python-spilleliste. Han antar null forkunnskaper om programmering og vil gi deg en fast forståelse av språket.

Nettuts + Python fra grunnen

Litt nærmere hjemme er Giles Lavelles intro til Python. Som TheNewBostons serie antar Lavelle også null tidligere programmeringserfaring.

Hvis du vil se noen virkelige applikasjoner av programmene dine, eller ønsker å sikte mot webutvikling med Python, kan denne serien være den for deg.

Screencast tar deg fra ingenting for å bygge en dynamisk nettside ved hjelp av et Python web rammeverk kalt Django.

ShowMeDo er Python Screencasts

StackOverflow er ikke bare full av "newbie" feil og problemer.

ShowMeDo har en stor katalog over Python-relaterte videoer. Selv om det kanskje ikke er den mest brukervennlige opplevelsen rundt, varierer videoene i nivå fra absolutt nybegynner til de mest avanserte Python-teknikkene. Det er vel verdt å sjekke ut.

Bygg en Python Bot som kan spille webspill

Denne opplæringen er ganske spesifikk når det gjelder hva du skal lære, og jeg anbefaler ikke det for en komplett nybegynner. Jeg føler imidlertid at det er verdt å nevne. I denne veiledningen viser Chris Kiehl deg hvordan du bygger en veldig interessant Python bot som vil spille et enkelt spill for deg. Opplæringen går virkelig for å vise kraften til Python; det kan brukes til å gjøre hverdagens gjentatte oppgaver som du måtte ha på datamaskinen din.

Oppgave 3: Gratis e-bøker!

Det er vanskelig å slå en god bok når du prøver å lære noe nytt, og med det store samfunnet som har utviklet seg rundt Python-språket, er det en mengde gratis e-bøker av høy kvalitet å velge mellom. Nedenfor er en rask liste over noen av de beste. Du kan laste ned en gratis e-bok-versjon for hver av dem, eller du kan velge å kjøpe den fysiske boken (eller donere) hvis du vil støtte forfatteren, som jeg er sikker på at de vil sette stor pris på.

Lær python på den harde måten

Til tross for navnet, lærer Python The Hard Way å lære Python utrolig enkelt - måten det er ment å være! I denne boken fungerer Zed A. Shaw fra grunnen og gir deg en detaljert og omfattende guide til Python uten å komme i veien for selve kodingen. Shaw er uformell, men grundig, noe som gjør boken en enkel, men givende lese.

Tenk Python: Hvordan tenke som en datamaskinforsker

Du finner ikke en bedre informasjonskilde enn den offisielle python.org-dokumentasjonen.

Som under tittelen kan tyde på, "Thinking like a computer scientist", fortsetter Think Python litt mer mot den teoretiske siden av tingene. Dette kan vise seg å være litt frustrerende for en total nybegynner, men boka er vel verdt å lese med hensyn til algoritmen teori og høyt nivå konsepter.

Oppfinne seg med python

Hvis 'learning by doing' er din ting, vil det være en givende opplevelse å bygge ditt eget spill! I denne boken antar Al Sweigart ingen forkunnskaper om Python og tar deg hele veien til å bygge ditt eget spill. Gitt at boka er rettet mot spillutvikling, kan boken bevege seg litt raskt for en total nybegynner. Senere i denne artikkelen nevner jeg en lignende bok av hans hvor han antar en forkunnskap om Python. Hvis du føler at du har en god forståelse for språket, kan hans andre bok være en bedre ressurs for deg.

Django-boken

Hvis du vil lære Python for webutvikling, vil du sannsynligvis bruke Django-rammen. Denne boken antar flyt i Python, men det lærer Django som om du er en nybegynner til rammen. Django-boken er så god som de kommer, og vil være uvurderlig for enhver spirende webutvikler.

Python Books

Hvis du ikke har nok til å lese enda, eller vil ha en bok om et bestemt emne, bør du følge denne linken. Folkene på python.org har fulgt en omfattende liste over bøker, sortert etter vanskeligheter og emne.

Oppgave 4: Bli kjent med StackOverflow

Tusenvis av utviklere har opplevd hvert problem som du er bundet til å møte. StackOverflow er en stor ressurs hvor utviklere finner løsninger på sine problemer. Når du oppstår ved en feil om at du ikke er sikker på hvordan du skal fikse, søk StackOverflow. Du vil mer enn sannsynlig finne en løsning og hvordan andre mennesker løste problemet deres.

Men StackOverflow er ikke bare full av "newbie" feil og problemer; Det er noen veldig kloge og hjelpsomme mennesker som bruker nettstedet - lære av dem!

Ta en titt på de skjulte funksjonene til Python-tråden, for eksempel.

Mange av de tipsene og triksene du ser her, kan ikke dekkes av mange formelle opplæringsprogrammer, men de vil være svært nyttige for mellomliggende til avanserte Python-brukere.

Oppgave 5: Prosjekt Euler

Prosjekt Euler (uttalt "Olje-er", for å redde deg litt forlegenhet senere) er et av mine favorittwebsteder. Etter å ha opprettet en konto, kan du jobbe gjennom ~ 400 problemer på nettsiden. Hvert problem er omtrent 50% matematikk og 50% programmering, og etter min mening er den mest givende måten å lære mer av enten emne.

Problemene starter lett å teste din kunnskap om språket, men vokser i vanskeligheter for å utfordre selv de mest erfarne programmene. Til slutt vil vanskeligheten av problemene tvinge deg til å finne den mest effektive algoritmen - det vil si hvis du ikke vil vente timer for å beregne svaret.

Ingenting vil gjøre deg til en programmeringsveiviser raskere enn å presse deg selv for de raskeste og mest effektive løsningene på Project Euler-problemene.

Når du knekker et nytt problem, får du tilgang til det problemets forumtråd hvor mange mennesker diskuterer deres løsninger og ideer med hverandre. Mange av løsningene i senere sider av tråden vil være i Python. Dette er virkelig nøkkelen til å øke programmeringsevnen din. Hvis det er noen med en løsning som er raskere enn din, ta deg tid til å analysere den for å se hvor du kan forbedre din egen løsning. Over tid vil du plukke opp alle triksene i handelen og øke din Python-kunnskap på en meningsfull og givende måte..

I tillegg er det også noen veldig gode blogger som jobber gjennom prosjektet Euler-problemene i Python. Hvis du sitter fast på et problem, er det ikke noe skam at du har en sneak-topp i andre utviklers arbeid, så lenge du har tenkt å lære av det. Her er to av min favoritt:

  • Dreamshire
  • Mycila

Oppgave 6: Bygg et spill

Få ting er mer tilfredsstillende enn å bygge ditt eget spill.

Få ting er mer tilfredsstillende enn å bygge ditt eget spill. Det kan være en bratt læringskurve, men vel verdt det og veldig givende. PyGame er det mest kjente spillbiblioteket for Python, og du vil kunne finne mange gratis opplæringsprogrammer på den. Her er noen av de beste PyGame-opplæringene. 

Offisiell PyGame-dokumentasjon

Som i tilfelle av den opprinnelige Python-opplæringen, har utviklerne av PyGame også sin egen intro dokumentasjon. Men disse kan være altfor tekniske hvis du vil hoppe rett inn og begynne å bygge spillet ditt. Utviklerdokumentasjon vil imidlertid alltid være din beste kilde til informasjon; så jeg anbefaler fortsatt at du blir kjent med nettstedet.

Invent Med Python (Med PyGame)

Denne gratis e-boken fra Al Sweigart går gjennom PyGame-biblioteket, og tar deg fra null kunnskap til å bygge et par spill for deg selv. De enkle spillene gir deg en perfekt plattform for å starte dine egne prosjekter, hvis du er så tilbøyelig. Sweigart gir omfattende og detaljerte kommentarer gjennom hele koden for å hjelpe deg med å lære deg som du skal.

TheNewBoston's Computer Game Development Tutorial

Dette er en annen spilleliste fra TheNewBoston. Det tjener godt som et intro til PyGame. Det antar null kunnskap og gir deg en god følelse for PyGame biblioteket, men i motsetning til InventWithPython guide, er det mer til poenget og vil ikke bringe deg til å lage ditt eget fullspill.

Oppgave 7: Bli kjent med noen vanlige biblioteker og verktøy

Python er et generelt språk som kan gjøre nesten alt; så det er selvfølgelig en tilsynelatende endeløs tilgang til biblioteker og verktøy der ute. Her er noen av de mest populære.

PYPY

Hvis du noen gang vil skrape en HTML for litt informasjon ... BeautifulSoup vil gjøre alt dette for deg og legge år til livet ditt.

Hvis du gjør noe CPU-intensivt arbeid, og du finner at Python viser seg å være en flaskehals, så trenger du kanskje PyPy. PyPy er en alternativ kompilator for Python som virkelig kan øke hastigheten på behandlingen.

NumPy + SciPy

Disse to går vanligvis hånd i hånd (SciPy er avhengig NumPy). Hvis du gjør noe seriøst nummer som knuser for matematisk eller vitenskapelig forskning, vil disse to bibliotekene være dine beste venner. NumPy og SciPy utvider de matematiske funksjonene og egenskapene til Python og kan i stor grad øke hastigheten på noen av oppgavene dine.

BeautifulSoup

BeautifulSoup er virkelig vakker. Hvis du trenger å skrape en HTML-side for litt informasjon, vet du alt for godt frustrasjonen og håravfallet som det kan medføre. BeautifulSoup vil gjøre alt dette for deg og legge år til livet ditt. Sterkt anbefalt og morsomt å leke med.

Python Image Library

Python Image Library (PIL) er et omfattende bibliotek som er flott for alt å gjøre med bilder. Hvis du trenger å manipulere et bilde, er det sjansen for at PIL kan gjøre det for deg.

Django

Som nevnt tidligere i artikkelen, er Django-rammeverket det du sannsynligvis vil bruke hvis målet ditt er webutvikling. Det er det vanligste nettverket for Python, og har også de fleste læringsressurser.

Oppgave 8: Bli involvert i Open Source-prosjekter

Etter at du har en grei forståelse av språket, er det alltid en viktig ferdighet å kunne lese og forstå andre menneskers kode, for ikke å nevne at det er en veldig fin måte å lære også.

Av denne grunn er åpne kildeprosjekter stor. Github eller Bitbucket er å gå til steder for dette. Ikke bekymre deg for folk som dømmer koden din, du trenger ikke å bidra med det samme. Du er alltid fri til å gaffel et prosjekt, tinker med det selv, og se hvordan ting fungerer. Hvis du kommer til å se noe du tror kan forbedres, flott! Gå for det og send inn forbedringen din. Det er det som åpen kildekode er for.

  • BitBucket
  • GitHub
  • Git Essentials (Screencast Course)

Konklusjon

Jeg håper jeg har kunnet gi en solid base av Python kunnskap for deg. Hvis det er andre interessepunkter som du mener burde ha vært inkludert i denne pensum, gi meg beskjed i kommentarene nedenfor for å hjelpe andre ut!