|
| 1 | +# Self-Assessment Rubrics |
| 2 | + |
| 3 | +Rate yourself honestly on each skill. Use the scale to identify strengths and gaps, then focus your practice on areas scored 1-3. |
| 4 | + |
| 5 | +**Rating Scale:** |
| 6 | +- **1 — No idea:** Have not encountered this concept yet |
| 7 | +- **2 — Seen it:** Recognize the concept but cannot apply it independently |
| 8 | +- **3 — Can do with help:** Can accomplish this with documentation or examples open |
| 9 | +- **4 — Confident:** Can do this from memory in most situations |
| 10 | +- **5 — Can teach it:** Could explain this clearly to someone else and handle edge cases |
| 11 | + |
| 12 | +--- |
| 13 | + |
| 14 | +## Levels 0-2: Beginner |
| 15 | + |
| 16 | +### Core Python Fluency |
| 17 | + |
| 18 | +| # | Skill | Rating (1-5) | |
| 19 | +|---|-------|:---:| |
| 20 | +| 1 | Can I write a function from scratch without copying an example? | ___ | |
| 21 | +| 2 | Can I read an error traceback and identify which line caused the problem? | ___ | |
| 22 | +| 3 | Can I explain what my code does, line by line, to someone else? | ___ | |
| 23 | +| 4 | Can I choose between a list, dict, and set for a given problem? | ___ | |
| 24 | +| 5 | Can I write a for loop and a while loop and know when to use each? | ___ | |
| 25 | +| 6 | Can I open, read, and write files without looking up the syntax? | ___ | |
| 26 | +| 7 | Can I use f-strings to format output clearly? | ___ | |
| 27 | +| 8 | Can I break a problem into smaller functions instead of writing one long script? | ___ | |
| 28 | + |
| 29 | +**Beginner milestone:** Score 4+ on items 1-3 before moving to Level 3. |
| 30 | + |
| 31 | +--- |
| 32 | + |
| 33 | +## Levels 3-5: Intermediate |
| 34 | + |
| 35 | +### Design and Quality |
| 36 | + |
| 37 | +| # | Skill | Rating (1-5) | |
| 38 | +|---|-------|:---:| |
| 39 | +| 1 | Can I design a solution (pseudocode or outline) before writing code? | ___ | |
| 40 | +| 2 | Can I write pytest tests for my own functions? | ___ | |
| 41 | +| 3 | Can I refactor duplicated code into reusable functions or classes? | ___ | |
| 42 | +| 4 | Can I use logging instead of print() for debugging? | ___ | |
| 43 | +| 5 | Can I read and navigate someone else's Python project? | ___ | |
| 44 | +| 6 | Can I use try/except to handle expected errors gracefully? | ___ | |
| 45 | +| 7 | Can I create and use virtual environments for project isolation? | ___ | |
| 46 | +| 8 | Can I write a module that another script can import and use? | ___ | |
| 47 | +| 9 | Can I use list comprehensions and generator expressions appropriately? | ___ | |
| 48 | +| 10 | Can I read library documentation and apply new APIs without a tutorial? | ___ | |
| 49 | + |
| 50 | +**Intermediate milestone:** Score 4+ on items 1-4 before moving to Level 6. |
| 51 | + |
| 52 | +--- |
| 53 | + |
| 54 | +## Levels 6-8: Advanced |
| 55 | + |
| 56 | +### Architecture and Integration |
| 57 | + |
| 58 | +| # | Skill | Rating (1-5) | |
| 59 | +|---|-------|:---:| |
| 60 | +| 1 | Can I explain architectural trade-offs (e.g., monolith vs. microservices, SQL vs. NoSQL)? | ___ | |
| 61 | +| 2 | Can I integrate external REST APIs and handle authentication, pagination, and errors? | ___ | |
| 62 | +| 3 | Can I work with databases using an ORM (SQLAlchemy) and write raw SQL when needed? | ___ | |
| 63 | +| 4 | Can I handle concurrent operations safely using asyncio or threading? | ___ | |
| 64 | +| 5 | Can I debug without print() — using breakpoint(), pdb, or a debugger? | ___ | |
| 65 | +| 6 | Can I profile code to find performance bottlenecks? | ___ | |
| 66 | +| 7 | Can I design a data model with proper relationships and constraints? | ___ | |
| 67 | +| 8 | Can I write integration tests that test multiple components together? | ___ | |
| 68 | +| 9 | Can I use decorators and context managers to reduce boilerplate? | ___ | |
| 69 | +| 10 | Can I package a Python project with pyproject.toml and manage dependencies? | ___ | |
| 70 | + |
| 71 | +**Advanced milestone:** Score 4+ on items 1-5 before moving to Level 9. |
| 72 | + |
| 73 | +--- |
| 74 | + |
| 75 | +## Levels 9-10: Expert |
| 76 | + |
| 77 | +### System Design and Leadership |
| 78 | + |
| 79 | +| # | Skill | Rating (1-5) | |
| 80 | +|---|-------|:---:| |
| 81 | +| 1 | Can I design a complete system from business requirements to implementation plan? | ___ | |
| 82 | +| 2 | Can I mentor others on Python best practices and explain *why* behind the rules? | ___ | |
| 83 | +| 3 | Can I contribute to open-source Python projects (read codebase, submit PRs, follow conventions)? | ___ | |
| 84 | +| 4 | Can I evaluate competing approaches and articulate the trade-offs of each? | ___ | |
| 85 | +| 5 | Can I design for observability (logging, metrics, tracing) from the start? | ___ | |
| 86 | +| 6 | Can I plan and execute a zero-downtime migration or deployment? | ___ | |
| 87 | +| 7 | Can I write architecture decision records that future developers will understand? | ___ | |
| 88 | +| 8 | Can I identify and remediate security vulnerabilities in Python applications? | ___ | |
| 89 | +| 9 | Can I design APIs that are versioned, documented, and backward-compatible? | ___ | |
| 90 | +| 10 | Can I lead a technical design review and give constructive feedback? | ___ | |
| 91 | + |
| 92 | +**Expert milestone:** Score 4+ on items 1-4 to consider yourself production-ready. |
| 93 | + |
| 94 | +--- |
| 95 | + |
| 96 | +## How to Use This Assessment |
| 97 | + |
| 98 | +1. **Take it honestly.** There is no grade — this is for your own planning. |
| 99 | +2. **Retake every 2-4 weeks** to track growth. Date your assessments. |
| 100 | +3. **Focus practice** on your lowest-scoring items within your current tier. |
| 101 | +4. **Do not skip ahead** to a higher tier until you hit the milestone for your current one. |
| 102 | +5. **Use the projects** — each curriculum level is designed to build the skills listed above. |
| 103 | + |
| 104 | +### Assessment Log |
| 105 | + |
| 106 | +Record your scores over time: |
| 107 | + |
| 108 | +| Date | Beginner Avg | Intermediate Avg | Advanced Avg | Expert Avg | |
| 109 | +|------|:---:|:---:|:---:|:---:| |
| 110 | +| _YYYY-MM-DD_ | ___._ | ___._ | ___._ | ___._ | |
| 111 | +| _YYYY-MM-DD_ | ___._ | ___._ | ___._ | ___._ | |
| 112 | +| _YYYY-MM-DD_ | ___._ | ___._ | ___._ | ___._ | |
| 113 | + |
| 114 | +--- |
| 115 | + |
| 116 | +*Honest self-assessment is the fastest path to improvement. Rate where you are, not where you want to be.* |
0 commit comments