With the recent advances in affordable, reputable online education, going back to college/university seems irresponsible
I dropped out of a top computer science program
to teach myself data science using online resources like Udacity, edX, and Coursera. The decision was not difficult. I could learn the content I wanted to faster, more efficiently, and for a fraction of the cost. I already had a university degree and, perhaps more importantly, I already had the university experience. Paying $30K+ to go back to school seemed irresponsible.
Here are my curriculum choices and the rationale behind them. Using thousands of course ratings and reviews from Class Central, I selected the best computer science, data science, and machine learning courses from world-class institutions like Harvard, Stanford, MIT, Berkeley, Google, and Facebook. You can read my detailed reviews for most of these courses here on Medium or on my personal website - davidventuri.com.
My curriculum covers both Python and R, which are the two most popular programming languages for data science.
Note 1: if you're looking for an online data science curriculum to follow, the link below contains my most up-to-date recommendations. I started creating this project midway through my personal data science master's.
Note 2: In May 2017, I paused my progress in this program because I joined Udacity
as a Content Developer. Another benefit of personalized online education - flexibility!
A solid computer science foundation
- Intro to Programming Nanodegree (Udacity) (REVIEW)
- CS50: Introduction to Computer Science (Harvard/edX) (REVIEW)
- Mathematics for Computer Science (MIT)
Why a bridging module?
I wanted a solid computer science foundation before I started learning data science. My engineering background gave me a head start on the math and stats. Completing these three courses means I will have completed a standard first-year computer science curriculum, plus the full mathematical and statistical core.
The following courses from my undergrad chemical engineering program are also core computer science courses:
- Linear Algebra
- Multivariable Calculus
- Statistics I
- Statistics II
Data Science Core
- Data Analyst Nanodegree (Udacity) (REVIEW)
Listed below are the individual courses contained within the Nanodegree. The estimated timeline for graduation is 378 hours.
- Intro to Inferential Statistics
- Intro to Descriptive Statistics
- Intro to Data Analysis (Using NumPy and Pandas)
- Data Wrangling
- SQL for Data Analysis
- MongoDB for Data Analysis
- Data Analysis with R
- Intro to Machine Learning
- Data Visualization and D3.js
- A/B Testing
Why the Udacity Data Analyst Nanodegree?
First and foremost, it received stellar reviews. Second, I wanted a consistent learning experience for my introduction to the field. The Data Analyst Nanodegree offered a combination of breadth, depth, and cohesiveness that a combination of content from various providers would be hard pressed to provide. I am also a fan of their less passive listening (no long lectures) and more active doing approach to education.
Learning from data
- Machine Learning (Stanford University/Coursera)
- Creative Applications of Deep Learning with TensorFlow (Kadenze) (IN PROGRESS)
- Distributed Machine Learning with Apache Spark (University of California, Berkeley/edX)
- Software Testing (Udacity)
- Software Debugging (Udacity)
- Ã?Â¢?? How to Use Git & GitHub: Version Control for Code (Udacity)
- Mastering Software Development in R Specialization (Johns Hopkins University/Coursera) (IN PROGRESS)
Listed below are the individual courses contained within Johns Hopkins University's Mastering Software Development in R Specialization on Coursera:
- The R Programming Environment
- Advanced R Programming
- Building R Packages
- Building Data Visualization Tools
Why software engineering?
The role of software engineering in data science is covered in great detail here by Alec Smith (a data science recruiter) and hereby Roger Peng (Johns Hopkins University professor and Mastering Software Development in R Specialization creator). A quote from the former:
A lot of data science work is software engineering. Not always in the sense of designing robust systems, but simply writing software. A lot of tasks you can automate and if you want to run experiments, you have to write code, and if you can do it fast, it makes a huge difference.
And from the Mastering Software Development in R Specialization page:
As the field of data science evolves, it has become clear that software development skills are essential for producing useful data science results and products. You will learn modern software development practices to build tools that are highly reusable, modular, and suitable for use in a team-based environment or a community of developers.
Back End Development
Storing and manipulating data
- Intro to Backend (Udacity)
- Developing Scalable Apps in Python (Google/Udacity)
- Configuring Linux Web Servers (Udacity)
- Linux Command Line Basics (Udacity)
- Introduction to Databases (Stanford University)
Why back-end development?
This Quora page
and this Udacity article suggest that back-end development and data science can be a useful combination. These Udacity courses, which are the back end courses in their Full Stack Web Developer Nanodegree, along with Stanford's top-ranked databases course, add an aspect of data engineering to the curriculum.
Filling in the gaps. Suggestions welcome!
This section is fluid. Additional resources will be added as I progress through the curriculum.
This article was originally published here