# Data Science RoadMap
Welcome to the exciting world of data science! In an era where data is often referred to as the 'new oil,' data science plays a pivotal role in transforming raw information into valuable insights, powering industries, and shaping our understanding of the world. This roadmap is your guide, outlining the essential steps, knowledge areas, and resources that will help you navigate the vast landscape of data science.
## Step 1 - Mathematics
### Probability and Statistics
- **Harvard's Stat110:** This YouTube playlist is widely acclaimed as one of the best courses for understanding probability. [Watch Stat110](https://www.youtube.com/playlist?list=PL2SOU6wwxB0uwwH80KTQ6ht66KWxbzTIo)
- **GoodFellow's Deep Learning Book:** For a deeper intuition, refer to Chapter 3 of the renowned deep learning book by Goodfellow et al. [Read Chapter 3](https://github.com/janishar/mit-deep-learning-book-pdf/blob/master/chapter-wise-pdf/%5B7%5Dpart-1-chapter-3.pdf)
- **"An Introduction to Statistical Learning" (ISLR):** To apply these concepts in machine learning, explore Chapter 2 and Chapter 3 of ISLR. These chapters provide practical applications. [Read ISLR](https://static1.squarespace.com/static/5ff2adbe3fe4fe33db902812/t/6009dd9fa7bc363aa822d2c7/1611259312432/ISLR+Seventh+Printing.pdf)
These resources will help you build a solid foundation in probability and its relevance in the field of machine learning.
### Linear Algebra
- **Goodfellow's Deep Learning Book:** For a comprehensive understanding of Linear Algebra, refer to [Goodfellow's Deep Learning Book](https://www.deeplearningbook.org/).
- **3Blue1Brown Playlist:** To enhance your understanding of Linear Algebra , watch the [3Blue1Brown Linear Algebra Playlist](https://www.youtube.com/playlist?list=PL0-GT3co4r2y2YErbmuJw2L5tW4Ew2O5B).
- **Gilbert Strang's Course:** If you desire an in-depth study of Linear Algebra (though not extensively required for data science), you can refer to Gilbert Strang's [Linear Algebra Course](https://youtube.com/playlist?list=PL221E2BBF13BECF6C&si=wCmzvrlCQnhJrJJY).
## Step 2 - Python
- Corey Schafer's Python Basics Playlist: [Watch Here](https://youtube.com/playlist?list=PL-osiE80TeTt2d9bfVyTiXJA-UTHn6WwU&si=1y8zW3DsvkXgY5RJ)
- Corey Schafer's Object-Oriented Programming (OOP) Playlist: [Watch Here](https://youtube.com/playlist?list=PL-osiE80TeTsqhIuOqKhwlXsIBIdSeYtc&si=QTffk0RoXvUQiSZN)
Corey Schafer's playlists are highly recommended for learning Python, including both Python basics and object-oriented programming.
**Documentation References:**
In the world of Python, it's essential to become skilled at searching for information when needed, as it can be challenging to remember all libraries. Here are some documentation resources you should have at your fingertips for quick reference:
- [Python Official Documentation](https://www.python.org/doc/)
- [NumPy Documentation](https://numpy.org/doc/)
- [pandas Documentation](https://pandas.pydata.org/pandas-docs/stable/)
- [scikit-learn Documentation](https://scikit-learn.org/stable/index.html)
These documentation references are valuable for looking up specific information during your projects and should not necessarily be studied extensively.
**Math Assignments:**
To further build your confidence in mathematical aspects, you can complete math assignments available [here](https://github.com/dsgiitr/lecture-assignments-y23).
Use these resources to strengthen your Python skills and mathematical understanding in data science.
## Step 3 - Machine Learning
* Start by reading the first 9 chapters of the book "Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow" to establish a solid understanding of machine learning algorithms. You can access the book [here](https://www.bing.com/ck/a?!&&p=8dfd016276eaacadJmltdHM9MTY5NTk0NTYwMCZpZ3VpZD0yYzRkOTQ2NC05ZGFhLTZmNjQtMjU4Yy04NjhlOWM1ODZlMjEmaW5zaWQ9NTI0Mw&ptn=3&hsh=3&fclid=2c4d9464-9daa-6f64-258c-868e9c586e21&psq=Hands+on+ML+pdf).
* For hands-on coding of machine learning algorithms using Scikit-Learn, refer to this YouTube playlist: [Machine Learning with Scikit-Learn](https://youtube.com/playlist?list=PLeo1K3hjS3uvCeTYTeyfe0-rN5r8zn9rw).
* After building a foundational knowledge of machine learning, delve deeper into the concepts by watching the [CS229 Machine Learning playlist](https://youtube.com/playlist?list=PLoROMvodv4rMiGQp3WXShtMGgzqpfVfbU). This will provide you with a comprehensive understanding of how machine learning algorithms work in the ML domain.
* To practice and apply your newly acquired machine learning skills, you can try your hand at this [task](https://github.com/dsgiitr/Lecture-Assignments-Y22/blob/main/ML/ML-Project.md).
This learning path will equip you with a solid foundation in machine learning, practical coding skills, and the ability to tackle real-world ML projects.
## Step 4 - Deep Learning
* Follow the [Deep Learning course playlist](https://youtube.com/playlist?list=PL5-TkQAfAZFbzxjBHtzdVCWE0Zbhomg7r) diligently to gain a comprehensive understanding of deep learning.
* Complement your learning with the foundational deep learning resource, the [Deep Learning Book by Goodfellow](https://www.deeplearningbook.org/).
* While deep learning offers various frameworks, we strongly recommend focusing on PyTorch. It's versatile and widely used in the field.
* For PyTorch learning, you can choose either [Playlist 1](https://youtube.com/playlist?list=PLhhyoLH6IjfxeoooqP9rhU3HJIAVAJ3Vz) or [Playlist 2](https://youtube.com/playlist?list=PLqnslRFeH2UrcDBWF5mfPGpqQDSta6VK4), depending on your preferences.
* Keep the [PyTorch documentation](https://pytorch.org/docs/stable/index.html) readily accessible for quick reference while working with PyTorch.
* To reinforce your deep learning concepts, you can work on assignments provided in the course mentioned above or consider assignments from the [cs231n course](https://cs231n.github.io/).
This learning path will equip you with a strong foundation in deep learning using PyTorch, enabling you to tackle a wide range of deep learning tasks effectively.