Se vuoi imparare la scienza dei dati, inizia con una di queste lezioni di programmazione

Un anno fa, ero un fanatico dei numeri senza alcuna conoscenza di programmazione. Dopo aver provato un corso di programmazione online, sono stato così ispirato che mi sono iscritto a uno dei migliori programmi di informatica in Canada.

Due settimane dopo, mi sono reso conto che avrei potuto imparare tutto ciò di cui avevo bisogno tramite edX, Coursera e Udacity. Quindi ho abbandonato.

La decisione non è stata difficile. Potrei imparare il contenuto che volevo più veloce, più efficiente e per una frazione del costo.

Avevo già un diploma universitario e, forse ancora più importante, avevo già l'esperienza universitaria. Pagare $ 30K + per tornare a scuola sembrava irresponsabile.

Ho iniziato a creare il mio master in scienze dei dati utilizzando corsi online poco dopo, dopo aver realizzato che era più adatto a me dell'informatica. Ho analizzato l'introduzione al panorama della programmazione. Ho già seguito diversi corsi e verificato parti di molti altri. Conosco le opzioni e quali competenze sono necessarie se si sta prendendo di mira un ruolo di analista o scienziato di dati.

Per questa guida, ho trascorso oltre 20 ore a cercare ogni singola introduzione online al corso di programmazione offerto ad agosto 2016, estraendo parti chiave di informazioni dai loro programmi e recensioni e compilando le loro valutazioni. Per questo compito, mi sono rivolto a nient'altro che alla comunità open source di Class Central e al suo database con migliaia di valutazioni e recensioni dei corsi.

Home page di Class Central.

Dal 2011, il fondatore di Class Central Dhawal Shah ha tenuto d'occhio i corsi online più che probabilmente chiunque altro al mondo. Dhawal mi ha aiutato personalmente a mettere insieme questo elenco di risorse.

Come abbiamo scelto i corsi da considerare

Ogni corso doveva soddisfare quattro criteri:

  • Introduce la programmazione e, facoltativamente, l'informatica. Vedi "Una nota sulla programmazione vs. informatica" di seguito.
  • Il linguaggio di insegnamento è Python o R. Questi sono di gran lunga i due più popolari linguaggi di programmazione utilizzati nella scienza dei dati.
  • Deve essere un corso online interattivo, quindi niente libri o tutorial testuali. Per quanto riguarda quest'ultimo, i corsi di Codecademy senza video e basati su editor di testo si qualificherebbero, ma non sarebbero rigorosi tutorial di testo come quelli di R tutorial. Sebbene i libri siano modi fattibili per imparare la programmazione, Python e R, questa guida si concentra sui corsi.
  • Deve avere una durata decente: almeno dieci ore in totale per il completamento stimato.
Python e R sono i due linguaggi di programmazione più popolari utilizzati nella scienza dei dati.

Come abbiamo valutato i corsi

Riteniamo di aver seguito tutti gli importanti corsi esistenti e che soddisfano i criteri sopra indicati. Dal momento che apparentemente ci sono centinaia di corsi su Udemy in Python e R, abbiamo scelto di prendere in considerazione solo quelli più recensiti e più votati. C'è una possibilità che abbiamo perso qualcosa, tuttavia. Fateci sapere se pensate che sia così.

Abbiamo compilato la valutazione media e il numero di recensioni da Class Central e altri siti di recensioni. Abbiamo calcolato una valutazione media ponderata per ciascun corso. Se una serie aveva più corsi (come la prima e la seconda parte della Rice University), abbiamo calcolato la valutazione media ponderata per tutti i corsi. Abbiamo anche letto recensioni di testo e utilizzato questo feedback per integrare le valutazioni numeriche.

