|
| 1 | +# How to Use This Curriculum |
| 2 | + |
| 3 | +This guide walks you through how the curriculum is organized, what order to follow, and how to pace yourself. |
| 4 | + |
| 5 | +--- |
| 6 | + |
| 7 | +## Reading Order |
| 8 | + |
| 9 | +Start with these four documents, in this order: |
| 10 | + |
| 11 | +1. **[START_HERE.md](./START_HERE.md)** -- Install Python and run your first script in under 10 minutes. |
| 12 | +2. **[00_COMPUTER_LITERACY_PRIMER.md](./00_COMPUTER_LITERACY_PRIMER.md)** -- What a terminal, file, and program are. Skip this if you already know. |
| 13 | +3. **[01_ROADMAP.md](./01_ROADMAP.md)** -- The full program overview: every level, every milestone. |
| 14 | +4. **[03_SETUP_ALL_PLATFORMS.md](./03_SETUP_ALL_PLATFORMS.md)** -- Detailed setup instructions for Windows, Mac, and Linux. |
| 15 | + |
| 16 | +After that, follow the "Next" link at the bottom of every document. The entire curriculum is a single click chain -- you never have to figure out what comes next. |
| 17 | + |
| 18 | +## Reference-Only Documents |
| 19 | + |
| 20 | +These documents are not meant to be read front-to-back. Use them when you need to look something up: |
| 21 | + |
| 22 | +- **[02_GLOSSARY.md](./02_GLOSSARY.md)** -- Definitions of key terms. Come back here when you encounter unfamiliar words. |
| 23 | +- **[13_SAMPLE_DATABASE_SCHEMAS.md](./13_SAMPLE_DATABASE_SCHEMAS.md)** -- Example database schemas used in SQL-related projects. Relevant starting at Level 6. |
| 24 | +- **[concepts/](./concepts/)** -- Concept guides on variables, loops, functions, etc. Read these when a project references them or when you need a refresher. |
| 25 | + |
| 26 | +--- |
| 27 | + |
| 28 | +## Time Estimates |
| 29 | + |
| 30 | +How long each section takes depends on your pace and prior experience. These are rough estimates for someone working through the material carefully, including the "Alter it / Break it / Fix it" exercises. |
| 31 | + |
| 32 | +| Section | Estimated Hours | |
| 33 | +|---------|----------------| |
| 34 | +| Level 00 (Absolute Beginner) | ~5 hours | |
| 35 | +| Level 0 (Terminal, Files, Basic I/O) | ~15 hours | |
| 36 | +| Level 1 (Input, CSV, JSON, Paths) | ~20 hours | |
| 37 | +| Level 2 (Data Structures, Cleaning) | ~20 hours | |
| 38 | +| Level 3 (Packages, Logging, TDD) | ~25 hours | |
| 39 | +| Level 4 (Schema Validation, Pipelines) | ~25 hours | |
| 40 | +| Level 5 (Scheduling, Monitoring) | ~25 hours | |
| 41 | +| Level 6 (SQL, ETL, Idempotency) | ~30 hours | |
| 42 | +| Level 7 (APIs, Caching, Observability) | ~30 hours | |
| 43 | +| Level 8 (Dashboards, Concurrency) | ~30 hours | |
| 44 | +| Level 9 (Architecture, SLOs, Security) | ~35 hours | |
| 45 | +| Level 10 (Enterprise, Production Readiness) | ~35 hours | |
| 46 | +| Elite Track (Algorithms, Distributed Systems) | ~40 hours | |
| 47 | +| Each Expansion Module (12 available) | ~10-20 hours | |
| 48 | +| **Total** | **~400-500 hours** | |
| 49 | + |
| 50 | +--- |
| 51 | + |
| 52 | +## Weekly Pacing Suggestions |
| 53 | + |
| 54 | +| Hours per Week | Approximate Duration | |
| 55 | +|----------------|---------------------| |
| 56 | +| 5 hours/week | ~2 years | |
| 57 | +| 10 hours/week | ~1 year | |
| 58 | +| 20 hours/week | ~6 months | |
| 59 | +| Full-time (40 hours/week) | ~3 months | |
| 60 | + |
| 61 | +There is no rush. Consistent practice matters more than speed. It is better to spend 5 hours per week for two years than to cram for a month and burn out. |
| 62 | + |
| 63 | +--- |
| 64 | + |
| 65 | +## What to Do When You Are Stuck |
| 66 | + |
| 67 | +Getting stuck is normal. Here is a process that works: |
| 68 | + |
| 69 | +1. **Read the error message.** Python error messages tell you exactly what went wrong and on which line. Read it from the bottom up. |
| 70 | +2. **Re-read the concept doc.** Every project links to related concept guides. Go back and re-read the relevant section. |
| 71 | +3. **Add `print()` statements.** Print the value of variables before the line that breaks. See what the data actually looks like. |
| 72 | +4. **Check the [FAQ](./FAQ.md).** Common problems and solutions are collected there. |
| 73 | +5. **Search the error message.** Copy the last line of the traceback and search for it online. Someone has hit the same error before. |
| 74 | +6. **Open an issue.** If you think the curriculum itself has a bug (broken test, missing file, unclear instructions), [open an issue](https://github.com/travisjneuman/learn.python/issues) on GitHub. |
| 75 | + |
| 76 | +--- |
| 77 | + |
| 78 | +## How to Track Your Progress |
| 79 | + |
| 80 | +Run the progress tracker from the repository root: |
| 81 | + |
| 82 | +```bash |
| 83 | +python tools/progress.py |
| 84 | +``` |
| 85 | + |
| 86 | +You can also manually update [PROGRESS.md](./PROGRESS.md) as you complete projects. |
| 87 | + |
| 88 | +--- |
| 89 | + |
| 90 | +## Choosing a Learning Mode |
| 91 | + |
| 92 | +The curriculum supports three modes. Pick the one that fits how you learn: |
| 93 | + |
| 94 | +- **Play-First** -- Open a project, tinker, break things, figure it out. Read the concept doc when you get stuck. |
| 95 | +- **Structured** -- Read the concept doc, take the quiz, then do the projects in order. Use checklists and mastery gates. |
| 96 | +- **Hybrid (Recommended)** -- Follow the structured path on weekdays. Explore expansion modules and challenges on weekends. Review flashcards daily. |
| 97 | + |
| 98 | +--- |
| 99 | + |
| 100 | +| [← Prev](README.md) | [Home](README.md) | [Next →](START_HERE.md) | |
| 101 | +|:---|:---:|---:| |
0 commit comments