Description

A course for Software Developers not familiar with Python.

Course Syllabus

  1. Tooling:
    1. Installation
    2. IDE (Visual Studio Code or Pycharm)
    3. Running Scripts
    4. Working in a Terminal
    5. Library Installation with pip
    6. Working with an Interactive Console
    7. IPython
    8. Using virtualenv (optional)
    9. Jupyter Notebook (optional)
  2. Builtin Data Types:
    1. Hierarchy of Types
    2. float vs int
    3. float Limitations
    4. str
    5. Collections
    6. list
    7. list comprehension
    8. tuple
    9. tuple packing and unpacking
    10. dict
    11. dictionary comprehension
    12. Advanced Comprehension Expressions (optional)
    13. Mutable vs Immutable
    14. Everything is an Object passed through a Reference
  3. Control Flow:
    1. Conditional Instructions
    2. Logical Expressions
    3. for Loops
    4. while Loops
    5. break
    6. continue and else
    7. Intro to Error Handling
    8. Advanced Error Handling
    9. Raising Exceptions
    10. Ask for Permission vs Ask for Forgiveness
    11. Exceptions Hierarchy
    12. Assertions
    13. Using Context Managers
  4. Functions and Functional Programming:
    1. Positional Arguments
    2. Keyword Arguments
    3. *args
    4. **kwargs
    5. Default Values
    6. Anonymous Function (lambda)
    7. Higher-Order Functions
    8. filter and map Functions
    9. List Comprehension
  5. Intro to Object Oriented Programming:
    1. Basic Ideas
    2. Class and Instance Attributes
    3. @property
    4. isinstance()
    5. type()
    6. Single Inheritance
    7. Exception Inheritance
    8. Practical Use Cases
  6. Regular Expressions:
    1. API (re.match, re.search, re.findall)
    2. pattern compilation
    3. flags
    4. named and unnamed groups
    5. Cheat Sheet
    6. Syntax
    7. Quantifiers
    8. Character Classes
  7. Modules and Packages:
    1. Modules
    2. Packages
    3. Imports
    4. Different Import Styles
    5. sys.path
    6. Import vs Execution
  8. Best Practices:
    1. PEP8
    2. DocString Convention PEP257
    3. setup.py
    4. requirements.txt
    5. Other Best Practices