By George Freedom
A comprehensive course designed as the follow-up to the 'Python Foundations Course' series. In this course (Lessons 1-12) you are going to explore professional techniques, practical libraries for web and system interaction that prepare you for more complex projects.
This repository hosts "Python Intermediate: From Practical Techniques to System Interaction" - Presented in Jupyter Notebooks and Python scripts.
This course is for learners who have mastered the basics and are ready to build complex, efficient, and robust applications by interacting with the web, the file system, and external data sources.
Module 1: Writing Professional Code
- Lesson 1: Pro Tips & Techniques - Hacks & Power-Ups for better code
- Lesson 2: Advanced Function Building with Args & Kwargs - Handling variable number of arguments
- Lesson 3: Python Comprehensions - Concise data & collection crafting
- Lesson 4: Code Refactoring & Advanced Type Hinting - From Novice to Veteran code
Module 2: Interacting with the Local Environment
- Lesson 5: File System Operations – Managing mission logs
- Lesson 6: Working with Time & Dates - time, calendar, datetime – Mastering mission timelines
- Lesson 7: System & Runtime Interaction - sys & os module – System & Command-line operations
- Lesson 8: Python Environments & pip - Managing your digital workshop
Module 3: Web Reconnaissance & Data Extraction
- Lesson 9: Introduction to HTML & CSS - Understanding your target's structure.
- Lesson 10: The requests Library - Launching data probes to fetch remote data.
- Lesson 11: Parsing with BeautifulSoup - Deciphering digital artifacts.
- Lesson 12: Working with APIs - Querying remote data beacons.
- Lesson 13: Way of an apprentice - Expand your toolkit, get ready for system architecture.
Upon completing this expedition, you will be able to:
- Write more concise and efficient "Pythonic" code using comprehensions and advanced functions.
- Structure a project into multiple modules and manage dependencies in a virtual environment.
- Interact with your computer's file system to read, write, and manage files programmatically.
- Retrieve and parse data from websites and APIs using standard Python libraries.
- Apply principles of good code design, documentation, and refactoring.
- A solid understanding of Python topics covered in the **Python Foundations Course**course or equivalent experience.
- This includes undestanding of variables, data types, lists, dictionaries, loops and basic functions.
- Willingness to learn & enjoy!
Here is a guide on how to download the Jupyter Notebooks (.ipynb files) and how to open them. You can choose to work locally (on your computer) or online.
- Go to the main page of this repository on GitHub.
- Click the green Code button.
- Select Download ZIP. Important: Extract (unzip) the downloaded folder to a location on your computer (e.g., Documents/PythonCourse). Do not try to run files directly inside the ZIP archive.
If you are comfortable with the terminal and want to easily update materials later:
- Open your terminal or command prompt.
- Run the following command:
git clone https://github.com/GeorgeFreedomTech/python-intermediate-course.git
This is the best way to work if you want to keep everything on your own computer.
Prerequisites:
- VS Code installed.
- Python installed.
- Jupyter Extension for VS Code installed (search for "Jupyter" by Microsoft in the Extensions marketplace).
Steps:
- Open VS Code.
- Go to File > Open Folder... and select the folder you downloaded/cloned.
- Click on any file ending in .ipynb.
- In the top-right corner, click Select Kernel and choose your Python version (or venv).
- You can now run the code cells by clicking the "Play" button next to them.
If you cannot install Python locally or want to try the code quickly in your browser.
Prerequisites:
- You have to have a Google account
Steps:
- Go to colab.research.google.com.
- Log in with your Google Account.
- Select the GitHub tab in the pop-up window.
- Paste the URL of this repository and search.
- Click on the notebook you want to open.
- Alternatively: You can go to the Upload tab and upload the .ipynb file you downloaded in Part 1.
- Educational Resource: A practical, hands-on guide for advancing your Python skills.
- Professional Portfolio: Demonstrating my teaching methodology for intermediate concepts.
- Content Foundation: A source of examples for articles, tutorials, and social media.
- Visit my website: https://GeorgeFreedom.com
- Connect on LinkedIn: https://www.linkedin.com/in/georgefreedom/
- Let's talk: https://cal.com/georgefreedom
Copyright (c) 2025 Jiří Svoboda (George Freedom) / George Freedom Tech
This work (educational materials, including text, explanations, exercises, and accompanying code examples within the Jupyter Notebooks) is licensed under:
- Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License
Deepen your expertise and prepare for more complex missions in the world of code!