Ako želite naučiti Data Science, započnite s jednom od ovih satova programiranja

Prije godinu dana bio sam geek bez brojeva kodiranja. Nakon isprobavanja internetskog tečaja programiranja, bio sam toliko nadahnut da sam upisao jedan od najboljih programa informatike u Kanadi.

Dva tjedna kasnije shvatio sam da umjesto toga mogu naučiti sve što mi treba putem edX-a, Coursere i Udacity-a. Pa sam otpao.

Odluka nije bila teška. Sadržaj koji sam želio mogao sam naučiti brže, učinkovitije i za djelić cijene.

Već sam imao fakultetsku diplomu i, što je još važnije, već sam imao sveučilišno iskustvo. Plaćanje 30 tisuća dolara + za povratak u školu činilo se neodgovornim.

Ubrzo nakon toga počeo sam stvarati vlastiti magisterij iz područja podataka koristeći internetske tečajeve, nakon što sam shvatio da mi to više odgovara od informatike. Pretražio sam uvod u programsko okruženje. Već sam pohađao nekoliko tečajeva i revidirao dijelove mnogih drugih. Znam mogućnosti i koje su vještine potrebne ako ciljate ulogu analitičara ili znanstvenika podataka.

Za ovaj vodič proveo sam više od 20 sati pokušavajući pronaći svaki pojedini internetski uvod u tečaj programiranja koji se nudi od kolovoza 2016. godine, izvlačeći ključne dijelove informacija iz njihovih programa i recenzija i sastavljajući njihove ocjene. Za ovaj zadatak obratio sam se nikome osim zajednici Class Central s otvorenim kodom i njenoj bazi podataka s tisućama ocjena i recenzija tečaja.

Od 2011. godine osnivač Class Central Dhawal Shah pažljivije prati mrežne tečajeve nego vjerojatno bilo tko drugi na svijetu. Dhawal mi je osobno pomogao sastaviti ovaj popis resursa.

Kako smo odabrali tečajeve za razmatranje

Svaki tečaj morao je odgovarati četiri kriterija:

  • Uvodi programiranje i, po želji, informatiku . Pogledajte "Bilješku o programiranju naspram računalnih znanosti" u nastavku.
  • Jezik podučavanja je Python ili R. To su daleko dva najpopularnija programska jezika koja se koriste u znanosti o podacima.
  • To mora biti interaktivni mrežni tečaj, tako da nema knjiga ili udžbenika temeljenih na tekstu. Što se tiče potonjeg, Codecademyjevi tečajevi bez video zapisa i temeljeni na uređivaču teksta kvalificirali bi se, ali strogi udžbenici teksta poput onih iz R tutorijala ne bi. Iako su knjige održivi načini za učenje programiranja, Pythona i R, ovaj vodič usredotočen je na tečajeve.
  • Mora biti pristojne duljine: ukupno najmanje deset sati za procijenjeni završetak.

Kako smo ocjenjivali tečajeve

Vjerujemo da smo pokrili sve značajne tečajeve koji postoje i koji odgovaraju gore navedenim kriterijima. Budući da naizgled postoje stotine tečajeva o Udemyju u Pythonu i R, odlučili smo razmotriti samo one najpregledanije i najbolje ocijenjene. Međutim, postoji šansa da smo nešto propustili. Obavijestite nas ako mislite da je to slučaj.

Prikupili smo prosječnu ocjenu i broj recenzija s Class Central i drugih web mjesta s recenzijama. Izračunali smo ponderiranu prosječnu ocjenu za svaki tečaj. Ako je serija imala više tečajeva (poput 1. i 2. dijela Sveučilišta Rice), izračunali smo ponderiranu prosječnu ocjenu za sve tečajeve. Također smo pročitali tekstne recenzije i upotrijebili ove povratne informacije kako bismo nadopunili brojčane ocjene.

Napravili smo subjektivne pozive prema prosudbama na temelju tri čimbenika:

  1. Obuhvat osnova programiranja.
  2. Pokrivanje naprednijih, ali korisnih tema u programiranju. (Npr. Nekoliko tečajeva odabere da ne pokriva objektno orijentirano programiranje. Vjerujemo da je ovo ključna tema, iako ne i prekidač dogovora, stoga su ovi tečajevi samo usidreni i nisu isključeni iz razmatranja.)
  3. Koliki je dio nastavnog programa relevantan za znanost o podacima?