Abbiamo effettuato chiamate di giudizio del programma soggettivo basate su tre fattori:

  1. Copertura dei fondamenti della programmazione.
  2. Copertura di argomenti più avanzati, ma utili, in programmazione. (Ad esempio, diversi corsi scelgono di non coprire la programmazione orientata agli oggetti. Riteniamo che questo sia un argomento chiave, sebbene non un rompicapo, quindi questi corsi sono solo marchi fissi e non esclusi dalla considerazione.)
  3. Quanto del programma è rilevante per la scienza dei dati?

Una nota sulla programmazione contro l'informatica

La programmazione non è informatica e viceversa. C'è una differenza di cui i principianti potrebbero non essere acutamente consapevoli. Prendendo in prestito questa risposta dallo scambio dello stack dei programmatori:

L'informatica è lo studio di ciò che i computer [possono] fare; la programmazione è la pratica di far fare le cose ai computer.

Il corso che stiamo cercando introduce la programmazione e opzionalmente tocca gli aspetti rilevanti dell'informatica che andrebbero a beneficio di un nuovo programmatore in termini di consapevolezza. Molti dei corsi considerati, noterai, hanno effettivamente una porzione di informatica.

Nessuno dei corsi, tuttavia, sono rigorosamente corsi di informatica, motivo per cui qualcosa come CS50x di Harvard su edX è escluso.

La nostra scelta per il miglior corso di programmazione per data scientist è ...

La serie "Impara a programmare" dell'Università di Toronto su Coursera. LTP1: The Fundamentals e LTP2: Crafting Quality Code hanno una valutazione media ponderata quasi perfetta di 4,71 su 5 stelle su 284 recensioni. Hanno anche un grande mix di difficoltà e portata dei contenuti per il data scientist principiante.

Questa introduzione gratuita e basata su Python alla programmazione si distingue dagli altri 20+ corsi che abbiamo preso in considerazione.

Parte 2 della serie

Jennifer Campbell e Paul Gries, due professori associati nel dipartimento di informatica dell'Università di Toronto (che è considerato uno dei migliori al mondo) insegnano la serie. I corsi Coursera autonomi e autonomi corrispondono al materiale del loro libro, "Programmazione pratica: un'introduzione all'informatica utilizzando Python 3." LTP1 copre il 40-50% del libro e LTP2 copre un altro 40%. Il 10-20% non coperto non è particolarmente utile per la scienza dei dati, il che ha aiutato il loro caso a essere la nostra scelta.

I tuoi istruttori di

I professori mi hanno gentilmente e prontamente inviato su richiesta un programma dettagliato del corso, che era difficile da trovare online prima del riavvio ufficiale del corso a settembre 2016.

Impara a programmare: The Fundamentals (LTP1)

Cronologia: 7 settimane

Impegno di tempo stimato: 6-8 ore settimanali

Questo corso fornisce un'introduzione alla programmazione per computer destinata a persone senza esperienza di programmazione. Descrive le basi della programmazione in Python inclusi i tipi di dati elementari (tipi numerici, stringhe, elenchi, dizionari e file), flusso di controllo, funzioni, oggetti, metodi, campi e mutabilità.

moduli

  1. Installazione di Python, IDLE, espressioni matematiche, variabili, istruzione di assegnazione, chiamata e definizione di funzioni, sintassi ed errori semantici.
  2. Stringhe, input / output, riutilizzo delle funzioni, ricetta di progettazione delle funzioni e docstring.
  3. Istruzioni booleane, importazione, spazi dei nomi e if.
  4. Per loop e manipolazione di stringhe fantasia.
  5. Mentre loop, elenchi e mutabilità.
  6. Per loop su indici, liste e stringhe parallele e file.
  7. Tuple e dizionari.

Impara a programmare: Crafting Quality Code (LTP2)

Cronologia: 5 settimane

Impegno di tempo stimato: 6-8 ore settimanali

Conosci le basi della programmazione in Python: tipi di dati elementari (tipi numerici, stringhe, elenchi, dizionari e file), flusso di controllo, funzioni, oggetti, metodi, campi e mutabilità. Devi essere bravo in questi per avere successo in questo corso.

