Če se želite naučiti Data Science, začnite z enim od teh programov

Pred letom dni sem bil geek s številkami brez kodiranja. Po preizkusu spletnega tečaja programiranja sem bil tako navdihnjen, da sem se vpisal v enega najboljših programov računalništva v Kanadi.

Dva tedna kasneje sem spoznal, da se lahko vsega, kar potrebujem, naučim prek edX, Coursere in Udacity. Tako sem izpadel.

Odločitev ni bila težka. Vsebino, ki sem si jo želel, sem se lahko naučil hitreje, učinkoviteje in za delček stroškov.

Imel sem že univerzitetno izobrazbo in, kar je še pomembneje, univerzitetne izkušnje sem že imel. Plačilo 30 tisoč USD + za vrnitev v šolo se je zdelo neodgovorno.

Kmalu zatem sem začel z ustvarjanjem lastnega magistrskega študija podatkov s pomočjo spletnih tečajev, potem ko sem ugotovil, da mi to bolj ustreza kot računalništvo. Prebrskal sem uvod v programsko pokrajino. Sem že opravil več tečajev in revidiral dele mnogih drugih. Vem, kakšne so možnosti in kakšne spretnosti so potrebne, če ciljate na vlogo analitika ali znanstvenika.

Za ta vodnik sem več kot 20 ur poskušal najti vsak posamezen spletni uvod v tečaj programiranja, ki je bil ponujen avgusta 2016, izvzel ključne delčke informacij iz njihovih učnih načrtov in pregledov ter sestavil njihove ocene. Za to nalogo sem se obrnil na nikogar drugega kot na odprtokodno skupnost Class Central in njeno bazo podatkov o tisočih ocenah in ocenah tečajev.

Od leta 2011 je ustanovitelj Class Central Dhawal Shah pozorneje spremljal spletne tečaje kot verjetno kdor koli drug na svetu. Dhawal mi je osebno pomagal sestaviti ta seznam virov.

Kako smo izbrali tečaje za razmislek

Vsak tečaj je moral ustrezati štirim merilom:

  • Predstavlja programiranje in po želji računalništvo . Glejte spodnjo opombo o programiranju in računalništvu.
  • Jezik poučevanja je Python ali R. To sta daleč najbolj priljubljena programska jezika, ki se uporabljajo v znanosti o podatkih.
  • To mora biti interaktivni spletni tečaj, torej brez knjig ali besedilnih vadnic. Kar zadeva slednje, bi se lahko uvrstili tečaji Codecademyja brez videoposnetkov in urejevalniki besedil, stroge vaje za besedilo, kot so tiste iz vadnice R, pa ne. Čeprav so knjige izvedljivi načini za učenje programiranja, Pythona in R, se ta vodnik osredotoča na tečaje.
  • Dolžina mora biti primerna: najmanj deset ur za predvideno dokončanje.

Kako smo ocenjevali tečaje

Prepričani smo, da smo zajeli vsak pomemben potek, ki obstaja in ustreza zgornjim merilom. Ker je na videz na stotine tečajev o Udemyju v Pythonu in Rju, smo se odločili, da bomo upoštevali samo najbolj pregledane in najbolje ocenjene. Obstaja možnost, da smo nekaj zamudili. Če menite, da je temu tako, nam sporočite.

Pripravili smo povprečno oceno in število pregledov iz razreda Central in drugih spletnih mest s pregledi. Za vsak tečaj smo izračunali tehtano povprečno oceno. Če je serija imela več tečajev (na primer 1. in 2. del Rice University), smo izračunali tehtano povprečno oceno vseh tečajev. Prebrali smo tudi besedilne preglede in te povratne informacije uporabili za dopolnitev številčnih ocen.

Na podlagi treh dejavnikov smo izvedli subjektivne presoje učnih načrtov:

  1. Pokrivanje osnov programiranja.
  2. Obseg naprednejših, a uporabnih tem pri programiranju. (Npr. Več tečajev se odloči, da ne bo zajemalo objektno usmerjenega programiranja. Menimo, da je to ključna tema, čeprav ne prekinitev dogovora, zato so ti tečaji samo označeni in niso izključeni iz obravnave.)
  3. Kolikšen del učnega načrta je pomemben za znanost o podatkih?

