Hvis du vil lære datalogi, skal du starte med en af ​​disse programmeringsklasser

For et år siden var jeg en numerisk nørd uden kodende baggrund. Efter at have prøvet et online programmeringskursus blev jeg så inspireret, at jeg tilmeldte mig et af de bedste datalogiprogrammer i Canada.

To uger senere indså jeg, at jeg i stedet kunne lære alt hvad jeg havde brug for via edX, Coursera og Udacity. Så jeg faldt ud.

Beslutningen var ikke vanskelig. Jeg kunne lære det indhold, jeg ønskede hurtigere, mere effektivt og for en brøkdel af prisen.

Jeg havde allerede en universitetsgrad, og måske endnu vigtigere, jeg havde allerede universitetserfaringen. At betale $ 30K + for at gå tilbage til skolen syntes uansvarligt.

Jeg begyndte at oprette min egen datavidenskabsuddannelse ved hjælp af online kurser kort tid efter, efter at jeg var klar over, at det var en bedre pasform for mig end datalogi. Jeg gennemsøgte introduktionen til programmeringslandskab. Jeg har allerede taget flere kurser og revideret dele af mange andre. Jeg kender mulighederne, og hvilke færdigheder der er behov for, hvis du målretter mod en dataanalytiker eller dataforskerrolle.

Til denne vejledning brugte jeg 20+ timer på at finde hver eneste online introduktion til programmeringskursus, der blev tilbudt fra august 2016, udtrække vigtige informationsbits fra deres pensum og anmeldelser og udarbejde deres ratings. Til denne opgave henvendte jeg mig til ingen ringere end open source Class Central-samfundet og dets database med tusindvis af kursusbedømmelser og anmeldelser.

Siden 2011 har Class Central-grundlægger Dhawal Shah holdt øje med onlinekurser end uden tvivl nogen andre i verden. Dhawal hjalp mig personligt med at samle denne liste over ressourcer.

Hvordan vi valgte kurser til at overveje

Hvert kursus skulle passe til fire kriterier:

  • Det introducerer programmering og eventuelt datalogi . Se "En note om programmering vs. datalogi" nedenfor.
  • Undervisningssproget er Python eller R. Disse er langt de to mest populære programmeringssprog, der bruges i datavidenskab.
  • Det skal være et interaktivt onlinekursus, så ingen bøger eller tekstbaserede selvstudier. Med hensyn til sidstnævnte ville Codecademys videoløse og teksteditorbaserede kurser kvalificere sig, men strenge tekstvejledninger som dem fra R-tutorial ville ikke. Selvom bøger er levedygtige måder at lære programmering, Python og R på, fokuserer denne guide på kurser.
  • Det skal være en anstændig længde: mindst ti timer i alt til estimeret afslutning.

Hvordan vi vurderede kurser

Vi mener, at vi dækkede alle bemærkelsesværdige kurser, der findes, og som passer til ovenstående kriterier. Da der tilsyneladende er hundredvis af kurser om Udemy i Python og R, valgte vi kun at overveje de mest gennemgåede og bedst bedømte. Der er dog en chance for, at vi savnede noget. Giv os besked, hvis du synes, det er tilfældet.

Vi har samlet gennemsnittet og antallet af anmeldelser fra Class Central og andre anmeldelsessider. Vi beregnede en vægtet gennemsnitlig vurdering for hvert kursus. Hvis en serie havde flere kurser (som Rice Universitys del 1 og del 2), beregnede vi den vægtede gennemsnitlige vurdering på tværs af alle kurser. Vi læste også tekstanmeldelser og brugte denne feedback til at supplere de numeriske vurderinger.

Vi foretog subjektive pensumopkald baseret på tre faktorer:

  1. Dækning af grundlæggende programmering.
  2. Dækning af mere avancerede, men nyttige emner i programmering. (F.eks. Vælger flere kurser ikke at dække objektorienteret programmering. Vi mener, at dette er et nøgleemne, men ikke en deal-breaker, hvorfor disse kurser kun er forankrede mærker og ikke udelukket fra overvejelse.)
  3. Hvor meget af pensum er relevant for datalogi?

