Welcome to intermediate Python! This level builds on your foundational knowledge and introduces more advanced concepts, real-world applications, and deeper understanding of Python's capabilities.
- Completed beginner topics or have equivalent knowledge
- Comfortable writing basic Python programs
- Ready to tackle more complex problems
- Want to write more professional, maintainable code
Before starting intermediate level, you should:
- Understand variables, data types, and operators
- Be comfortable with if/else statements and loops
- Know how to write and call functions
- Work confidently with lists, dictionaries, and basic data structures
- Understand basic debugging and error reading
Not there yet? Complete the Beginner Level first.
Master Python Functions
Go beyond basic functions to understand scope, advanced parameters, and functional programming concepts.
- Function parameters and return values
- Default arguments and keyword arguments
- *args and **kwargs (variable arguments)
- Scope: local, enclosing, global, built-in (LEGB rule)
- Lambda functions and functional programming basics
- Time: 5-8 hours
Reading and Writing Files
Learn to work with files, handle different file formats, and manage file operations safely.
- Reading and writing text files
- File modes (r, w, a, r+, etc.)
- Working with file paths
- The
withstatement and context managers - CSV and JSON file handling
- Time: 4-6 hours
Robust Error Management
Write resilient code that handles errors gracefully and provides helpful feedback.
- Understanding exceptions and error types
- try, except, else, finally blocks
- Catching specific exceptions
- Raising exceptions
- Creating custom exception classes
- Time: 4-6 hours
- 04 - Object-Oriented Programming - Classes, inheritance, polymorphism
- 05 - List Comprehensions - Elegant, Pythonic list operations
- 06 - Working with Modules - Organizing code, imports, packages
- 07 - Regular Expressions - Pattern matching and text processing
- 08 - Debugging and Testing - Writing reliable code
- 09 - Standard Library - Useful built-in modules
- 10 - Introduction to Async - Concurrent programming basics
- Complete 01-functions-deep-dive
- Complete 02-file-io
- Complete 03-error-handling
- Build a small project using all three concepts
(Coming soon: OOP, modules, comprehensions)
(Coming soon: regex, testing, async)
Understand why things work, not just how. This enables you to solve new problems creatively.
- Study open-source Python projects
- Read standard library source code
- Learn from different coding styles
Apply concepts to projects that interest you:
- Command-line tools
- Data processing scripts
- Web scrapers
- Automation tools
- Review your own code after a few days
- Ask yourself: "How could this be clearer?"
- Refactor for readability and efficiency
Python has a philosophy ("Pythonic" code). Learn idiomatic patterns that make your code cleaner and more professional.
At this level, consider using:
- IDE: VS Code with Python extension, PyCharm
- Linter: pylint, flake8 (catch errors before running)
- Formatter: black, autopep8 (consistent code style)
- Virtual environments: venv, virtualenv (manage dependencies)
- Read README.md - Understand concept and use cases
- Study examples.py - Run, modify, experiment
- Complete exercises.md - Build muscle memory
- Reference key-concepts.md - Quick lookup
- Solve problems - Challenge yourself in /problems/intermediate/
- Build something - Apply to a real project
You will be able to:
- Write clean, maintainable, professional Python code
- Handle files and data from various sources
- Build robust applications with proper error handling
- Understand and apply functional programming concepts
- Structure larger programs effectively
- Debug and fix complex issues
After completing intermediate topics:
- Progress to Advanced Level for mastery
- Build portfolio projects showcasing your skills
- Contribute to open-source projects
- Consider specialization (web dev, data science, DevOps, etc.)
"I understand the concept but struggle with problems"
- This is normal! Understanding ≠ proficiency
- Solve more problems, build more projects
- Practice is essential
"Should I memorize all these functions?"
- No! Focus on understanding patterns
- Use documentation liberally
- Memory comes with practice
"My code works but looks messy"
- Learn to refactor
- Study clean code principles
- Read PEP 8 style guide
Intermediate Python skills enable:
- Automation scripts for repetitive tasks
- Data processing and analysis pipelines
- Command-line tools and utilities
- Simple web applications
- API interactions and integrations
Ready to level up? Begin with 01-functions-deep-dive!