LTP: Crafting Quality Code copre i prossimi passi: progettare programmi più grandi, testare il codice in modo che tu sappia che funziona, leggere il codice per capire quanto sia efficiente e creare i tuoi tipi.

moduli

  1. Progettare algoritmi: come decidete cosa fare in un corpo di funzione? Come capisci quali funzioni scrivere in primo luogo?
  2. Test automatizzati: doctest e unittest.
  3. Analisi del codice per la velocità: dettagli sulla ricerca e l'ordinamento.
  4. Creazione di nuovi tipi: classi in Python.
  5. Funziona come argomenti, valori di parametri predefiniti ed eccezioni.

Il professore associato Gries ha anche fornito il seguente commento sulla struttura del corso: “Ogni modulo ha tra circa 45 minuti e poco più di un'ora di video. Ci sono domande in quiz sul video, che porteranno il tempo totale impiegato a studiare i video a forse 2 ore ".

Questi video sono generalmente più brevi di dieci minuti ciascuno.

Ha continuato: “Inoltre, abbiamo un esercizio (una dozzina o due o più domande a risposta multipla e domande a risposta breve) per modulo, che dovrebbe richiedere un'ora o due. Esistono tre incarichi di programmazione in LTP1, ognuno dei quali potrebbe richiedere dalle quattro alle otto ore di lavoro. Esistono due incarichi di programmazione in LTP2 di dimensioni simili. "

Ha sottolineato che la stima di 6-8 ore settimanali è un'ipotesi approssimativa: “La stima del tempo trascorso è incredibilmente dipendente dallo studente, quindi per favore prendi le mie stime in quel contesto. Ad esempio, qualcuno che conosce un po 'di programmazione, forse in un altro linguaggio di programmazione, potrebbe impiegare metà del tempo di qualcuno completamente nuovo nella programmazione. A volte qualcuno rimarrà bloccato su un concetto per un paio d'ore, mentre potrebbe soffiare su altri concetti ... Questo è uno dei motivi per cui il formato auto-stimolante è così attraente per noi ".

In totale, la serie Learn to Program dell'Università di Toronto ha una durata stimata di 12 settimane a 6-8 ore settimanali, il che rappresenta uno standard per la maggior parte dei corsi online creati dalle università. Se preferisci studiare a fondo i tuoi MOOC, sono 72-96 ore, che potrebbero essere completati in due o tre settimane, soprattutto se hai un po 'di esperienza di programmazione.

Un'altra fantastica opzione Python

Se hai già una certa familiarità con la programmazione e non ti dispiace un programma che ha una notevole inclinazione verso i giochi e le applicazioni interattive, consiglierei anche un'Introduzione alla programmazione interattiva di Rice University in Python (Parte 1 e Parte 2) su Coursera.

Con oltre 6.000 recensioni e la valutazione media ponderata più alta di 4,93 / 5 stelle, questo popolare corso è noto per i suoi video coinvolgenti, quiz stimolanti e mini progetti divertenti. È leggermente più difficile e si concentra meno sui fondamenti e più sugli argomenti che non sono applicabili nella scienza dei dati rispetto alla nostra scelta n. 1.

Questi corsi fanno anche parte dei Principi dei 7 corsi di specializzazione informatica su Coursera.

CodeSkulptor: ambiente di programmazione Python basato su browser utilizzato per i MOOC della Rice University.

I materiali sono personalizzati e gratuiti ed è disponibile un certificato a pagamento. Il corso deve essere acquistato per $ 79 (USD) per l'accesso ai materiali classificati.

Pagina Coursera della Rice University.

La descrizione del corso condensato e il programma completo sono i seguenti:

"Questo corso in due parti è progettato per aiutare gli studenti con un background informatico molto scarso o nullo ad apprendere le basi della creazione di semplici applicazioni interattive ... Per semplificare l'apprendimento di Python, abbiamo sviluppato un nuovo ambiente di programmazione basato su browser che consente di sviluppare applicazioni interattive in Python semplice. Queste applicazioni coinvolgono finestre il cui contenuto è grafico e rispondono a pulsanti, tastiera e mouse.

Background consigliato: è richiesta una conoscenza della matematica delle scuole superiori. Mentre la classe è progettata per studenti che non hanno precedenti esperienze di programmazione, alcuni programmatori principianti hanno visto la classe come un ritmo veloce. Per gli studenti interessati a una leggera preparazione prima dell'inizio della lezione, raccomandiamo un sito di apprendimento Python a ritmo personale come codecademy.com. ”

Parte 1

Cronologia: 5 settimane

Impegno di tempo stimato: 7–10 ore settimanali

Settimana 0 - dichiarazioni, espressioni, variabili
 Comprendi la struttura di questa classe ed esplora Python come una calcolatrice.

Settimana 1: funzioni, logica, condizionali
 Impara i costrutti di base della programmazione Python e crea un programma che riproduce una variante di Rock-Paper-Scissors.

Settimana 2 - programmazione guidata dagli eventi, variabili locali / globali
 Impara le basi della programmazione guidata dagli eventi, capisci la differenza tra variabili locali e globali e crea un programma interattivo che gioca a un semplice gioco d'ipotesi.

Settimana 3: tela, disegno, timer
 Crea una tela in Python, impara a disegnare sulla tela e crea un cronometro digitale.

Settimana 4: elenchi, input da tastiera, basi del movimento di modellazione
 Impara le basi degli elenchi in Python, modella oggetti in movimento in Python e ricrea il classico gioco arcade "Pong".

Parte 2

Settimana 5: input del mouse, metodi elenco, dizionari
 Leggi l'input del mouse, scopri i metodi di elenco e i dizionari e disegna immagini.
 
Settimana 6 - lezioni e programmazione orientata agli oggetti
 Impara le basi della programmazione orientata agli oggetti in Python usando le classi e lavora con immagini affiancate.

Settimana 7 - fisica di gioco di base, sprite
 Comprendi la matematica dell'accelerazione e dell'attrito, lavora con gli sprite e aggiungi il suono al tuo gioco.

Settimana 8 - set e animazione
 Scopri i set in Python, calcola le collisioni tra gli sprite e anima gli sprite.

Se si è impostato su R

Se sei pronto per un'introduzione al corso di programmazione in R, ti consigliamo la serie di corsi R di DataCamp: Introduzione a R, Intermediate R, Intermediate R - Practice e funzioni di scrittura in R. Sebbene gli ultimi tre abbiano un prezzo di $ 25 / mese, DataCamp è il migliore nella categoria per coprire i fondamenti di programmazione e gli argomenti specifici di R, che si riflette nella sua valutazione media di 4,29 / 5 stelle.

I primi tre corsi della serie di corsi R di DataCamp.

Riteniamo che l'approccio migliore all'apprendimento della programmazione per la scienza dei dati mediante corsi online sia quello di farlo prima attraverso Python. Perché? Mancano le opzioni MOOC che insegnano i principi di programmazione di base e usano R come lingua di insegnamento. Abbiamo trovato sei di questi corsi R che soddisfano i nostri criteri di test, rispetto ai ventidue corsi basati su Python. La maggior parte dei corsi R non ha ricevuto ottime valutazioni e non ha soddisfatto la maggior parte dei nostri criteri di test soggettivi.

Sito Web di DataCamp.

La suddivisione in serie è la seguente:

Introduzione a R

Impegno di tempo stimato: 4 ore

capitoli:

  1. Introduzione alle basi
  2. Vettori
  3. matrici
  4. fattori
  5. Frame di dati
  6. elenchi

Intermedio R

Impegno di tempo stimato: 6 ore