Opomba o programiranju proti računalništvu

Programiranje ni računalništvo in obratno. Obstajajo razlike, katerih začetniki se morda ne zavedajo natančno. Ta odgovor sem si sposodil pri izmenjavi programerjev:

Računalništvo je preučevanje, kaj [lahko] naredijo računalniki; programiranje je praksa, da računalniki počnejo stvari.

Tečaj, ki ga iščemo, uvaja programiranje in se po želji dotakne ustreznih vidikov računalništva, ki bi koristili novemu programerju v smislu ozaveščenosti. Opazili boste, da imajo številni obravnavani tečaji res del računalništva.

Noben tečaj pa ni izključno tečaj računalništva, zato je nekaj takega kot Harvardov CS50x na edX izključeno.

Naš izbor za najboljši tečaj programiranja za podatkovne znanstvenike je ...

Serija Univerze v Torontu "Nauči se programirati" o Courseri. LTP1: Osnove in LTP2: Kodeks kakovosti izdelave imajo skoraj popolno tehtano povprečno oceno 4,71 od 5 zvezdic v 284 pregledih. Imajo tudi veliko mešanico težav z vsebino in obsega za začetnike podatkovne znanstvenike.

Ta brezplačen uvod v programiranje, ki temelji na Pythonu, se ločuje od ostalih 20+ tečajev, ki smo jih obravnavali.

Jennifer Campbell in Paul Gries, dva izredna profesorja na oddelku za računalništvo na univerzi v Torontu (ki velja za enega najboljših na svetu) predavata serijo. Samostojni, samostojni tečaji Coursere se ujemajo z gradivom iz njihove knjige "Praktično programiranje: uvod v računalništvo s pomočjo Pythona 3". LTP1 zajema 40–50% knjige, LTP2 pa dodatnih 40%. Nezajetih 10–20% ni posebej koristno za znanost o podatkih, kar jim je pomagalo, da so nas izbrali.

Profesorji so mi na prošnjo prijazno in takoj poslali podrobne učne programe, ki jih je bilo težko najti na spletu pred uradnim ponovnim zagonom tečaja septembra 2016.

Naučite se programirati: Osnove (LTP1)

Časovnica: 7 tednov

Predvidena časovna obveznost: 6-8 ur na teden

Ta tečaj predstavlja uvod v računalniško programiranje, namenjeno ljudem brez izkušenj s programiranjem. Obsega osnove programiranja v Pythonu, vključno z osnovnimi tipi podatkov (številski tipi, nizi, seznami, slovarji in datoteke), nadzornim tokom, funkcijami, predmeti, metodami, polji in spremenljivostjo.

Moduli

  1. Namestitev Pythona, IDLE, matematični izrazi, spremenljivke, stavek o dodelitvi, klicanje in definiranje funkcij, sintakse in semantične napake.
  2. Strune, vhod / izhod, ponovna uporaba funkcije, recept za oblikovanje funkcij in docstrings.
  3. Boolovi vrednosti, uvoz, imenski prostori in stavki if.
  4. Za zanke in modne manipulacije nizov.
  5. Medtem ko zanke, seznami in spremenljivost.
  6. Za zanke nad indeksi, vzporednimi seznami in nizi ter datotekami.
  7. Tuple in slovarji.

Naučite se programirati: Oblikovanje kodeksa kakovosti (LTP2)

Časovnica: 5 tednov

Predvidena časovna obveznost: 6-8 ur na teden

Poznate osnove programiranja v Pythonu: osnovni tipi podatkov (številski tipi, nizi, seznami, slovarji in datoteke), nadzorni tok, funkcije, predmeti, metode, polja in spremenljivost. Če želite uspeti na tem tečaju, jih morate dobro poznati.

LTP: Oblikovanje kode kakovosti zajema naslednje korake: oblikovanje večjih programov, preizkušanje kode, tako da veste, da deluje, branje kode, da bi razumeli, kako učinkovita je, in ustvarjanje lastnih vrst.

