This is a summary of courses that I have been working on as I learn Python and R. These are short descriptions but they usually include links to github. I will include links to longer reviews on my blog as I add them. Enjoy!

Persuasion Analytics and Targeting - Ken Strasma

This was a online course at by the inimitable Ken Strasma talking about microtargeting, persuasion, and voter modeling. It was a phenomenal class that I highly recommend. A full write-up is available here.

Presenting Data and Information - Edward Tufte

I was lucky enough to attend a one-day seminar by the master of data visualization, Edward Tufte. The presentation was fascinating and seeing it in person was a great experience. Prof. Tufte is an engaging speaker and the seminar covers a wide variety of topics including the history of data analysis, visualization theory, and advice on running meetings to convey technical information. I plan to do a full review on the blog in the future. In the meantime, definitely take this course if you have the opportunity.

Python Data Structures, Algorithms, and Interviews - Udemy

This is a paid course on Udemy by Jose Portilla that covers several Computer Science concepts including arrays, linked lists, trees, search, and graph algorithms. This overview has been invaluable to me as a self-taught programmer. The instructor has does a great job explaining the concepts with live coding and interview questions about each concept in Python. This combination of lecture, practice, and quizzes has been a great way to make sure the material has sunk in. Since starting this course, a lot of books and tutorials have clicked for me. I cannot recommend this course highly enough! Github


I was fortunate enough to stumble into Dataquest while it was in beta and I have loved their courses. Their goal is to move you from complete Python beginner to being able to use Python in the real-world. Beyond doing a great job covering Python basics, they also cover a wide-range of topics including Pandas, SQL, data visualization, machine learning, and R. They continue to update the site and add new content. In addition to the lessons, they also have projects that apply the lessons in a real-world setting using Python scripts and Jupyter notebooks. Projects include data visulization, SQLite3, linear regression in scikit-learn, and data wrangling. Much of the content is free, but I have definitely gotten my money's worth out of the subscription. If I could only choose one course to take on Python, it would be this one. Github

Harvard CS 109 Homework

Harvard has open-sourced the materials for several courses including CS 109, focused on Python. In the 2015 class, I worked on the first two assignments focused on scraping polling results and making predictions from aggregated polling data. These were great practice in web scraping, creating functions to visualize gubernatorial races, and predicting elections via simulation from poll data. For the 2014 assignments, I completed assignments 1, 2, and 4. They were on exploratory data analysis, data visualiztion, and election polling (again). The focus on elections was fun, and the assignments always stayed focused towards producing something presentable in a more real world setting. Very little of the data in the lessons was pre-prepared so it was great practice in wrangling data. There are lectures, lecture slides, and solution notebooks available which were a huge help for self study. GitHub

Data Analysis Course - Coursera

This is the course that made me want to learn to program. I took this a couple of years ago, before Johns Hopkins broke the course up into several mini-courses about using R. It taught me the basics of R along with how to approach data analytics in a more professional way. Before this course, I was working almost entirely in Excel and Access as a data manager for political campaigns. Afterwards, I was able to use R to replace Excel for a lot of tasks, especially data wrangling and visualization. WHile I learned a lot, I think they made the right call in breaking it up into several courses. The instructor, TA's, and community were really helpful and covered a tremendous amount of material quickly. Github

Programming R - Coursera

This was another Johns Hopkins analysis course focused on R. It was a deep dive using R to programatically tackle a lot of the repetitive aspects of larger scale data analytics. This course assumed prior of R and I have to admit I took this course twice before completing. On my first attempt, the first assignment showed me that that I would need to practice programming in R before being able to even understand what was being asked. Luckily, my copy of R for Dummies prepared me pretty well to finish this up the second time. Github

An Introduction to Interactive Programming in Python - Coursera

I took this course from Rice University on Coursera back in 2014. While I was not able to complete it, I definitely enjoyed the course. It looks like they have broken it up into two different courses now, which is probably a good idea. The focus in on creating basic games like hangman or pong while learning to program in Python. While this is not necessarily the most real-world use Python, it was a useful way to practice thinking programatically. Since you are building games, the feedback is quick and very entertaining. Github

Coding Bat

A friend recommended this site to me and it is full of short practice problems for Python. It is great for a beginner (which I was at time) to move from only learning syntax to using functions to solve puzzles. It is a very good site (especially for being free) but there is no good way to save your work locally nor on Github. I have downloaded some examples, but they have a lot more great practice problems. Github