En note om programmering vs. datalogi

Programmering er ikke datalogi og omvendt. Der er en forskel, som begyndere måske ikke er opmærksomme på. Låne dette svar fra programmører Stack Exchange:

Datalogi er studiet af, hvad computere [kan] gøre; programmering er den praksis at få computere til at gøre ting.

Kurset vi leder efter introducerer programmering og berører eventuelt relevante aspekter af datalogi, der vil være til gavn for en ny programmør med hensyn til bevidsthed. Mange af de overvejede kurser, som du bemærker, har faktisk en datalogisk del.

Ingen af ​​kurserne er dog strengt datalogiske kurser, hvorfor noget som Harvards CS50x på edX er udelukket.

Vores valg af det bedste programmeringskursus for dataforskere er ...

University of Toronto's "Lær at programmere" -serien om Coursera. LTP1: The Fundamentals og LTP2: Crafting Quality Code har en næsten perfekt vægtet gennemsnitlig vurdering på 4,71 ud af 5 stjerner over 284 anmeldelser. De har også en god blanding af indholdsvanskeligheder og omfang for nybegyndere data videnskabsmand.

Denne gratis, Python-baserede introduktion til programmering adskiller sig fra de andre 20+ kurser, vi overvejede.

Jennifer Campbell og Paul Gries, to lektorer i University of Toronto's afdeling for datalogi (som betragtes som en af ​​de bedste i verden) underviser i serien. De selvstændige Coursera-kurser matcher materialet i deres bog "Praktisk programmering: En introduktion til datalogi ved hjælp af Python 3." LTP1 dækker 40–50% af bogen, og LTP2 dækker yderligere 40%. De 10-20%, der ikke er dækket, er ikke særlig nyttige til datavidenskab, hvilket hjalp deres sag med at være vores valg.

Professorerne sendte mig venligst og straks detaljerede kursusplaner efter anmodning, som det var vanskeligt at finde online inden kursets officielle genstart i september 2016.

Lær at programmere: de grundlæggende (LTP1)

Tidslinje: 7 uger

Anslået tidsforpligtelse: 6-8 timer om ugen

Dette kursus giver en introduktion til computerprogrammering beregnet til personer uden programmeringserfaring. Det dækker det grundlæggende ved programmering i Python inklusive elementære datatyper (numeriske typer, strenge, lister, ordbøger og filer), kontrolflow, funktioner, objekter, metoder, felter og mutabilitet.

Moduler

  1. Installation af Python, IDLE, matematiske udtryk, variabler, tildelingserklæring, opkald og definerende funktioner, syntaks og semantiske fejl.
  2. Strenge, input / output, genbrug af funktioner, funktionsdesignopskrift og docstrings.
  3. Booleanere, import, navneområder og if-udsagn.
  4. Til sløjfer og fancy strengmanipulation.
  5. Mens sløjfer, lister og mutabilitet.
  6. Til sløjfer over indekser, parallelle lister og strenge og filer.
  7. Tuples og ordbøger.

Lær at programmere: Crafting Quality Code (LTP2)

Tidslinje: 5 uger

Anslået tidsforpligtelse: 6-8 timer om ugen

Du kender de grundlæggende programmering i Python: elementære datatyper (numeriske typer, strenge, lister, ordbøger og filer), kontrolflow, funktioner, objekter, metoder, felter og mutabilitet. Du skal være god til disse for at få succes på dette kursus.

LTP: Crafting Quality Code dækker de næste trin: at designe større programmer, teste din kode, så du ved, at den fungerer, læse kode for at forstå, hvor effektiv den er, og oprette dine egne typer.

Moduler

  1. Design af algoritmer: hvordan beslutter du, hvad du skal gøre i en funktionsorgan? Hvordan finder du ud af, hvilke funktioner der skal skrives i første omgang?
  2. Automatiseret test: doctest og unittest.
  3. Analysering af kode til hastighed - detaljer om søgning og sortering.
  4. Oprettelse af nye typer: klasser i Python.
  5. Fungerer som argumenter, standardparameterværdier og undtagelser.