Moduli

  1. Oblikovanje algoritmov: kako se odločite, kaj narediti v telesu funkcije? Kako sploh ugotoviti, katere funkcije naj napišem?
  2. Avtomatizirano testiranje: doctest in unittest.
  3. Analiziranje kode za hitrost - podrobnosti iskanja in razvrščanja.
  4. Ustvarjanje novih vrst: razredi v Pythonu.
  5. Funkcije kot argumenti, privzete vrednosti parametrov in izjeme.

Izredni profesor Gries je podal tudi komentar o strukturi predmeta: »Vsak modul ima od približno 45 minut do nekaj več kot uro videoposnetka. Obstajajo vprašanja v kvizu v videu, s katerimi se bo skupni čas, ki ste ga preučevali, približal na 2 uri. "

Ti videoposnetki so običajno krajši od deset minut.

Nadaljeval je: »Poleg tega imamo na modul eno vajo (ducat ali dve ali več vprašanj z več možnimi odgovori in odgovori s kratkimi odgovori), kar bi trajalo uro ali dve. V LTP1 obstajajo tri programske naloge, od katerih vsaka lahko traja od štiri do osem ur dela. V LTP2 sta dve programski nalogi podobne velikosti. "

Poudaril je, da je ocena 6-8 ur na teden groba ugibanja: "Ocenjevanje porabljenega časa je neverjetno odvisno od študenta, zato prosim, upoštevajte moje ocene v tem kontekstu. Na primer, nekdo, ki pozna malo programiranja, morda v drugem programskem jeziku, lahko traja polovico časa nekoga, ki je povsem nov v programiranju. Včasih se nekdo zatakne pri konceptu za nekaj ur, medtem ko se lahko zaplete v druge koncepte ... To je eden od razlogov, da nas samostojna oblika tako privlači. "

Skupno serija Učenja programa Univerze v Torontu traja približno 12 tednov po 6-8 ur na teden, kar je približno standard za večino spletnih tečajev, ki so jih ustvarile univerze. Če raje pretirano preučujete svoje MOOC-je, je to 72–96 ur, ki bi jih lahko izvedli v dveh do treh tednih, še posebej, če imate malo izkušenj s programiranjem.

Še ena odlična možnost Pythona

Če že poznate programiranje in vas ne moti učni načrt, ki ima opazen naklon igram in interaktivnim aplikacijam, priporočam tudi Rice University's Uvod v interaktivno programiranje v Pythonu (1. in 2. del) na Courseri.

S 6.000+ ocenami in najvišjo tehtano povprečno oceno 4,93 / 5 zvezdic je ta priljubljeni tečaj znan po svojih privlačnih videoposnetkih, zahtevnih kvizih in prijetnih mini projektih. To je nekoliko težje in se manj osredotoča na osnove in bolj na teme, ki niso uporabne v znanosti o podatkih kot naš # 1 izbor.

Ti tečaji so tudi del 7 tečajev Načela računalniške specializacije na Courseri.

Materiali so samostojni in brezplačni, na voljo pa je plačljivo potrdilo. Tečaj morate kupiti za 79 USD (USD) za dostop do gradiv, ki so ocenjene.

Zgoščeni opis predmeta in celoten učni načrt so naslednji:

»Ta dvodelni tečaj je zasnovan tako, da študentom z zelo malo računalniškega ozadja ali brez njih nauči osnov izdelave preprostih interaktivnih aplikacij ... Da bi učenje Pythona olajšali, smo razvili novo programsko okolje, ki temelji na brskalniku in omogoča razvoj interaktivnih aplikacij v Pythonu. preprosto. Te aplikacije vključujejo okna, katerih vsebina je grafična in se odziva na gumbe, tipkovnico in miško.

Priporočeno ozadje: Potrebno je znanje srednješolske matematike. Medtem ko je pouk namenjen študentom brez predhodnih izkušenj s programiranjem, so nekateri začetniki programerji ocenili, da je razred hiter . Za študente, ki jih pred začetkom pouka zanima kakšna lahka priprava, priporočamo samostojno spletno stran za učenje Pythona, kot je codecademy.com. "