capitoli:

  1. Condizionali e flusso di controllo
  2. Loops
  3. funzioni
  4. La famiglia di applicare
  5. Utilità

Intermedio R - Pratica

Impegno di tempo stimato: 4 ore

Questo corso di follow-up sulla R intermedia non copre nuovi concetti di programmazione. Invece, rafforzerai la tua conoscenza degli argomenti nella R intermedia con un sacco di esercizi nuovi e divertenti.

Funzioni di scrittura in R

Impegno di tempo stimato: 4 ore

capitoli:

  1. Un rapido aggiornamento
  2. Quando e come dovresti scrivere una funzione
  3. Programmazione funzionale
  4. Ingressi e uscite avanzati
  5. Funzioni robuste

Un'altra opzione per R sarebbe quella di fare un'introduzione al corso di programmazione basata su Python per coprire i fondamenti della programmazione, e quindi raccogliere la sintassi R con un corso di base R. Questo è quello che ho fatto, ma l'ho fatto con l'analisi dei dati di Udacity con R. Ha funzionato bene per me.

Puoi anche prendere R con la nostra migliore raccomandazione per una lezione di statistica, che insegna le basi di R attraverso la codifica dei problemi di statistica.

La competizione

Le nostre scelte n. 1 e n. 2 avevano una valutazione media ponderata di 4,71 e 4,93 stelle rispettivamente su 284 e 6,069 recensioni. Diamo un'occhiata alle altre alternative.

Corsi Python (valutazione media ponderata discendente)

  • Programmazione per tutti (Introduzione a Python) e Python Data Structures (Università del Michigan / Coursera): un'altra grande opzione. Ha anche un grande insegnante (Dr. Charles "Chuck" Severance). Questa serie si avvicina all'usurpazione della nostra scelta n. 1 perché corrisponde alla valutazione e alla maggior parte dei criteri soggettivi. Questo corso è più delicato, tuttavia, con i revisori che notano che potrebbe non prepararti così come altre opzioni. Il dott. Chuck stesso ha osservato che questo corso è un ponte verso corsi di programmazione più avanzati: "Suggerirei che dopo che gli studenti avessero completato il mio corso Python, se fossero interessati a una maggiore programmazione, avrebbero seguito il corso Rice." le recensioni per la nostra scelta n. 1 erano più entusiaste. Ha una valutazione media ponderata di 4.8 stelle su 4.800+ recensioni.
  • Python A-Z: Python per la scienza dei dati con esercizi reali (Udemy): costa denaro e ha una valutazione media ponderata di 4,7 stelle su 52 recensioni.
  • Automatizza le noiose cose con la programmazione Python (Udemy): costa denaro e ha una valutazione media ponderata di 4,6 stelle su oltre 2.000 recensioni.
  • Python per principianti: da Noob a Expert in 22+ Hours (Udemy): costa denaro e ha una valutazione media ponderata di 4,6 stelle su 240 recensioni.
  • Introduzione all'informatica e alla programmazione con Python (MIT / edX): un'altra buona opzione. Ha una valutazione media ponderata di 4.5 stelle su 240 recensioni.
  • Python Bootcamp completo (Udemy): costa denaro e ha una valutazione media ponderata di 4,5 stelle su oltre 4.700 recensioni.
  • Serie Python della casa sull'albero (9 corsi): costa denaro. È un'opzione popolare, ma non ci sono recensioni sufficienti per dare un giudizio di valore. Ha una valutazione media ponderata di 4,5 stelle su 5 recensioni.
  • Python (Codecademy): corso interattivo senza video, basato su editor di testo. Ha una valutazione media ponderata di 4.5 stelle su 20 recensioni.
  • Introduzione a Python for Data Science (Microsoft / edX): ha una valutazione media ponderata di 4,47 stelle su 360 recensioni.
  • Introduzione alla programmazione di nanodegree (Udacity): si concentra notevolmente sullo sviluppo web. È un'ottima opzione per qualcuno che non sa che tipo di programmazione vuole fare. Ha una valutazione media ponderata di 4,4 stelle su 730 recensioni. Tieni presente che contiene la prima metà del famoso corso "Intro to Computer Science" di Udacity, che non corrisponde ai nostri criteri di inclusione.
  • CS For All: Introduzione all'informatica e alla programmazione Python (Harvey Mudd College / edX): ha pochissime recensioni e una valutazione media ponderata di 4,33 stelle su 6 recensioni.
  • Programmazione delle basi con Python (Udacity): non copre i fondamenti. Ha una valutazione media ponderata a 4 stelle su 7 recensioni.
  • Impara a programmare usando Python (edX / University of Texas Arlington): ha una valutazione media ponderata a 4 stelle su 14 recensioni.
  • Impara a programmare l'analisi dei dati (The Open University / FutureLearn): ha una valutazione media ponderata di 3,5 stelle su 2 recensioni.
  • Serie Python di DataCamp (3 corsi): non ha recensioni sui due principali siti di recensioni dei corsi, ma DataCamp è un'opzione popolare.
  • Tutorial Python 3 di SoloLearn: non ha recensioni, ma ha un curriculum completo e una base di fan dedicata.
  • Serie Python di Dataquest (3 corsi): non ha recensioni, ma ha un curriculum completo e una fanbase esplicita.