Napomena o programiranju nasuprot računalnim znanostima

Programiranje nije informatika i obrnuto. Postoji razlika kojih početnici možda nisu jako svjesni. Posuđujući ovaj odgovor od programera Stack Exchange:

Računalstvo je proučavanje onoga što računala [mogu] učiniti; programiranje je praksa tjeranja računala da rade.

Tečaj koji tražimo uvodi programiranje i po želji se dotiče relevantnih aspekata informatike koji bi novom programeru koristili u smislu svijesti. Mnogi primijećeni tečajevi doista imaju dio informatike.

Međutim, niti jedan tečaj nije strogo tečaj informatike, zbog čega je isključeno nešto poput Harvardovog CS50x na edX.

Naš izbor za najbolji tečaj programiranja za znanstvenike podataka je ...

Serija Sveučilišta u Torontu "Nauči programirati" na Courseri. LTP1: Osnove i LTP2: Kodeks kvalitete izrade imaju gotovo savršenu ponderiranu prosječnu ocjenu 4,71 od 5 zvjezdica u 284 recenzije. Oni također imaju veliku kombinaciju poteškoća i opsega sadržaja za početnike znanstvenike podataka.

Ovaj besplatni uvod u programiranje na Pythonu izdvaja se od ostalih 20+ tečajeva koje smo razmatrali.

Jennifer Campbell i Paul Gries, dvije izvanredne profesorice na odsjeku za informatiku Sveučilišta u Torontu (koje se smatra jednim od najboljih na svijetu) predaju seriju. Samostalni, samostalni tečajevi Coursere podudaraju se sa materijalom iz njihove knjige, "Praktično programiranje: uvod u računalne znanosti pomoću Pythona 3." LTP1 pokriva 40-50% knjige, a LTP2 još 40%. Neobuhvaćenih 10–20% nije osobito korisno za znanost o podacima, što im je pomoglo da budu naš odabir.

Profesori su mi na zahtjev ljubazno i ​​brzo poslali detaljne nastavne planove i programe, koje je bilo teško pronaći na mreži prije službenog ponovnog pokretanja tečaja u rujnu 2016. godine.

Naučite programirati: Osnove (LTP1)

Vremenska crta: 7 tjedana

Predviđeno vrijeme: 6–8 sati tjedno

Ovaj tečaj daje uvod u računalno programiranje namijenjeno ljudima bez iskustva u programiranju. Obuhvaća osnove programiranja na Pythonu, uključujući elementarne vrste podataka (numeričke vrste, nizovi, popisi, rječnici i datoteke), nadzor protoka, funkcije, objekte, metode, polja i promjenjivost.

Moduli

  1. Instaliranje Pythona, IDLE-a, matematičkih izraza, varijabli, izraza dodjele, pozivanja i definiranja funkcija, sintakse i semantičkih pogrešaka.
  2. Nizovi, ulaz / izlaz, ponovna upotreba funkcije, recept za dizajn funkcije i docstrings.
  3. Booleovi znakovi, import, prostori imena i if izrazi.
  4. Za petlje i modne manipulacije žicama.
  5. Dok petlje, popisi i promjenjivost.
  6. Za petlje preko indeksa, paralelnih popisa i nizova te datoteka.
  7. Korijeni i rječnici.

Naučite programirati: Izrada Kodeksa kvalitete (LTP2)

Vremenska crta: 5 tjedana

Predviđeno vrijeme: 6–8 sati tjedno

Znate osnove programiranja na Pythonu: elementarni tipovi podataka (numerički tipovi, nizovi, popisi, rječnici i datoteke), nadzor protoka, funkcije, objekti, metode, polja i promjenjivost. Morate biti dobri u tome da biste uspjeli na ovom tečaju.

LTP: Izrada koda kvalitete obuhvaća sljedeće korake: dizajniranje većih programa, testiranje koda kako biste znali da djeluje, čitanje koda kako biste razumjeli koliko je učinkovit i stvaranje vlastitih vrsta.