1. del

Časovnica: 5 tednov

Predvidena časovna obveznost: 7–10 ur na teden

Teden 0 - stavki, izrazi, spremenljivke

Razumevanje strukture tega razreda in raziskovanje Pythona kot kalkulatorja.

1. teden - funkcije, logika, pogojnosti

Spoznajte osnovne konstrukcije programiranja na Python in ustvarite program, ki predvaja različico Rock-Paper-Scissors.

2. teden - programiranje na podlagi dogodkov, lokalne / globalne spremenljivke

Spoznajte osnove programiranja na podlagi dogodkov, razumejte razliko med lokalnimi in globalnimi spremenljivkami ter ustvarite interaktivni program, ki igra preprosto igro ugibanja.

3. teden - platno, risba, časovniki

Ustvarite platno v Pythonu, naučite se risati na platno in ustvarite digitalno štoparico.

4. teden - seznami, vnos s tipkovnico, osnove modeliranja gibanja

Spoznajte osnove seznamov v Pythonu, modelirajte premikajoče se predmete v Pythonu in poustvarite klasično arkadno igro “Pong”.

2. del

5. teden - vnos z miško, metode seznama, slovarji

Preberite vnos z miško, spoznajte metode seznamov in slovarje ter narišite slike.

6. teden - razredi in objektno usmerjeno programiranje

Spoznajte osnove objektno usmerjenega programiranja v Pythonu z uporabo predavanj in delajte s ploščicami.

7. teden - osnovna fizika igre, sprite

Razumejte matematiko pospeševanja in trenja, delajte s sprite in dodajte igro v svojo igro.

8. teden - sklopi in animacija

Spoznajte nabore v Pythonu, izračunajte trke med sprite in animirajte sprite.

Če ste nastavljeni na R

Če ste pripravljeni na uvod v tečaj programiranja v R, priporočamo serijo R tečajev DataCamp: Uvod v R, vmesni R, vmesni R - praksa in pisanje funkcij v R. Čeprav slednji trije dosegajo ceno 25 USD / mesec je DataCamp najboljši v kategoriji za pokrivanje programskih osnov in tem, specifičnih za R, kar se odraža v njegovi povprečni oceni 4,29 / 5 zvezdic.

Verjamemo, da je najboljši pristop k učenju programiranja za podatkovne vede z uporabo spletnih tečajev najprej to opraviti s pomočjo Pythona. Zakaj? Manjka možnosti MOOC, ki poučujejo temeljna programska načela in uporabljajo jezik R kot učni jezik. Našli smo šest takih tečajev R, ki ustrezajo našim merilom testiranja, v primerjavi z dvaindvajsetimi tečaji, ki temeljijo na Pythonu. Večina tečajev R ni prejela dobrih ocen in ni izpolnila večine naših subjektivnih meril za testiranje.

Razčlenitev po serijah je naslednja:

Uvod v R

Predvidena časovna obveznost: 4 ure

Poglavja:

  1. Uvod v osnove
  2. Vektorji
  3. Matrice
  4. Dejavniki
  5. Podatkovni okviri
  6. Seznami

Vmesni R

Predvidena časovna obveznost: 6 ur

Poglavja:

  1. Pogoji in nadzor pretoka
  2. Zanke
  3. Funkcije
  4. Družina za prijavo
  5. Pripomočki

Vmesni R - Vadba

Predvidena časovna obveznost: 4 ure

Ta nadaljnji tečaj o vmesnem R ne zajema novih programskih konceptov. Namesto tega boste svoje znanje tem v srednjem R okrepili s kopico novih in zabavnih vaj.

Pisanje funkcij v R

Predvidena časovna obveznost: 4 ure

Poglavja:

  1. Hitro osvežitev
  2. Kdaj in kako naj napišete funkcijo
  3. Funkcionalno programiranje
  4. Napredni vhodi in izhodi
  5. Robustne funkcije