Lektor Gries fremsatte også følgende kommentar til kursusstrukturen: ”Hvert modul har mellem ca. 45 minutter og lidt mere end en times video. Der er quizspørgsmål i video, som måske bringer den samlede tid til at studere videoerne på måske 2 timer. ”

Disse videoer er normalt kortere end ti minutter hver.

Han fortsatte: ”Derudover har vi en øvelse (et dusin eller to eller flere multiple choice-spørgsmål og korte svar-spørgsmål) pr. Modul, som skal tage en time eller to. Der er tre programmeringsopgaver i LTP1, som hver kan tage fire til otte timers arbejde. Der er to programmeringsopgaver i LTP2 af samme størrelse. ”

Han understregede, at estimatet på 6-8 timer om ugen er et groft gæt: ”Det er utroligt studentafhængigt at estimere brugt tid, så tag mine skøn i den sammenhæng. For eksempel kan en, der kender lidt programmering, måske på et andet programmeringssprog, tage halvdelen af ​​tiden for en helt ny programmering. Nogle gange sætter nogen sig fast i et koncept i et par timer, mens de måske briser igennem på andre koncepter ... Det er en af ​​grundene til, at det tempofyldte format er så tiltalende for os. ”

I alt kører University of Torontos serie Lær at programmere 12 uger på 6-8 timer om ugen, hvilket er omtrent standard for de fleste online kurser oprettet af universiteter. Hvis du foretrækker at binge-studere dine MOOC'er, er det 72–96 timer, som muligvis kunne afsluttes om to til tre uger, især hvis du har lidt programmeringserfaring.

En anden god Python-mulighed

Hvis du allerede har en vis fortrolighed med programmering og ikke har noget imod en pensum, der har en bemærkelsesværdig skævhed mod spil og interaktive applikationer, vil jeg også anbefale Rice University's En introduktion til interaktiv programmering i Python (del 1 og del 2) på Coursera.

Med mere end 6.000 anmeldelser og den højeste vægtede gennemsnitlige bedømmelse på 4,93 / 5 stjerner er dette populære kursus kendt for sine engagerende videoer, udfordrende quizzer og behagelige miniprojekter. Det er lidt sværere og fokuserer mindre på det grundlæggende og mere på emner, der ikke er anvendelige i datalogi end vores # 1-valg.

Disse kurser er også en del af de 7 kursusprincipper i computerspecialisering på Coursera.

Materialerne er i tempo og gratis, og et betalt certifikat er tilgængeligt. Kurset skal købes for $ 79 (USD) for adgang til klassificerede materialer.

Den sammenfattede kursusbeskrivelse og den fulde pensum er som følger:

“Dette to-delte kursus er designet til at hjælpe studerende med meget lidt eller ingen computerbaggrund med at lære det grundlæggende ved at opbygge enkle interaktive applikationer ... For at gøre det lettere at lære Python har vi udviklet et nyt browserbaseret programmeringsmiljø, der gør det muligt at udvikle interaktive applikationer i Python enkel. Disse applikationer involverer vinduer, hvis indhold er grafisk og reagerer på knapper, tastatur og mus.

Anbefalet baggrund: Kendskab til gymnasies matematik er påkrævet. Mens klassen er designet til studerende uden forudgående programmeringserfaring, har nogle begyndende programmerere betragtet klassen som en tempofyldt tempo . For studerende, der er interesseret i noget let forberedelse inden undervisningsstart, anbefaler vi et selvstændigt tempo i Python-læringssiden som codecademy.com. ”

Del 1

Tidslinje: 5 uger

Anslået tidsforpligtelse: 7-10 timer om ugen

Uge 0 - udsagn, udtryk, variabler

Forstå strukturen i denne klasse, og udforsk Python som en lommeregner.

