# 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) ```python # 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) ```python # 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) ```python # 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) ```python # 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) ```python # 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) ```python # 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 1. _______________ 2. _______________ 3. _______________ ### Topics to Skip (Already Mastered) 1. _______________ 2. _______________ 3. _______________ ### Weak Areas to Focus On 1. _______________ 2. _______________ 3. _______________ ### Estimated Timeline to Advanced Level **From your starting point:** ___ months --- ## 📝 Action Items ### Immediate Next Steps (This Week) 1. ☐ Complete this assessment 2. ☐ Review recommended phase in Master Plan 3. ☐ Set up development environment 4. ☐ Join Python community (Reddit, Discord) 5. ☐ Schedule daily study time 6. ☐ Create first week's study plan 7. ☐ Take first module quiz ### First Month Goals 1. ☐ Complete ____ modules 2. ☐ Build ____ small projects 3. ☐ Read ____ chapters from recommended book 4. ☐ Contribute to ____ discussion/question online 5. ☐ 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:** _______________________________________________ _______________________________________________ _______________________________________________