9.1 KiB
9.1 KiB
Python Initial Assessment
🎯 Purpose
This assessment will help determine your current Python proficiency level and create a personalized learning path.
📋 Assessment Structure
Part 1: Self-Assessment Questionnaire
Part 2: Practical Coding Challenges
Part 3: Knowledge Gap Analysis
Part 1: Self-Assessment Questionnaire
Rate yourself honestly on each topic using the mastery levels:
- Level 0: Never heard of it / Don't understand
- Level 1: Heard of it / Basic awareness
- Level 2: Can use with documentation
- Level 3: Can use confidently without docs
- Level 4: Can teach others / Expert level
Python Basics
| Topic | Current Level (0-4) | Notes |
|---|---|---|
| Variables & Data Types | ||
| Operators | ||
| Control Flow (if/else) | ||
| Loops (for, while) | ||
| Lists | ||
| Tuples | ||
| Dictionaries | ||
| Sets | ||
| String manipulation | ||
| Basic I/O |
Functions & Modules
| Topic | Current Level (0-4) | Notes |
|---|---|---|
| Function definition | ||
| Parameters & arguments | ||
| *args and **kwargs | ||
| Lambda functions | ||
| Scope (local/global) | ||
| Importing modules | ||
| Creating modules | ||
| Standard library usage |
Object-Oriented Programming
| Topic | Current Level (0-4) | Notes |
|---|---|---|
| Classes & objects | ||
| init method | ||
| Instance vs class variables | ||
| Inheritance | ||
| Multiple inheritance | ||
| Method overriding | ||
| Encapsulation | ||
| Polymorphism | ||
| Abstract classes | ||
| Magic methods (dunder) |
File & Exception Handling
| Topic | Current Level (0-4) | Notes |
|---|---|---|
| Reading/writing files | ||
| Context managers (with) | ||
| try/except | ||
| Raising exceptions | ||
| Custom exceptions | ||
| JSON handling | ||
| CSV handling |
Advanced Concepts
| Topic | Current Level (0-4) | Notes |
|---|---|---|
| List comprehensions | ||
| Dict comprehensions | ||
| Generators | ||
| Decorators | ||
| Iterators | ||
| Closures | ||
| Type hints | ||
| Properties (@property) |
Expert Topics
| Topic | Current Level (0-4) | Notes |
|---|---|---|
| Metaclasses | ||
| Descriptors | ||
| Context manager protocol | ||
| Threading | ||
| Multiprocessing | ||
| Async/await | ||
| Memory management | ||
| Performance optimization | ||
| Design patterns | ||
| Testing (unittest/pytest) |
Part 2: Practical Coding Challenges
Challenge 1: Basic Python (Beginner)
# Write a function that takes a list of numbers and returns:
# - The sum of all even numbers
# - The product of all odd numbers
# Example: [1, 2, 3, 4, 5] -> (6, 15)
def process_numbers(numbers):
# Your code here
pass
# Test
print(process_numbers([1, 2, 3, 4, 5])) # Should print: (6, 15)
Can you solve this? ☐ Yes ☐ No ☐ With hints
Challenge 2: Data Structures (Beginner-Intermediate)
# Write a function that takes a string and returns a dictionary
# with character counts, but only for characters that appear more than once
# Example: "hello" -> {'l': 2}
def count_duplicates(text):
# Your code here
pass
# Test
print(count_duplicates("hello")) # Should print: {'l': 2}
print(count_duplicates("programming")) # Should print: {'g': 2, 'r': 2, 'm': 2}
Can you solve this? ☐ Yes ☐ No ☐ With hints
Challenge 3: OOP (Intermediate)
# Create a BankAccount class with:
# - Private balance attribute
# - deposit() method
# - withdraw() method (check for sufficient funds)
# - get_balance() method
# - Transaction history tracking
class BankAccount:
# Your code here
pass
# Test
account = BankAccount(100)
account.deposit(50)
account.withdraw(30)
print(account.get_balance()) # Should print: 120
Can you solve this? ☐ Yes ☐ No ☐ With hints
Challenge 4: Decorators (Advanced)
# Create a decorator that measures function execution time
# and caches results for same arguments
def timing_cache(func):
# Your code here
pass
@timing_cache
def fibonacci(n):
if n < 2:
return n
return fibonacci(n-1) + fibonacci(n-2)
# Test
print(fibonacci(10)) # Should cache intermediate results
Can you solve this? ☐ Yes ☐ No ☐ With hints
Challenge 5: Generators (Advanced)
# Create a generator that yields prime numbers up to n
def prime_generator(n):
# Your code here
pass
# Test
primes = list(prime_generator(20))
print(primes) # Should print: [2, 3, 5, 7, 11, 13, 17, 19]
Can you solve this? ☐ Yes ☐ No ☐ With hints
Challenge 6: Async Programming (Expert)
# Write an async function that fetches multiple URLs concurrently
# and returns their content lengths
import asyncio
async def fetch_all_lengths(urls):
# Your code here
pass
# Test
urls = [
"https://example.com",
"https://python.org",
"https://github.com"
]
# Should fetch all URLs concurrently and return their lengths
Can you solve this? ☐ Yes ☐ No ☐ With hints
Part 3: Knowledge Gap Analysis
Based on Self-Assessment
Count your scores:
- Topics at Level 0: ___
- Topics at Level 1: ___
- Topics at Level 2: ___
- Topics at Level 3: ___
- Topics at Level 4: ___
Total topics assessed: ___
Based on Coding Challenges
Challenges solved:
- Challenge 1 (Basic): ☐
- Challenge 2 (Data Structures): ☐
- Challenge 3 (OOP): ☐
- Challenge 4 (Decorators): ☐
- Challenge 5 (Generators): ☐
- Challenge 6 (Async): ☐
Total solved: ___ / 6
📊 Assessment Results & Recommendations
Proficiency Level Determination
If you scored:
Absolute Beginner (0-20% Level 2+)
- Recommendation: Start with Phase 1 (Foundations)
- Timeline: 3-4 months for Phase 1
- Focus: Master basics before moving forward
- Study Time: 2-3 hours daily
- Resources: "Python Crash Course", Real Python beginner tutorials
Beginner (20-40% Level 2+, 1+ challenges solved)
- Recommendation: Review Phase 1, focus on Phase 2
- Timeline: 1 month review + 3-4 months Phase 2
- Focus: Strengthen foundations, build intermediate skills
- Study Time: 2-3 hours daily
- Resources: "Fluent Python" chapters 1-5, Python documentation
Intermediate (40-60% Level 2+, 3+ challenges solved)
- Recommendation: Skip to Phase 2-3
- Timeline: 2 months Phase 2 + 4-5 months Phase 3
- Focus: OOP, decorators, generators, async basics
- Study Time: 2-4 hours daily
- Resources: "Effective Python", "Python Cookbook"
Advanced (60-80% Level 2+, 4+ challenges solved)
- Recommendation: Focus on Phase 3-4
- Timeline: 2 months Phase 3 + 3-4 months Phase 4
- Focus: Metaclasses, async, performance, design patterns
- Study Time: 2-4 hours daily
- Resources: "High Performance Python", Python source code
Expert (80%+ Level 3+, 5+ challenges solved)
- Recommendation: Phase 4-5 (Specialization)
- Timeline: 2 months Phase 4 + ongoing specialization
- Focus: Deep expertise, contribute to open source
- Study Time: 1-2 hours daily (maintenance + specialization)
- Resources: PEPs, CPython source, advanced talks
🎯 Personalized Learning Path
Your Starting Point
Based on assessment: _______________ (Fill after completing)
Recommended Phase to Start
Phase: _______________
Topics to Review First
Topics to Skip (Already Mastered)
Weak Areas to Focus On
Estimated Timeline to Advanced Level
From your starting point: ___ months
📝 Action Items
Immediate Next Steps (This Week)
- ☐ Complete this assessment
- ☐ Review recommended phase in Master Plan
- ☐ Set up development environment
- ☐ Join Python community (Reddit, Discord)
- ☐ Schedule daily study time
- ☐ Create first week's study plan
- ☐ Take first module quiz
First Month Goals
- ☐ Complete ____ modules
- ☐ Build ____ small projects
- ☐ Read ____ chapters from recommended book
- ☐ Contribute to ____ discussion/question online
- ☐ Take monthly comprehensive exam
🔄 Reassessment Schedule
- Week 4: Quick review of progress
- Month 3: Comprehensive reassessment
- Month 6: Mid-journey assessment
- Month 12: Full reassessment
- Month 18: Expert level assessment
📚 Additional Assessment Resources
Online Assessments
- Python.org's Official Quiz
- Real Python Quizzes
- HackerRank Python Certification
- LeetCode Python Track
Practice Platforms
- Codewars (Python kata)
- Exercism.org (Python track)
- Project Euler
- Advent of Code
Date Completed: _______________ Next Reassessment: _______________ Notes: