# Prerequisites & Self-Assessment **Purpose**: Ensure you have the foundational knowledge to succeed in TinyTorch and discover complementary resources for deeper learning. --- ## Core Requirements You need TWO things to start building: ### 1. Python Programming - Comfortable writing functions and classes - Familiarity with basic NumPy arrays - No ML framework experience required—you'll build your own! **Self-check**: Can you write a Python class with `__init__` and methods? ### 2. Basic Linear Algebra - Understand matrix multiplication conceptually - Know what a gradient (derivative) represents at a high level **Self-check**: Do you know what multiplying two matrices means? **That's it. You're ready to start building.** --- ## "Nice to Have" Background **We teach these concepts as you build**—you don't need them upfront: - **Calculus (derivatives)**: Module 05 (Autograd) teaches this through implementation - **Deep learning theory**: You'll learn by building, not lectures - **Advanced NumPy**: We introduce operations as needed in each module **Learning Philosophy**: TinyTorch teaches ML systems through implementation. You'll understand backpropagation by building it, not by watching lectures about it. --- ## Self-Assessment: Which Learning Path Fits You? ### Path A: Foundation-First Builder (Recommended for most) **You are:** - Strong Python programmer - Curious about ML systems - Want to understand how frameworks work **Start with**: Module 01 (Tensor) **Best for**: CS students, software engineers transitioning to ML, anyone wanting deep systems understanding ### Path B: Focused Systems Engineer **You are:** - Professional ML engineer - Need specific optimization skills - Want production deployment knowledge **Start with**: Review Foundation Tier (01-07), focus on Optimization Tier (14-19) **Best for**: Working engineers debugging production systems, performance optimization specialists ### Path C: Academic Researcher **You are:** - ML theory background - Need implementation skills - Want to prototype novel architectures **Start with**: Module 01, accelerate through familiar concepts **Best for**: PhD students, research engineers, anyone implementing custom operations --- ## Complementary Learning Resources ### Essential Systems Context **[Machine Learning Systems](https://mlsysbook.ai)** by Prof. Vijay Janapa Reddi (Harvard) - TinyTorch's companion textbook providing systems perspective - Covers production ML engineering, hardware acceleration, deployment - **Perfect pairing**: TinyTorch teaches implementation, ML Systems book teaches context ### Mathematical Foundations **[Deep Learning Book](https://www.deeplearningbook.org/)** by Goodfellow, Bengio, Courville - Comprehensive theoretical foundations - Mathematical background for concepts you'll implement - **Use alongside TinyTorch** for deeper understanding ### Visual Intuition **[3Blue1Brown: Neural Networks](https://www.youtube.com/playlist?list=PLZHQObOWTQDNU6R1_67000Dx_ZCJB-3pi)** - Visual explanations of backpropagation, gradient descent, neural networks - **Perfect visual complement** to TinyTorch's hands-on implementation **[3Blue1Brown: Linear Algebra](https://www.youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab)** - Geometric intuition for vectors, matrices, transformations - **Helpful refresher** for tensor operations and matrix multiplication ### Python & NumPy **[NumPy Quickstart Tutorial](https://numpy.org/doc/stable/user/quickstart.md)** - Essential NumPy operations and array manipulation - **Review before Module 01** if NumPy is unfamiliar --- ## Ready to Begin? **If you can:** 1. ✅ Write a Python class with methods 2. ✅ Explain what matrix multiplication does 3. ✅ Debug Python code using print statements **Then you're ready to start building!** **Not quite there?** Work through the resources above, then return when ready. TinyTorch will still be here, and you'll get more value once foundations are solid. --- ## Next Steps **Ready to Build:** - See [Quick Start Guide](quickstart-guide.md) for hands-on experience - See [Student Workflow](student-workflow.md) for development process - See [Course Structure](chapters/00-introduction.md) for full curriculum **Need More Context:** - See [Additional Resources](resources.md) for broader ML learning materials - See [FAQ](faq.md) for common questions about TinyTorch - See [Community](community.md) to connect with other learners --- **Your journey from ML user to ML systems engineer starts here.**