Moduli

  1. Dizajniranje algoritama: kako odlučujete što ćete raditi u tijelu funkcije? Kako uopće dokučiti koje funkcije napisati?
  2. Automatizirano testiranje: doctest i unittest.
  3. Analiza koda za brzinu - detalji pretraživanja i sortiranja.
  4. Stvaranje novih vrsta: klase u Pythonu.
  5. Funkcije kao argumenti, zadane vrijednosti parametara i iznimke.

Izvanredni profesor Gries dao je i sljedeći komentar na strukturu predmeta: „Svaki modul ima između 45 minuta i nešto više od sat vremena videozapisa. Postoje pitanja u kvizu u videozapisima, što će dovesti do ukupnog vremena provedenog u proučavanju videozapisa na možda 2 sata. "

Ti su videozapisi obično kraći od deset minuta.

Nastavio je: „Uz to, imamo jednu vježbu (desetak ili dva ili više pitanja s višestrukim izborom i kratkim odgovorima) po modulu, što bi trebalo trajati sat ili dva. Postoje tri programska zadatka u LTP1, od kojih svaki može potrajati četiri do osam sati rada. Postoje dva programska zadatka u LTP2 slične veličine. "

Naglasio je da je procjena 6-8 sati tjedno gruba pretpostavka: „Procjena utrošenog vremena nevjerojatno ovisi o studentu, pa vas molim da uzmete moje procjene u tom kontekstu. Na primjer, nekome tko zna malo programiranja, možda na drugom programskom jeziku, možda će trebati pola vremena nekoga tko je potpuno nov u programiranju. Ponekad će netko zaglaviti na konceptu na nekoliko sati, dok bi se mogao probiti kroz druge koncepte ... To je jedan od razloga što nam je samoinstalirani format toliko privlačan. "

Sveukupno, serija Nauči programirati na Sveučilištu u Torontu traje približno 12 tjedana po 6-8 sati tjedno, što je otprilike standard za većinu internetskih tečajeva koje su stvorila sveučilišta. Ako više volite pretjerano proučavati svoje MOOC-ove, to je 72–96 sati, što bi bilo izvedivo za dva do tri tjedna, pogotovo ako imate malo iskustva u programiranju.

Još jedna izvrsna Python opcija

Ako ste već upoznati s programiranjem i ne smeta vam nastavni plan koji ima značajan iskorak prema igrama i interaktivnim aplikacijama, također bih preporučio Uvod u interaktivno programiranje na Pythonu sa Sveučilišta Rice (1. i 2. dio) na Courseri.

S više od 6000 recenzija i najvećom ponderiranom prosječnom ocjenom 4,93 / 5 zvjezdica, ovaj je popularni tečaj poznat po svojim zanimljivim videozapisima, izazovnim kvizovima i ugodnim mini projektima. Nešto je teže i manje se fokusira na osnove, a više na teme koje nisu primjenjive u znanosti o podacima od našeg odabira br. 1.

Ovi su tečajevi također dio 7 principa tečaja u računalnoj specijalizaciji na Courseri.

Materijali su samostalni i besplatni, a dostupan je i plaćeni certifikat. Tečaj se mora kupiti za 79 USD (USD) za pristup ocjenjivanim materijalima.

Sažeti opis predmeta i cjeloviti nastavni plan su sljedeći:

„Ovaj je dvodijelni tečaj osmišljen kako bi pomogao studentima s vrlo malo ili nimalo računalne pozadine da nauče osnove izrade jednostavnih interaktivnih aplikacija ... Kako bismo učenje Pythona učinili jednostavnim, razvili smo novo programsko okruženje temeljeno na pregledniku koje čini razvoj interaktivnih aplikacija u Pythonu jednostavan. Ti će programi uključivati ​​prozore čiji je sadržaj grafički i reagira na gumbe, tipkovnicu i miša.

Preporučena podloga: Potrebno je znanje srednjoškolske matematike. Iako je nastava namijenjena studentima bez prethodnog programskog iskustva, neki programeri koji su započeli nastavu smatraju da je ona brza . Učenicima koje zanima lagana priprema prije početka nastave, preporučujemo samostalno web mjesto za učenje Pythona, poput codecademy.com. "

1. dio