Uge 1 - funktioner, logik, betingelser

Lær de grundlæggende konstruktioner af Python-programmering, og opret et program, der spiller en variant af Rock-Paper-Scissors.

Uge 2 - begivenhedsdrevet programmering, lokale / globale variabler

Lær det grundlæggende i begivenhedsdrevet programmering, forstå forskellen mellem lokale og globale variabler, og opret et interaktivt program, der spiller et simpelt gæt spil.

Uge 3 - lærred, tegning, timere

Opret et lærred i Python, lær hvordan man tegner på lærredet, og opret et digitalt stopur.

Uge 4 - lister, tastaturindgang, grundlæggende modellering af bevægelse

Lær det grundlæggende med lister i Python, modeller bevægelige objekter i Python, og genskab det klassiske arkadespil "Pong".

Del 2

Uge 5 - musinput, listemetoder, ordbøger

Læs input fra mus, lær om listemetoder og ordbøger og tegn billeder.

Uge 6 - klasser og objektorienteret programmering

Lær det grundlæggende i objektorienteret programmering i Python ved hjælp af klasser, og arbejd med flisebelagte billeder.

Uge 7 - grundlæggende spilfysik, sprites

Forstå matematikken i acceleration og friktion, arbejd med sprites, og tilføj lyd til dit spil.

Uge 8 - sæt og animation

Lær om sæt i Python, beregne kollisioner mellem sprites og animere sprites.

Hvis du er indstillet til R

Hvis du er indstillet på en introduktion til programmeringskursus i R, anbefaler vi DataCamps serie af R-kurser: Introduktion til R, mellemliggende R, mellemliggende R - praksis og skrivefunktioner i R. Selvom de sidstnævnte tre kommer til en pris på $ 25 / måned, DataCamp er bedst i kategorien til at dække programmeringsfundamentalerne og R-specifikke emner, hvilket afspejles i dets gennemsnitlige vurdering på 4,29 / 5 stjerner.

Vi mener, at den bedste tilgang til læring af programmering til datalogi ved hjælp af online kurser er at gøre det først gennem Python. Hvorfor? Der mangler MOOC-indstillinger, der underviser i centrale programmeringsprincipper og bruger R som undervisningssprog. Vi fandt seks sådanne R-kurser, der passer til vores testkriterier, sammenlignet med 22 Python-baserede kurser. De fleste af R-kurserne modtog ikke gode vurderinger og opfyldte ikke de fleste af vores subjektive testkriterier.

Seriens opdeling er som følger:

Introduktion til R

Anslået tidsforpligtelse: 4 timer

Kapitler:

  1. Introduktion til det grundlæggende
  2. Vektorer
  3. Matricer
  4. Faktorer
  5. Datarammer
  6. Lister

Mellemliggende R

Anslået tidsforpligtelse: 6 timer

Kapitler:

  1. Betingelser og kontrolflow
  2. Sløjfer
  3. Funktioner
  4. Den gældende familie
  5. Hjælpeprogrammer

Mellemliggende R - Øvelse

Anslået tidsforpligtelse: 4 timer

Dette opfølgningskursus om mellemliggende R dækker ikke nye programmeringskoncepter. I stedet styrker du din viden om emnerne i mellemliggende R med en masse nye og sjove øvelser.

Skrivefunktioner i R

Anslået tidsforpligtelse: 4 timer

Kapitler:

  1. En hurtig genopfriskning
  2. Hvornår og hvordan du skal skrive en funktion
  3. Funktionel programmering
  4. Avancerede input og output
  5. Robuste funktioner

En anden mulighed for R ville være at tage en Python-baseret introduktion til programmeringskursus for at dække det grundlæggende ved programmering og derefter afhente R-syntaks med et R-grundlæggende kursus. Dette er hvad jeg gjorde, men jeg gjorde det med Udacitys dataanalyse med R. Det fungerede godt for mig.

Du kan også hente R med vores bedste anbefaling til en statistikklasse, der lærer det grundlæggende i R gennem kodning af statistikproblemer.

