Data science is the intersection of engineering, analytics and business. Below is our teaching curriculum grouped by these three dimensions:

Data Science Retreat is an advanced program; we have higher initial requirements than most data science bootcamps.

Don't worry if you aren't where you need to be yet; we are here to help no matter where you are in your data science transition.

There are no strict requirements on your level before the interview. Most participants have already taken their first steps learning Python or machine learning before the interview.

We recommend that anyone considering studying at Data Science Retreat to book an interview; we are happy to give advice on what you can study to get up to speed.

Below we outline the required knowledge for our participants to explore before they study with us:

For Python, we expect students to be familiar with the following concepts outlined in the **Python Tutorial****:**

- Variables, Strings, Floats, Integers (Section 3)
- Conditionals (Section 4.1 - 4.5)
- Functions (Section 4.6, 4.7.1, 4.7.2)
- Lists (Section 3.1.3, 5.1)
- Tuples, Sets, Dictionaries (Section 5.3 - 5.5)
- Reading & Writing Files (Section 7.2)

For linear algebra, participants are expected to understand:

- The difference between a scalar, matrix & tensor
- Element-wise matrix multiplication & dot products

For probability, we expect participants to be familiar with:

- Independent, marginal and conditional probabilities
- Expectation & variance
- The Bernoulli & Gaussian distributions

For machine learning, we expect students to have:

**Think Python**as an introductory textbook**Fluent Python**as a more advanced look at the language- Practical coding challenges we recommend
**HackerRank** - The DataCamp
**Introduction to Shell for Data Science**for an excellent introduction to the Bash shell

**Kaggle**offers access to many interesting datasets, along with communities that share their work**Python for Data****Analysis****Automate the Boring Stuff****with Python****Agile Data Science**is recommended as a more advanced textbook that covers application development using a distinct software engineering philosophy

**Andrew Ng's Stanford Machine Learning**is a classic course that is somewhat of a rite of passage for machine learning practitioners**Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow**textbook**Andrew Ng's Machine Learning Yearning**is a useful resource for getting insight into the practicalities of model training**Elements of Statistical Learning**and**Pattern Recognition and Machine Learning**for classic machine learning textbooks**Deep Learning**for neural networks