Druga možnost za R bi bila, da se v tečaj programiranja uvede na osnovi Pythona, da zajame osnove programiranja, in nato izbere sintakso R z tečajem R osnov. To sem naredil, vendar sem to storil z Udacity-jevo analizo podatkov z R. Dobro mi je uspelo.

R lahko poberete tudi z našim najboljšim priporočilom za razred statistike, ki uči osnove R s kodiranjem težav s statistiko.

Tekmovanje

Naši izbiri št. 1 in št. 2 sta imeli povprečno ocenjeno 4,71 in 4,93 zvezdic več kot 284 oziroma 6.069 ocen. Poglejmo še druge možnosti.

Tečaji Pythona (padajoče tehtano povprečje ocen)

  • Programiranje za vse (Uvod v Python) in Python Data Strukture (Univerza v Michiganu / Coursera): še ena odlična možnost. Ima tudi odličnega učitelja (dr. Charles “Chuck” Severance). Ta serija je bila blizu iskanju našega izbora št. 1, ker se je ujemala z oceno in večino subjektivnih meril. Ta tečaj pa je bolj nežen, pri čemer recenzenti ugotavljajo, da vas morda ne bo pripravil tako dobro kot druge možnosti. Sam dr. Chuck je opozoril, da je ta tečaj most k naprednejšim tečajem programiranja: » Predlagam, da se po končanem tečaju Pythona, če jih zanima več programiranja, udeležijo tečaja Rice. ”Zdelo se nam je tudi, da so bile ocene za našo izbiro št. 1 bolj navdušene. Ima tehtano povprečno oceno s 4,8 zvezdicami na več kot 4800 ocenah.
  • Python AZ: Python za podatkovne vede z resničnimi vajami (Udemy): stane in ima tehtano povprečno oceno s 4,7 zvezdicami na 52 ocenah.
  • Avtomatizirajte dolgočasne stvari s programiranjem na Python (Udemy): stane in ima tehtano povprečno oceno s 4,6 zvezdicami več kot 2000+ ocen.
  • Python za začetnike: od Nooba do strokovnjaka v 22 urah ali več (Udemy): stane in ima tehtano povprečno oceno s 4,6 zvezdicami na več kot 240 ocenah.
  • Uvod v računalništvo in programiranje z uporabo Pythona (MIT / edX): še ena dobra možnost. Ima 4,5-zvezdno tehtano povprečno oceno več kot 240 ocen.
  • Popoln Python Bootcamp (Udemy): stane in ima 4,5-zvezdno tehtano povprečno oceno več kot 4700+ ocen.
  • Treehouseova serija Python (9 tečajev): stane. To je priljubljena možnost, vendar je premalo pregledov, da bi lahko ocenili vrednost. Ima 4,5-zvezdno tehtano povprečno oceno v 5 ocenah.
  • Python (Codecademy): interaktivni tečaj brez videa, urejevalnik besedila. Ima tehtano povprečno oceno 4,5 zvezdic na več kot 20 ocenah.
  • Uvod v Python za podatkovno znanost (Microsoft / edX): ima tehtano povprečno oceno 4,47 zvezdic v 360 ocenah.
  • Uvod v programiranje Nanodegree (Udacity): izredno se osredotoča na spletni razvoj. To je odlična možnost za nekoga, ki ne ve, s katero vrsto programiranja se želi ukvarjati. Povprečno ocenjeno s 4,4 zvezdicami ima več kot 730 ocen. Upoštevajte, da vsebuje prvo polovico priljubljenega tečaja Uvoda za uvod v računalništvo, ki ne ustreza našim merilom za vključitev.
  • CS for All: Uvod v računalništvo in programiranje na Python (Harvey Mudd College / edX): ima zelo malo ocen in 4,33-zvezdno tehtano povprečno oceno v 6 ocenah.
  • Programiranje temeljev s Pythonom (Udacity): ne pokriva osnov. Ima tehtano povprečno oceno s 4 zvezdicami v 7 ocenah.
  • Naučite se programirati z uporabo Pythona (edX / University of Texas Arlington): ima tehtano povprečno oceno s 4 zvezdicami v 14 pregledih.
  • Naučite se kodirati za analizo podatkov (Open University / FutureLearn): ima tehtano povprečno oceno s 3,5 zvezdicami v 2 ocenah.
  • DataCamp-ova serija Python (3 tečaji): na dveh glavnih mestih za pregled tečajev ni pregledov, vendar je DataCamp priljubljena možnost.
  • Vadnica za Python 3 za SoloLearn: nima mnenj, ima pa izčrpen kurikulum in namensko bazo oboževalcev.
  • Serija Python (3 tečaji) Dataquest: nima mnenj, ima pa obsežen učni načrt in odkrito bazo oboževalcev.

