You’re not behind, I am. I’m writing this on day three but it’s the first blog post in what will be a short series.

Last Monday the venue for PuPPy’s Interview Prep Night was Seattle’s Galvanize location. I’ve been there before for meetups and I was so very impressed and grateful for their hospitality toward IPN. Snacks, water, swag (swag!) and discount codes for their Data Science Immersive prep course. Awesome!

My motivations are mostly altruistic. Over the course of TAing classes for University of Washington, at meetups, and as an organizer for IPN I’ve been asked numerous times, “What do I need to do to get into data science/machine learning/AI?” Previously my answer was along the lines of “git gud at Python…. and how’s your math?” I have a slightly better idea of what’s involved in the foundational education now that I’ve seen how this course is laid out.

The GDSIPP is “self-directed” insofar as we’re left to work on the sections at our own pace but there’s an instructor available from 9:30 to 4:30 Pacific Time for the two week course. Each day begins with a roughly 30 minute stand up and a short lesson about upcoming topics. Midday (1:30) there’s another check in meeting that is for q-and-a and the instructor has additional lessons planned to fill that half hour. The video check-ins have been good for me as I was concerned that I would start to wander off if left entirely to self-directed study and communications via Slack.

On day one we’re given access to Galvanize’s “Learn” platform that has eight lessons, each of which are comprised of sub-sections with code challenges, and a final code challenge that tests student knowledge of the topics covered. The lessons are:

- Intro to Python 3.6
- Basic data types, flow control (if…else), while loops

- Strings and Lists
- String indexing and iterations, string formatting (notably Python 3.6’s f-string wasn’t introduced), lists and list comprehensions

- Python tuples, dictionaries and sets
- Mutability, tuples, dictionaries, sets, dictionary comprehensions

- Python functions
- Functions with parameters and arguments, function variables and scope

- Linear Algebra
- Vectors, matrices, matrix multiplication, rank and linear independence

- NumPy
- Create and modify arrays, use boolean indexing, linear algebra operations

- Foundations of Probability
- Language of probability, set arithmetic, set notation, dependence/independence, chain rule, law of total probability, Bayes’ Rule, Bayes’ Fallacy, Bayes’ probability trees, combinatorics, multiplication rule

Students are encouraged to reach out to the Slack workspace if they are stuck on a problem for more than 10 minutes, and in the course intro they go over posting etiquette and using threads rather than cluttering the main Slack space with problem discussion. Students are encouraged to help each other without giving away answers or posting working code. Our instructor has been very responsive and I haven’t felt as though students are solely reliant on each other.

I’m starting day 3 with tuples and sets. My goal is to get into the linear algebra section Friday morning so I’ll have a week to pick the instructor’s brain about math concepts that I had difficulty with in college. So far I’ve tackled series and sequence questions without much difficulty, and I certainly understood what the question was asking even if I couldn’t immediately write code to solve the problem.

I plan to touch base at least three more times before the course is finished. I hope you find this series useful, and feel free to ask question in the comments; I’ll do my best to answer in a timely manner.