Corsi R (valutazione media ponderata discendente)

  • R Programmazione A-Z ™: R per la scienza dei dati con esercizi reali! (Udemy): costa denaro. Non offre la stessa convenienza della nostra offerta numero 1 R. Le valutazioni sono simili, considerando la dimensione del campione. Ha una valutazione media ponderata di 4,7 stelle su 785 recensioni.
  • Introduzione a R for Data Science (Microsoft / edX): non tanto profonda quanto l'offerta di DataCamp. Ha una valutazione media ponderata di 4,48 stelle oltre 500 recensioni.
  • R Programming (Johns Hopkins University / Coursera): non copre sufficientemente le basi della programmazione. I recensori notano che è difficile e non in senso positivo. Ha una valutazione media ponderata di 4.04 stelle su oltre 900+ recensioni, nonostante una valutazione di 2,5 stelle su 212 recensioni su Class Central.
  • TryR (CodeSchool): non è abbastanza lungo per soddisfare i criteri di test e non copre sufficientemente i fondamenti della programmazione. Ha una valutazione media ponderata a 4 stelle su 260 recensioni.
  • Programmazione con R per Data Science (Microsoft / edX): più di un'introduzione al linguaggio R piuttosto che alla programmazione. Il sito del corso afferma: "Se hai qualche esperienza di programmazione e desideri saperne di più su R, allora sei nel posto giusto". Ha una valutazione media ponderata a 3 stelle su 12 recensioni.

Avvolgendolo

Questo è il primo di una serie di sei pezzi che copre i migliori MOOC per lanciarsi nel campo della scienza dei dati. Coprirà diverse altre competenze chiave relative alla scienza dei dati: statistiche, processo di scienza dei dati, visualizzazione dei dati e apprendimento automatico.

Il pezzo finale sarà un riepilogo di quei corsi e i migliori MOOC per altri argomenti chiave come la lotta ai dati, i database e persino l'ingegneria del software.

Se stai cercando un elenco completo dei MOOC di Data Science, puoi trovarli nella pagina tematica Data Science e Big Data di Class Central.

Se ti è piaciuto leggere questo, dai un'occhiata ad altri brani di Class Central:

Se hai suggerimenti per i corsi che ho perso, fammelo sapere nelle risposte!

Se lo hai trovato utile, fai clic su in modo che più persone lo vedano qui su Medium.

Questa è una versione ridotta dell'articolo originale pubblicato su Class Central, in cui sono inclusi descrizioni dei corsi, programmi e recensioni multiple.