R tečaji (padajoče tehtano povprečje ocen)

  • R Programiranje AZ ™: R Za podatkovno znanost z resničnimi vajami! (Udemy): stane denar. Za svoj denar ne ponuja toliko udarcev kot naša ponudba # 1 R. Ocene so podobne glede na velikost vzorca. Povprečno ocenjeno s 7,7 zvezdicami ima več kot 785 ocen.
  • Uvod v R za podatkovno znanost (Microsoft / edX): ne toliko globoko kot ponudba DataCampa. Ima tehtano povprečno oceno s 4,48 zvezdicami na več kot 500 ocenah.
  • Programiranje R (Univerza Johns Hopkins / Coursera): ne pokriva dovolj osnov programiranja. Ocenjevalci ugotavljajo, da je težko in ne v dobrem smislu. Povprečno ocenjeno s 4,04 zvezdicami ima več kot 900+ ocen, kljub oceni 2,5 z več kot 212 ocenami razreda Central.
  • TryR (CodeSchool): ni dovolj dolg, da ustreza kriterijem testiranja, in ne zajema dovolj programov. Ima tehtano povprečno oceno s 4 zvezdicami na več kot 260 ocenah.
  • Programiranje z R za podatkovno znanost (Microsoft / edX): bolj uvod v jezik R in ne programiranje. Na spletnem mestu tečaja piše: "Če imate nekaj izkušenj s programiranjem in bi radi izvedeli več o R, ste na pravem mestu." Ima tehtano povprečno oceno s 3 zvezdicami v 12 ocenah.

Zavijanje

To je prva izmed šestih serij, ki zajema najboljše MOOC-je za vstop na področje znanosti o podatkih. Obsegala bo več drugih temeljnih kompetenc na področju znanosti o podatkih: statistika, proces znanosti o podatkih, vizualizacija podatkov in strojno učenje.

Če se želite naučiti Data Science, opravite nekaj teh tečajev statistike

Izčrpen vodnik po spletnih tečajih statistike in verjetnosti. medium.freecodecamp.com Vsak tečaj Intro to Data Science sem uvrstil na internetu na podlagi tisočih podatkovnih točk

Celovit vodnik po spletnem uvodu v tečaje znanosti o podatkih medium.freecodecamp.com

Zadnji del bo povzetek teh tečajev in najboljši MOOC-ji za druge ključne teme, kot so premeščanje podatkov, zbirke podatkov in celo programsko inženirstvo.

Če iščete popoln seznam MOOC-jev Data Science, jih lahko najdete na strani predmeta Data Science in Big Data Class Central.

Če ste to rad prebrali, si oglejte še nekatere druge prispevke razreda Central:

Tukaj je 250 tečajev Ivy League, ki se jih lahko zdaj brezplačno udeležite na spletu

250 MOOC-jev iz Brown, Columbia, Cornell, Dartmouth, Harvard, Penn, Princeton in Yale. medium.freecodecamp.com 50 najboljših brezplačnih spletnih univerzitetnih tečajev glede na podatke

Ko sem novembra 2011 uvedel Class Central, je bilo približno 18 brezplačnih spletnih tečajev in skoraj vsi… medium.freecodecamp.com

Če imate predloge za tečaje, ki sem jih zamudil, mi to sporočite v odgovorih!

Če se vam zdi to koristno, kliknite? tako da ga bo več ljudi videlo tukaj na Mediumu.

To je strnjena različica izvirnega članka, objavljenega na Class Central, kjer so vključeni opisi tečajev, učni načrti in več pregledov.