Si vous souhaitez apprendre la science des données, commencez par l'un de ces cours de programmation

Il y a un an, j'étais un geek des nombres sans expérience en codage. Après avoir essayé un cours de programmation en ligne, j'ai été tellement inspiré que je me suis inscrit à l'un des meilleurs programmes d'informatique au Canada.

Deux semaines plus tard, j'ai réalisé que je pouvais apprendre tout ce dont j'avais besoin via edX, Coursera et Udacity à la place. Alors j'ai abandonné.

La décision n'a pas été difficile. J'ai pu apprendre le contenu que je voulais plus rapidement, plus efficacement et pour une fraction du coût.

J'avais déjà un diplôme universitaire et, peut-être plus important encore, j'avais déjà une expérience universitaire. Payer plus de 30 000 $ pour retourner à l'école semblait irresponsable.

J'ai commencé à créer mon propre master en science des données en utilisant des cours en ligne peu de temps après, après avoir réalisé que c'était mieux pour moi que l'informatique. J'ai parcouru l'introduction au paysage de la programmation. J'ai déjà suivi plusieurs cours et vérifié des parties de beaucoup d'autres. Je connais les options et les compétences nécessaires si vous ciblez un rôle d'analyste de données ou de scientifique de données.

Pour ce guide, j'ai passé plus de 20 heures à essayer de trouver chaque cours d'introduction en ligne à la programmation proposé à partir d'août 2016, à extraire des informations clés de leurs programmes et critiques, et à compiler leurs notes. Pour cette tâche, je me suis tourné vers nul autre que la communauté open source Class Central et sa base de données de milliers de notes et de critiques de cours.

Depuis 2011, le fondateur de Class Central, Dhawal Shah, a surveillé de plus près les cours en ligne que quiconque dans le monde. Dhawal m'a personnellement aidé à rassembler cette liste de ressources.

Comment nous avons choisi les cours à considérer

Chaque cours devait répondre à quatre critères:

  • Il introduit la programmation et, éventuellement, l'informatique . Voir «Une note sur la programmation par rapport à l'informatique» ci-dessous.
  • Le langage d'enseignement est Python ou R. Ce sont de loin les deux langages de programmation les plus utilisés en science des données.
  • Il doit s'agir d'un cours en ligne interactif, donc pas de livres ou de didacticiels textuels. En ce qui concerne ce dernier, les cours sans vidéo et basés sur l'éditeur de texte de Codecademy seraient admissibles, mais les didacticiels de texte stricts comme ceux du didacticiel R. ne le seraient pas. Bien que les livres soient des moyens viables d'apprendre la programmation, Python et R, ce guide se concentre sur les cours.
  • Il doit être d'une durée décente: au moins dix heures au total pour l'achèvement estimé.

Comment nous avons évalué les cours

Nous pensons avoir couvert tous les cours notables qui existent et qui répondent aux critères ci-dessus. Puisqu'il existe apparemment des centaines de cours sur Udemy en Python et R, nous avons choisi de ne considérer que les plus évalués et les mieux notés. Il y a cependant une chance que nous ayons manqué quelque chose. S'il vous plaît laissez-nous savoir si vous pensez que c'est le cas.

Nous avons compilé la note moyenne et le nombre d'avis de Class Central et d'autres sites d'avis. Nous avons calculé une note moyenne pondérée pour chaque cours. Si une série comportait plusieurs cours (comme les parties 1 et 2 de l'Université Rice), nous avons calculé la note moyenne pondérée pour tous les cours. Nous avons également lu des critiques de texte et avons utilisé ces commentaires pour compléter les évaluations numériques.

Nous avons fait des appels de jugement subjectifs du programme en fonction de trois facteurs:

  1. Couverture des principes fondamentaux de la programmation.
  2. Couverture de sujets plus avancés, mais utiles, en programmation. (Par exemple, plusieurs cours choisissent de ne pas couvrir la programmation orientée objet. Nous pensons que c'est un sujet clé, mais pas un facteur décisif, donc ces cours ne sont que des points d'ancrage et ne sont pas exclus de l'examen.)
  3. Dans quelle mesure le programme est-il pertinent pour la science des données?

Une note sur la programmation par rapport à l'informatique

La programmation n'est pas de l'informatique et vice versa. Il y a une différence dont les débutants peuvent ne pas être parfaitement conscients. Emprunter cette réponse de Programmers Stack Exchange:

L'informatique est l'étude de ce que les ordinateurs [peuvent] faire; la programmation consiste à faire faire des choses aux ordinateurs.

Le cours que nous recherchons introduit la programmation et aborde éventuellement des aspects pertinents de l'informatique qui profiteraient à un nouveau programmeur en termes de sensibilisation. Bon nombre des cours considérés, vous le remarquerez, comportent effectivement une partie informatique.

Cependant, aucun des cours n'est strictement informatique, c'est pourquoi quelque chose comme le CS50x de Harvard sur edX est exclu.

Notre choix pour le meilleur cours de programmation pour les scientifiques des données est…

Série «Apprendre à programmer» de l'Université de Toronto sur Coursera. LTP1: The Fundamentals et LTP2: Crafting Quality Code ont une note moyenne pondérée presque parfaite de 4,71 étoiles sur 5 sur 284 avis. Ils ont également un excellent mélange de difficulté de contenu et de portée pour le scientifique des données débutant.

Cette introduction gratuite à la programmation basée sur Python se distingue des 20 autres cours que nous avons envisagés.

Jennifer Campbell et Paul Gries, deux professeurs agrégés du département d'informatique de l'Université de Toronto (considéré comme l'un des meilleurs au monde) enseignent la série. Les cours autonomes et autonomes de Coursera correspondent au contenu de leur livre, «Programmation pratique: une introduction à l'informatique à l'aide de Python 3.» LTP1 couvre 40 à 50% du livre et LTP2 en couvre 40%. Les 10 à 20% non couverts ne sont pas particulièrement utiles pour la science des données, ce qui les a aidés à être notre choix.

Les professeurs m'ont gentiment et rapidement envoyé des plans de cours détaillés sur demande, qui étaient difficiles à trouver en ligne avant le redémarrage officiel du cours en septembre 2016.

Apprendre à programmer: les principes de base (LTP1)

Calendrier: 7 semaines

Durée estimée de l'engagement: 6 à 8 heures par semaine

Ce cours fournit une introduction à la programmation informatique destinée aux personnes sans expérience en programmation. Il couvre les bases de la programmation en Python, y compris les types de données élémentaires (types numériques, chaînes, listes, dictionnaires et fichiers), le flux de contrôle, les fonctions, les objets, les méthodes, les champs et la mutabilité.

Modules

  1. Installation de Python, IDLE, expressions mathématiques, variables, instruction d'affectation, appel et définition de fonctions, syntaxe et erreurs sémantiques.
  2. Chaînes, entrée / sortie, réutilisation de fonction, recette de conception de fonction et docstrings.
  3. Booléens, importation, espaces de noms et instructions if.
  4. Pour les boucles et la manipulation de cordes fantaisie.
  5. Tandis que les boucles, les listes et la mutabilité.
  6. Pour les boucles sur les index, les listes et chaînes parallèles et les fichiers.
  7. Tuples et dictionnaires.

Apprendre à programmer: Code de qualité de fabrication (LTP2)

Calendrier: 5 semaines

Durée estimée de l'engagement: 6 à 8 heures par semaine

Vous connaissez les bases de la programmation en Python: types de données élémentaires (types numériques, chaînes, listes, dictionnaires et fichiers), flux de contrôle, fonctions, objets, méthodes, champs et mutabilité. Vous devez être bon dans ces domaines pour réussir dans ce cours.

LTP: Crafting Quality Code couvre les étapes suivantes: concevoir des programmes plus volumineux, tester votre code pour que vous sachiez qu'il fonctionne, lire le code pour comprendre son efficacité et créer vos propres types.

Modules

  1. Conception d'algorithmes: comment décidez-vous quoi faire dans un corps de fonction? Comment déterminez-vous quelles fonctions écrire en premier lieu?
  2. Tests automatisés: doctest et unittest.
  3. Analyse du code pour la vitesse - détails de la recherche et du tri.
  4. Création de nouveaux types: classes en Python.
  5. Fonctionne comme arguments, valeurs de paramètre par défaut et exceptions.

Le professeur agrégé Gries a également fait le commentaire suivant sur la structure du cours: «Chaque module comprend entre environ 45 minutes et un peu plus d'une heure de vidéo. Il y a des questions de quiz en vidéo, ce qui portera le temps total passé à étudier les vidéos à environ 2 heures. "

Ces vidéos durent généralement moins de dix minutes chacune.

Il a poursuivi: «De plus, nous avons un exercice (une douzaine ou deux questions à choix multiples et à réponses courtes) par module, ce qui devrait prendre une heure ou deux. Il y a trois affectations de programmation dans LTP1, chacune pouvant prendre de quatre à huit heures de travail. Il existe deux affectations de programmation dans LTP2 de taille similaire. »

Il a souligné que l'estimation de 6 à 8 heures par semaine est une estimation approximative: «L'estimation du temps passé dépend incroyablement de l'étudiant, alors veuillez prendre mes estimations dans ce contexte. Par exemple, quelqu'un qui connaît un peu la programmation, peut-être dans un autre langage de programmation, pourrait prendre la moitié du temps de quelqu'un de complètement nouveau dans la programmation. Parfois, quelqu'un reste bloqué sur un concept pendant quelques heures, alors qu'il peut se frayer un chemin sur d'autres concepts… C'est l'une des raisons pour lesquelles le format à rythme personnalisé nous attire tant.

Au total, la série Apprendre à programmer de l'Université de Toronto dure environ 12 semaines à raison de 6 à 8 heures par semaine, ce qui est à peu près la norme pour la plupart des cours en ligne créés par les universités. Si vous préférez étudier de manière excessive vos MOOC, cela représente 72 à 96 heures, ce qui pourrait être réalisé en deux à trois semaines, surtout si vous avez un peu d'expérience en programmation.

Une autre excellente option Python

Si vous avez déjà une certaine familiarité avec la programmation et que cela ne vous dérange pas un programme qui a un biais notable vers les jeux et les applications interactives, je recommanderais également An Introduction to Interactive Programming in Python (Partie 1 et Partie 2) sur Coursera.

Avec plus de 6000 avis et la note moyenne pondérée la plus élevée de 4,93 / 5 étoiles, ce cours populaire est connu pour ses vidéos attrayantes, ses quiz stimulants et ses mini-projets agréables. C'est un peu plus difficile et se concentre moins sur les fondamentaux et plus sur des sujets qui ne sont pas applicables en science des données que notre choix n ° 1.

Ces cours font également partie des 7 cours de spécialisation Principes en informatique sur Coursera.

Le matériel est gratuit et personnalisé et un certificat payant est disponible. Le cours doit être acheté pour 79 $ (USD) pour accéder aux matériaux notés.

La description condensée du cours et le programme complet sont les suivants:

«Ce cours en deux parties est conçu pour aider les étudiants ayant très peu ou pas de connaissances en informatique à apprendre les bases de la création d'applications interactives simples… Pour faciliter l'apprentissage de Python, nous avons développé un nouvel environnement de programmation basé sur un navigateur qui permet de développer des applications interactives en Python. Facile. Ces applications impliqueront des fenêtres dont le contenu est graphique et répondent aux boutons, au clavier et à la souris.

Contexte recommandé: Une connaissance des mathématiques au secondaire est requise. Alors que la classe est conçue pour les étudiants sans expérience préalable en programmation, certains programmeurs débutants ont considéré la classe comme étant rapide . Pour les étudiants intéressés par une préparation légère avant le début du cours, nous recommandons un site d'apprentissage Python à leur rythme tel que codecademy.com.

Partie 1

Calendrier: 5 semaines

Durée estimée de l'engagement: 7 à 10 heures par semaine

Semaine 0 - déclarations, expressions, variables

Comprenez la structure de cette classe et explorez Python en tant que calculatrice.

Semaine 1 - fonctions, logique, conditions

Apprenez les constructions de base de la programmation Python et créez un programme qui joue une variante de Rock-Paper-Scissors.

Semaine 2 - Programmation événementielle, variables locales / globales

Apprenez les bases de la programmation événementielle, comprenez la différence entre les variables locales et globales et créez un programme interactif qui joue un jeu de devinettes simple.

Semaine 3 - toile, dessin, minuteries

Créez une toile en Python, apprenez à dessiner sur la toile et créez un chronomètre numérique.

Semaine 4 - listes, saisie au clavier, les bases de la modélisation du mouvement

Apprenez les bases des listes en Python, modélisez des objets en mouvement en Python et recréez le jeu d'arcade classique «Pong».

Partie 2

Semaine 5 - Saisie de la souris, méthodes de liste, dictionnaires

Lisez les entrées de la souris, découvrez les méthodes de liste et les dictionnaires et dessinez des images.

Semaine 6 - classes et programmation orientée objet

Apprenez les bases de la programmation orientée objet en Python à l'aide de classes et travaillez avec des images en mosaïque.

Semaine 7 - Physique de base du jeu, sprites

Comprenez les mathématiques de l'accélération et du frottement, travaillez avec des sprites et ajoutez du son à votre jeu.

Semaine 8 - décors et animation

Découvrez les ensembles en Python, calculez les collisions entre les sprites et animez les sprites.

Si vous êtes sur R

Si vous souhaitez suivre un cours d'introduction à la programmation en R, nous vous recommandons la série de cours R de DataCamp: Introduction à R, Intermédiaire R, Intermédiaire R - Fonctions d'entraînement et d'écriture en R. Bien que les trois derniers soient proposés à un prix de 25 $ / mois, DataCamp est le meilleur dans sa catégorie pour couvrir les fondamentaux de la programmation et les sujets spécifiques à R, ce qui se reflète dans sa note moyenne de 4,29 / 5 étoiles.

Nous pensons que la meilleure approche pour apprendre la programmation de la science des données à l'aide de cours en ligne est de le faire d'abord via Python. Pourquoi? Il y a un manque d'options MOOC qui enseignent les principes de programmation de base et utilisent R comme langue d'enseignement. Nous avons trouvé six de ces cours R qui correspondent à nos critères de test, contre vingt-deux cours basés sur Python. La plupart des cours R n'ont pas reçu de bonnes notes et n'ont pas satisfait à la plupart de nos critères de test subjectifs.

La répartition des séries est la suivante:

Introduction à R

Engagement de temps estimé: 4 heures

Chapitres:

  1. Introduction aux bases
  2. Vecteurs
  3. Matrices
  4. Facteurs
  5. Trames de données
  6. Listes

Intermédiaire R

Engagement de temps estimé: 6 heures

Chapitres:

  1. Conditions et flux de contrôle
  2. Boucles
  3. Les fonctions
  4. La famille Apply
  5. Utilitaires

Intermédiaire R - Pratique

Engagement de temps estimé: 4 heures

Ce cours de suivi sur l'intermédiaire R ne couvre pas les nouveaux concepts de programmation. Au lieu de cela, vous renforcerez votre connaissance des sujets de l'intermédiaire R avec un tas d'exercices nouveaux et amusants.

Écriture de fonctions dans R

Engagement de temps estimé: 4 heures

Chapitres:

  1. Un rappel rapide
  2. Quand et comment écrire une fonction
  3. Programmation fonctionnelle
  4. Entrées et sorties avancées
  5. Fonctions robustes

Une autre option pour R serait de suivre un cours d'introduction à la programmation basé sur Python pour couvrir les bases de la programmation, puis de choisir la syntaxe R avec un cours de base sur R. C'est ce que j'ai fait, mais je l'ai fait avec l'analyse des données d'Udacity avec R. Cela a bien fonctionné pour moi.

Vous pouvez également choisir R avec notre principale recommandation pour une classe de statistiques, qui enseigne les bases de R en codant des problèmes de statistiques.

La compétition

Nos choix n ° 1 et n ° 2 ont obtenu une note moyenne pondérée de 4,71 et 4,93 étoiles sur 284 et 6069 avis, respectivement. Regardons les autres alternatives.

Cours Python (notes moyennes pondérées décroissantes)

  • Programming for Everybody (Getting Started with Python) et Python Data Structures (University of Michigan / Coursera): une autre excellente option. Il a également un excellent professeur (Dr. Charles «Chuck» Severance). Cette série a failli usurper notre choix n ° 1 car elle correspondait à la notation et à la plupart des critères subjectifs. Ce cours est cependant plus doux, les critiques notant qu'il pourrait ne pas vous préparer aussi bien que d'autres options. Le Dr Chuck a lui-même noté que ce cours est une passerelle vers des cours de programmation plus avancés: « Je suggérerais qu'après que les étudiants aient terminé mon cours Python, s'ils sont intéressés par plus de programmation, ils suivent le cours Rice. «Nous avons également estimé que les critiques de notre premier choix étaient plus enthousiastes. Il a une note moyenne pondérée de 4,8 étoiles sur plus de 4800 avis.
  • Python AZ: Python pour la science des données avec de vrais exercices (Udemy): il coûte de l'argent et a une note moyenne pondérée de 4,7 étoiles sur 52 avis.
  • Automatisez les choses ennuyeuses avec la programmation Python (Udemy): cela coûte de l'argent et a une note moyenne pondérée de 4,6 étoiles sur plus de 2000 avis.
  • Python pour les débutants: de Noob à Expert en plus de 22 heures (Udemy): il coûte de l'argent et a une note moyenne pondérée de 4,6 étoiles sur 240 avis.
  • Introduction à l'informatique et à la programmation en utilisant Python (MIT / edX): une autre bonne option. Il a reçu une note moyenne pondérée de 4,5 étoiles sur 240 avis.
  • Complete Python Bootcamp (Udemy): il coûte de l'argent et a une note moyenne pondérée de 4,5 étoiles sur plus de 4700 avis.
  • Série Python de Treehouse (9 cours): ça coûte de l'argent. C'est une option populaire, mais il n'y a pas assez d'avis pour porter un jugement de valeur. Il a une note moyenne pondérée de 4,5 étoiles sur 5 avis.
  • Python (Codecademy): cours interactif sans vidéo, basé sur un éditeur de texte. Il a une note moyenne pondérée de 4,5 étoiles sur 20 avis.
  • Introduction à Python pour la science des données (Microsoft / edX): il a une note moyenne pondérée de 4,47 étoiles sur 360 avis.
  • Introduction à la programmation Nanodegree (Udacity): il se concentre sur le développement Web. C'est une excellente option pour quelqu'un qui ne sait pas quel type de programmation il veut faire. Il a une note moyenne pondérée de 4,4 étoiles sur 730 avis. Notez qu'il contient la première moitié du cours populaire «Introduction à l'informatique» d'Udacity, qui ne correspond pas à nos critères d'inclusion.
  • CS For All: Introduction à l'informatique et à la programmation Python (Harvey Mudd College / edX): il a très peu d'avis et une note moyenne pondérée de 4,33 étoiles sur 6 avis.
  • Programming Foundations with Python (Udacity): ne couvre pas les fondamentaux. Il a une note moyenne pondérée de 4 étoiles sur 7 avis.
  • Apprendre à programmer avec Python (edX / Université du Texas à Arlington): il a une note moyenne pondérée de 4 étoiles sur 14 avis.
  • Apprenez à coder pour l'analyse des données (The Open University / FutureLearn): il a une note moyenne pondérée de 3,5 étoiles sur 2 avis.
  • Série Python de DataCamp (3 cours): il n'a pas d'avis sur les deux principaux sites de révision de cours, mais DataCamp est une option populaire.
  • Tutoriel Python 3 de SoloLearn: il n'a pas de commentaires, mais dispose d'un programme complet et d'une base de fans dédiée.
  • Série Python de Dataquest (3 cours): il n'a pas de critiques, mais a un programme complet et une base de fans ouverte.

Cours R (notes moyennes pondérées décroissantes)

  • R Programming AZ ™: R Pour la science des données avec de vrais exercices! (Udemy): coûte de l'argent. Il n'offre pas autant pour votre argent que notre offre n ° 1 R. Les notes sont similaires, compte tenu de la taille de l'échantillon. Il a une note moyenne pondérée de 4,7 étoiles sur 785 avis.
  • Introduction à R for Data Science (Microsoft / edX): pas autant de profondeur que l'offre de DataCamp. Il a une note moyenne pondérée de 4,48 étoiles sur 500 avis.
  • Programmation R (Université Johns Hopkins / Coursera): ne couvre pas suffisamment les bases de la programmation. Les critiques notent que c'est difficile et pas dans le bon sens. Il a une note moyenne pondérée de 4,04 étoiles sur plus de 900 avis, malgré une note de 2,5 étoiles sur 212 avis sur Class Central.
  • TryR (CodeSchool): il n'est pas assez long pour répondre aux critères de test et ne couvre pas suffisamment les principes de base de la programmation. Il a une note moyenne pondérée de 4 étoiles sur 260 avis.
  • Programming with R for Data Science (Microsoft / edX): plus une introduction au langage R que la programmation. Le site du cours indique: "Si vous avez une certaine expérience de la programmation et souhaitez en savoir plus sur R, vous êtes au bon endroit." Il a une note moyenne pondérée de 3 étoiles sur 12 avis.

Emballer

Il s'agit du premier d'une série de six pièces couvrant les meilleurs MOOC pour vous lancer dans le domaine de la science des données. Il couvrira plusieurs autres compétences de base en science des données: les statistiques, le processus de science des données, la visualisation des données et l'apprentissage automatique.

Si vous souhaitez apprendre la science des données, suivez quelques-uns de ces cours de statistiques

Un guide complet des statistiques en ligne et des cours de probabilités. medium.freecodecamp.com J'ai classé chaque cours d'introduction à la science des données sur Internet, sur la base de milliers de points de données

Un guide complet d'introduction en ligne aux cours de science des données. medium.freecodecamp.com

La pièce finale sera un résumé de ces cours, et les meilleurs MOOCs pour d'autres sujets clés tels que la data wrangling, les bases de données et même le génie logiciel.

Si vous recherchez une liste complète des MOOC Data Science, vous pouvez les trouver sur la page thématique Data Science and Big Data de Class Central.

Si vous avez aimé lire ceci, consultez quelques-unes des autres pièces de Class Central:

Voici 250 cours de l'Ivy League que vous pouvez suivre gratuitement en ligne dès maintenant

250 MOOC de Brown, Columbia, Cornell, Dartmouth, Harvard, Penn, Princeton et Yale. medium.freecodecamp.com Les 50 meilleurs cours universitaires en ligne gratuits selon les données

Lorsque j'ai lancé Class Central en novembre 2011, il y avait environ 18 cours en ligne gratuits, et presque tous… medium.freecodecamp.com

Si vous avez des suggestions de cours que j'ai manqués, faites-le moi savoir dans les réponses!

Si vous avez trouvé cela utile, cliquez sur le? donc plus de gens le verront ici sur Medium.

Il s'agit d'une version condensée de l'article original publié sur Class Central, dans laquelle sont inclus les descriptions de cours, les programmes et plusieurs critiques.