Vremenska crta: 5 tjedana

Predviđeno vrijeme: 7–10 sati tjedno

Tjedan 0 - iskazi, izrazi, varijable

Shvatite strukturu ove klase i istražite Python kao kalkulator.

1. tjedan - funkcije, logika, uvjetni uvjeti

Naučite osnovne konstrukcije Python programiranja i stvorite program koji reproducira varijantu Rock-Paper-Scissors.

2. tjedan - programiranje vođeno događajima, lokalne / globalne varijable

Naučite osnove programiranja vođenog događajima, shvatite razliku između lokalnih i globalnih varijabli i stvorite interaktivni program koji igra jednostavnu igru ​​pogađanja.

3. tjedan - platno, crtanje, tajmeri

Stvorite platno u Pythonu, naučite crtati na platnu i izradite digitalnu štopericu.

4. tjedan - popisi, unos s tipkovnice, osnove modeliranja pokreta

Naučite osnove popisa u Pythonu, modelirajte pokretne objekte u Pythonu i stvorite klasičnu arkadnu igru ​​„Pong“.

2. dio

5. tjedan - unos mišem, metode popisa, rječnici

Pročitajte unos mišem, naučite o metodama popisa i rječnicima te crtajte slike.

6. tjedan - satovi i objektno orijentirano programiranje

Naučite osnove objektno orijentiranog programiranja u Pythonu pomoću klasa i radite sa pločicama.

7. tjedan - osnovna fizika igre, spritovi

Shvatite matematiku ubrzanja i trenja, radite sa spritovima i dodajte zvuk svojoj igri.

8. tjedan - setovi i animacija

Saznajte o skupovima u Pythonu, izračunajte kolizije između spriteova i animirajte spriteove.

Ako ste postavljeni na R

Ako se odlučite za uvod u tečaj programiranja u R, preporučujemo DataCamp-ovu seriju R tečaja: Uvod u R, Srednji R, Srednji R - Praksa i Pisanje funkcija u R. Iako potonja tri imaju cijenu od 25 USD / mjesec, DataCamp je najbolji u kategoriji za pokrivanje programskih osnova i R-specifičnih tema, što se odražava u njegovoj prosječnoj ocjeni od 4,29 / 5 zvjezdica.

Vjerujemo da je najbolji pristup učenju programiranja za znanost o podacima pomoću mrežnih tečajeva učiniti prvo putem Pythona. Zašto? Nedostaju MOOC opcije koje podučavaju temeljna programska načela i koriste R kao jezik poduke. Pronašli smo šest takvih R tečaja koji odgovaraju našim kriterijima za testiranje, u usporedbi s dvadeset i dva tečaja temeljenih na Pythonu. Većina R tečajeva nije dobila sjajne ocjene i nije zadovoljila većinu naših subjektivnih kriterija testiranja.

Analiza serije je sljedeća:

Uvod u R

Predviđeno vrijeme: 4 sata

Poglavlja:

  1. Uvod u osnove
  2. Vektori
  3. Matrice
  4. Čimbenici
  5. Okviri podataka
  6. Popisi

Srednji R

Predviđeno vrijeme: 6 sati

Poglavlja:

  1. Kondicionali i kontrola protoka
  2. Petlje
  3. Funkcije
  4. Obitelj koja se prijavljuje
  5. Komunalije

Srednji R - vježba

Predviđeno vrijeme: 4 sata

Ovaj nastavak tečaja o srednjem R ne obuhvaća nove programske koncepte. Umjesto toga, pojačat ćete svoje znanje o temama u srednjem R s hrpom novih i zabavnih vježbi.

Funkcije pisanja u R

Predviđeno vrijeme: 4 sata

Poglavlja:

  1. Brzo osvježenje
  2. Kada i kako biste trebali napisati funkciju
  3. Funkcionalno programiranje
  4. Napredni ulazi i izlazi
  5. Robusne funkcije

Druga opcija za R bila bi pohađanje tečaja programiranja koji se temelji na Pythonu kako bi se obuhvatile osnove programiranja, a zatim pokupiti R sintaksu s tečajem R osnova. To sam i učinio, ali učinio sam to s Udacity-ovom analizom podataka s R. Uspjelo mi je.

Također možete pokupiti R s našom glavnom preporukom za klasu statistike, koja podučava osnove R kroz kodiranje problema sa statistikom.

Natjecanje

Naš odabir # 1 i 2 imao je prosjek ponderiran s 4,71 i 4,93 zvjezdice preko 284, odnosno 6.069 recenzija. Pogledajmo ostale alternative.

Tečajevi Pythona (silazni prosjek ocjena)

  • Programiranje za sve (Početak rada s Pythonom) i Python Data Strukture (Sveučilište u Michiganu / Coursera): još jedna izvrsna opcija. Ima i sjajnog učitelja (dr. Charles "Chuck" Severance). Ova je serija bila blizu uzurpiranja našeg izbora broj 1 jer se podudara s ocjenom i većinom subjektivnih kriterija. Međutim, ovaj je tečaj nježniji, a recenzenti napominju da vas možda neće pripremiti kao i druge mogućnosti. Sam dr. Chuck napomenuo je da je ovaj tečaj most prema naprednijim tečajevima programiranja: „ Predložio bih da nakon što studenti završe moj tečaj Pythona, ako ih zanima više programiranja, pohađaju tečaj Rice. ”Također smo smatrali da su recenzije za naš odabir br. 1 bile oduševljenije. Ima ponderiranu prosječnu ocjenu s 4,8 zvjezdice s više od 4800+ recenzija.
  • Python AZ: Python za znanost o podacima sa stvarnim vježbama (Udemy): košta i ima ponderiranu prosječnu ocjenu s 4,7 zvjezdice na 52 recenzije.
  • Automatizirajte dosadne stvari pomoću Python programiranja (Udemy): košta, a prosječna ocjena ponderirana s 4,6 zvjezdice ima više od 2000+ recenzija.
  • Python za početnike: od Nooba do stručnjaka za više od 22 sata (Udemy): košta i ima ponderiranu prosječnu ocjenu s 4,6 zvjezdice na 240 recenzija.
  • Uvod u računalne znanosti i programiranje pomoću Pythona (MIT / edX): još jedna dobra opcija. Ima ponderiranu prosječnu ocjenu s 4,5 zvjezdice tijekom 240 recenzija.
  • Kompletni Python Bootcamp (Udemy): košta, a prosjek ponderirane ocjene od 4,5 zvjezdice ima preko 4700 i više recenzija.
  • Treehouseova serija Python (9 tečajeva): košta. To je popularna opcija, ali nema dovoljno recenzija da bi se moglo procijeniti vrijednost. Ima ponderiranu prosječnu ocjenu s 4,5 zvjezdice tijekom 5 recenzija.
  • Python (Codecademy): interaktivni tečaj bez videa, zasnovan na uređivaču teksta. Ima ponderiranu prosječnu ocjenu s 4,5 zvjezdice u 20 recenzija.
  • Uvod u Python za podatkovnu znanost (Microsoft / edX): ima ponderiranu prosječnu ocjenu s 4,47 zvjezdice tijekom 360 recenzija.
  • Uvod u programiranje Nanodegree (Udacity): on je značajan fokus na web razvoju. To je izvrsna opcija za nekoga tko ne zna koju vrstu programiranja želi raditi. Ima ponderiranu prosječnu ocjenu s 4,4 zvjezdice tijekom 730 recenzija. Imajte na umu da sadrži prvu polovicu popularnog Udacityjevog tečaja "Uvod u računalne znanosti", koji ne odgovara našim kriterijima za uključivanje.
  • CS za sve: Uvod u računalne znanosti i programiranje na Pythonu (Harvey Mudd College / edX): ima vrlo malo recenzija i ponderiranu prosječnu ocjenu s 4,33 zvjezdice u odnosu na 6 recenzija.
  • Programiranje temelja s Pythonom (Udacity): ne pokriva osnove. Ima ponderiranu prosječnu ocjenu s 4 zvjezdice tijekom 7 recenzija.
  • Naučite programirati pomoću Pythona (edX / Sveučilište Texas Arlington): ima ponderiranu prosječnu ocjenu s 4 zvjezdice u 14 recenzija.
  • Naučite kodirati za analizu podataka (Open University / FutureLearn): ima ponderiranu prosječnu ocjenu s 3,5 zvjezdice tijekom 2 recenzije.
  • DataCampova serija Python (3 tečaja): nema recenzija na dva glavna web mjesta za pregled tečaja, ali DataCamp je popularna opcija.
  • Vodič za SoloLearn za Python 3: nema recenzija, ali ima sveobuhvatan kurikulum i posvećenu bazu obožavatelja.
  • Dataquestova Python serija (3 tečaja): nema recenzija, ali ima sveobuhvatan kurikulum i otvorenu bazu obožavatelja.

