Python Fundamentals
Course Overview
Inspired by Python.org and Real Python, the Python Fundamentals course is designed for developers and system administrators who want to get started with Python programming. It is focused on hands-on practice and will help you develop essential skills needed to work effectively with Python for automation, data analysis, web development, and more.
Once you master Python fundamentals, you can explore specialized domains such as: web development with Django/Flask, data science with pandas/numpy, machine learning with scikit-learn, automation with Ansible, cloud programming with AWS/Azure SDKs, and DevOps tooling.
What You'll Learn
By the end of this course, you will be able to:
- Understand Python's philosophy, features and ecosystem
- Set up Python development environment with Jupyter notebooks
- Master Python's data model and type system
- Work with fundamental data structures (lists, dictionaries, sets, tuples)
- Implement control flow with loops and conditionals
- Create and use functions effectively
- Understand object-oriented programming basics in Python
- Work with iterators, generators and comprehensions
- Handle exceptions and debugging techniques
- And much more!
Who Should Attend
- Developers looking to learn Python as an additional language
- System Administrators wanting to automate tasks with Python
- Data Analysts needing Python skills for data processing
- DevOps Engineers implementing automation and tooling
- IT Professionals seeking to expand their programming skills
- Students starting their programming journey
Course Format
- Duration: 2 days (16 hours)
- Format: Part lecture, part discussion, exercises and heavy hands-on practice with Jupyter notebooks
- Materials: Digital course materials, interactive notebooks, and lab guides
Difficulty
Beginner to Intermediate
Course Prerequisites
To get the most out of this course, you should have:
- Basic computer literacy
- Familiarity with command line/terminal usage
- Basic understanding of programming concepts (variables, functions, loops)
- Experience with any text editor
Recommended free courses
Course Content
Day 1
Course Introduction
- Course goals and learning objectives
- Python ecosystem overview
- Development environment setup
- Jupyter notebook introduction
Python Overview and History
- Python's history and philosophy
- Guido van Rossum and the Python community
- The Zen of Python
- Python versions (2 vs 3)
- Python implementations (CPython, PyPy, Jython)
- Performance characteristics and the GIL
Lab: Setup Python development environment and Jupyter
Python Features and Usage
- Dynamic vs static typing
- Interpreted vs compiled languages
- Python popularity and industry adoption
- Common use cases and applications
- PEP 8 style guide and code quality
Lab: First Python programs and style checking
Python Data Model
- Everything is an object concept
- Object identity, type, and value
- Mutable vs immutable objects
- Variable assignment and references
- Memory management and garbage collection
Lab: Explore Python's data model with interactive examples
Core Data Types
- Numbers (integers, floats, booleans)
- Strings and Unicode handling
- Lists and basic operations
- Tuples and immutability
- Basic dictionary operations
Lab: Working with Python's built-in data types
Day 2
Advanced Data Structures
- Sets and set operations
- Dictionaries and advanced operations
- Nested data structures
- Choosing the right data structure
Lab: Data structure selection and manipulation exercises
Control Flow and Iteration
- While loops and control statements
- For loops and iteration protocols
- Range function and numeric iteration
- Enumerate for indexed iteration
- Breaking and continuing loops
Lab: Implement various iteration patterns
Functions and Scope
- Function definition and calling
- Parameters and arguments
- Return values and documentation
- Variable scope and the LEGB rule
- Built-in functions overview
Lab: Create reusable functions for common tasks
Advanced Iteration Concepts
- Iterators and the iteration protocol
- Generators and yield statements
- Iterator functions (zip, enumerate)
- List, dictionary, and set comprehensions
- Generator expressions
Lab: Build efficient data processing pipelines
Object-Oriented Programming Basics
- Classes and instances
- Methods and attributes
- Inheritance fundamentals
- Class vs instance variables
- Basic object-oriented design
Lab: Design and implement simple class hierarchies
Debugging and Best Practices
- Common Python errors and debugging techniques
- Using print statements and debuggers
- Exception handling basics
- Code organization and modules
- Testing fundamentals
Lab: Debug existing code and implement error handling
Next Steps
After completing this course, consider:
- Specialized Python workshops (Web Development, Data Science, DevOps)
- Contributing to open source Python projects
- Building personal projects to reinforce learning