Konkurrencen

Vores nr. 1 og nr. 2 havde en 4,71 og 4,93 stjernet vægtet gennemsnitlig vurdering på henholdsvis 284 og 6.069 anmeldelser. Lad os se på de andre alternativer.

Python-baner (faldende vejede gennemsnitlige ratings)

  • Programmering til alle (Kom godt i gang med Python) og Python-datastrukturer (University of Michigan / Coursera): en anden god mulighed. Det har også en god lærer (Dr. Charles "Chuck" Severance). Denne serie var tæt på at overvinde vores # 1-valg, fordi den matchede den i vurdering og i de fleste af de subjektive kriterier. Dette kursus er dog mere skånsomt, hvor anmelderne bemærker, at det måske ikke forbereder dig så godt som andre muligheder. Dr. Chuck bemærkede selv, at dette kursus er en bro til mere avancerede programmeringskurser: ” Jeg vil foreslå, at når de studerende har gennemført mit Python-kursus, hvis de er interesseret i mere programmering, at de vil tage Rice-kurset. ”Vi følte også, at anmeldelserne for vores # 1-valg var mere entusiastiske. Det har en 4,8-stjernet vægtet gennemsnitlig vurdering over 4.800+ anmeldelser.
  • Python AZ: Python til datavidenskab med rigtige øvelser (Udemy): det koster penge og har en 4,7-stjernet vægtet gennemsnitlig vurdering over 52 anmeldelser.
  • Automatiser de kedelige ting med Python-programmering (Udemy): det koster penge og har en 4,6-stjernet vægtet gennemsnitlig vurdering over 2.000+ anmeldelser.
  • Python for begyndere: Fra Noob til Expert i 22+ timer (Udemy): det koster penge og har en 4,6-stjernet vægtet gennemsnitlig vurdering over 240 anmeldelser.
  • Introduktion til datalogi og programmering ved hjælp af Python (MIT / edX): en anden god mulighed. Det har en 4,5-stjernet vægtet gennemsnitlig vurdering over 240 anmeldelser.
  • Komplet Python Bootcamp (Udemy): det koster penge og har en 4,5-stjernet vejet gennemsnitlig vurdering over 4.700+ anmeldelser.
  • Treehouse's Python-serie (9 kurser): det koster penge. Det er en populær mulighed, men der er ikke nok anmeldelser til at vurdere en værdi. Den har en 4,5-stjernet vægtet gennemsnitlig vurdering over 5 anmeldelser.
  • Python (Codecademy): videoløst, teksteditorbaseret, interaktivt kursus. Den har en 4,5-stjernet vægtet gennemsnitlig vurdering over 20 anmeldelser.
  • Introduktion til Python for datavidenskab (Microsoft / edX): den har en 4,47-stjernet vægtet gennemsnitlig vurdering over 360 anmeldelser.
  • Introduktion til programmering af nanodegree (Udacity): det har et bemærkelsesværdigt fokus på webudvikling. Det er en god mulighed for nogen, der ikke ved, hvilken type programmering de vil lave. Den har en 4,4-stjernet vægtet gennemsnitlig vurdering over 730 anmeldelser. Bemærk, at den indeholder den første halvdel af Udacitys populære "Intro til datalogi" -kursus, som ikke passer til vores inklusionskriterier.
  • CS For All: Introduktion til datalogi og Python-programmering (Harvey Mudd College / edX): den har meget få anmeldelser og en 4,33-stjernet vægtet gennemsnitlig vurdering over 6 anmeldelser.
  • Programmering af fundamenter med Python (Udacity): dækker ikke det grundlæggende. Det har en 4-stjernet vægtet gennemsnitlig vurdering over 7 anmeldelser.
  • Lær at programmere ved hjælp af Python (edX / University of Texas Arlington): det har en 4-stjernet vægtet gennemsnitlig vurdering over 14 anmeldelser.
  • Lær at kode for dataanalyse (Det åbne universitet / FutureLearn): det har en 3,5-stjernet vægtet gennemsnitlig vurdering over 2 anmeldelser.
  • DataCamps Python-serie (3 kurser): den har ingen anmeldelser på de to store kursusanmeldelsessider, men DataCamp er en populær mulighed.
  • SoloLearns Python 3-tutorial: den har ingen anmeldelser, men har en omfattende læseplan og en dedikeret fanbase.
  • Dataquests Python-serie (3 kurser): den har ingen anmeldelser, men har en omfattende læseplan og en åbenhjertig fanbase.