R tečajevi (opadajući ponderirani prosjek ocjena)

  • R programiranje AZ ™: R za znanost o podacima sa stvarnim vježbama! (Udemy): košta. Ne nudi toliko novca za vaš novac koliko naša # 1 R ponuda. Ocjene su slične, s obzirom na veličinu uzorka. Prosječnu ocjenu s 7,7 zvjezdica ima preko 785 recenzija.
  • Uvod u R za Data Science (Microsoft / edX): ne toliko dubok koliko ponuda DataCampa. Ima ponderiranu prosječnu ocjenu s 4,48 zvjezdice s više od 500 recenzija.
  • R programiranje (Sveučilište Johns Hopkins / Coursera): ne pokriva dovoljno osnove programiranja. Recenzenti napominju da je to teško, i to ne na dobar način. Ima ponderiranu prosječnu ocjenu s 4,04 zvjezdice s više od 900+ recenzija, unatoč ocjeni s 2,5 zvjezdice preko 212 recenzija na Class Central.
  • TryR (CodeSchool): nije dovoljno dug da odgovara kriterijima testiranja i ne pokriva u dovoljnoj mjeri osnove programiranja. Prosječnu ocjenu s 4 zvjezdice ima preko 260 recenzija.
  • Programiranje s R-om za znanost o podacima (Microsoft / edX): više uvod u jezik R, a ne programiranje. Na mjestu tečaja stoji: "Ako imate neko programsko iskustvo i želite saznati više o R, onda ste na pravom mjestu." Prosječnu ocjenu s 3 zvjezdice ima više od 12 recenzija.

Omotavanje

Ovo je prva od šest dijelova koja pokriva najbolje MOOC-ove za pokretanje u polju znanosti o podacima. Obuhvatit će nekoliko drugih temeljnih kompetencija znanosti znanosti: statistiku, postupak znanosti znanosti, vizualizaciju podataka i strojno učenje.

Ako želite naučiti Data Science, pođite nekoliko ovih satova statistike

Sveobuhvatan vodič za mrežne tečajeve statistike i vjerojatnosti. medium.freecodecamp.com Rangirao sam svaki tečaj Uvoda u znanost o podacima na internetu, na temelju tisuća podataka

Sveobuhvatan vodič za mrežni uvod u tečajeve znanosti o podacima. medium.freecodecamp.com

Završni dio bit će sažetak tih tečajeva i najbolji MOOC-ovi za ostale ključne teme kao što su premetanje podataka, baze podataka, pa čak i softverski inženjering.

Ako tražite cjelovit popis MOOC-a za znanost o podacima, možete ih pronaći na stranici predmeta Data Science i Big Data Class Central.

Ako ste uživali čitati ovo, pogledajte neke druge dijelove Class Central:

Evo 250 tečajeva Ivy League koje trenutno možete besplatno pohađati na mreži

250 MOOC-a iz Browna, Columbije, Cornella, Dartmoutha, Harvarda, Penna, Princetona i Yalea. medium.freecodecamp.com 50 najboljih besplatnih internetskih sveučilišnih tečajeva prema podacima

Kad sam u studenom 2011. pokrenuo Class Central, bilo je oko 18 besplatnih internetskih tečajeva i gotovo svi ... medium.freecodecamp.com

Ako imate prijedloge za tečajeve koje sam propustio, javite mi u odgovorima!

Ako vam je ovo korisno, kliknite? pa će ga ovdje vidjeti više ljudi na Mediumu.

Ovo je sažeta verzija izvornog članka objavljenog na Class Central, gdje su uključeni opisi tečaja, nastavni programi i višestruki osvrti.