R-kurser (faldende vægtet gennemsnitsklassificering)

  • R-programmering AZ ™: R til datalogi med rigtige øvelser! (Udemy): koster penge. Det giver ikke så meget penge for pengene som vores # 1 R-tilbud. Vurderingerne er ens, i betragtning af stikprøvestørrelse. Det har en 4,7-stjernet vægtet gennemsnitlig vurdering over 785 anmeldelser.
  • Introduktion til R for datalogi (Microsoft / edX): ikke så meget dybde som DataCamps tilbud. Det har en 4.48-stjernet vægtet gennemsnitlig vurdering over 500 anmeldelser.
  • R-programmering (Johns Hopkins University / Coursera): dækker ikke tilstrækkeligt det grundlæggende ved programmering. Kritikere bemærker, at det er svært og ikke på en god måde. Den har en 4,04-stjernet vægtet gennemsnitlig vurdering over 900+ anmeldelser, på trods af en 2,5-stjernet vurdering over 212 anmeldelser på Class Central.
  • TryR (CodeSchool): det er ikke længe nok til at passe til testkriterier og dækker ikke tilstrækkeligt programmeringsgrundlag. Det har en 4-stjernet vægtet gennemsnitlig vurdering over 260 anmeldelser.
  • Programmering med R for datalogi (Microsoft / edX): mere af en introduktion til R-sproget i stedet for programmering. Kursusstedet siger: "Hvis du har en vis programmeringserfaring og gerne vil lære mere om R, er du på det rigtige sted." Det har en 3-stjernet vægtet gennemsnitlig vurdering over 12 anmeldelser.

Pakning af det

Dette er den første af en seks-delt serie, der dækker de bedste MOOC'er til at starte dig selv ind i datavidenskabsfeltet. Det vil dække flere andre datavidenskabelige kernekompetencer: statistik, datavidenskabsprocessen, datavisualisering og maskinindlæring.

Hvis du vil lære datalogi, skal du tage et par af disse statistikklasser

En omfattende guide til online statistik og sandsynlighedskurser. medium.freecodecamp.com Jeg rangerede hvert Intro til Data Science-kursus på internettet, baseret på tusindvis af datapunkter

En omfattende guide til online introduktion til datavidenskabskurser. medium.freecodecamp.com

Det sidste stykke vil være et resumé af disse kurser og de bedste MOOC'er til andre nøgleemner såsom datakørsel, databaser og endda software engineering.

Hvis du leder efter en komplet liste over MOOC'er for datalogi, kan du finde dem på Class Centers side om datavidenskab og big data.

Hvis du kunne lide at læse dette, så tjek nogle af Class Centrals andre stykker:

Her er 250 Ivy League kurser, du kan tage online lige nu gratis

250 MOOC'er fra Brown, Columbia, Cornell, Dartmouth, Harvard, Penn, Princeton og Yale. medium.freecodecamp.com De 50 bedste gratis online universitetskurser i henhold til data

Da jeg lancerede Class Central i november 2011, var der omkring 18 gratis online kurser og næsten hele ... medium.freecodecamp.com

Hvis du har forslag til kurser, jeg savnede, så lad mig det vide i svarene!

Hvis du fandt dette nyttigt, skal du klikke på? så flere mennesker vil se det her på Medium.

Dette er en kondenseret version af den originale artikel, der blev offentliggjort på Class Central, hvor kursusbeskrivelser, pensum og flere anmeldelser er inkluderet.