O'Reilly logo
live online training icon Live Online training

Python Programming Fundamentals

Understanding the How and Why behind Python's type system

Rodrigo Senra

Python became the de facto standard language for DevOps automation and Data Science data exploration tools, not mention its pervasive presence in the Web and in server-side programming.

It is known as the swiss-army knife of programming languages, been applied everywhere from micro-controllers to program robots, to large parallel data crunching pipelines. It versatility has placed it amongst the top 5 most popular programming languages according to Github and Tiobe Index.

This session will introduce you to the core language mechanisms that make Python such a powerful and versatile language. We will provide a deep understanding of the programming mechanisms available and its modern idioms.

What you'll learn-and how you can apply it

By the end of this live, online course, you’ll learn:

  • The essentials of programming in Python using the interactive interpreter (REPL);
  • Core language concepts, syntax, and native data types;
  • Python's underlying object-oriented nature.

And you’ll be able to:

  • And you’ll be introduced to Python's native types, understand the object-oriented nature of all types and learn how to manipulate scalar types and collection types.

This training course is for you because...

  • This session is targeted for programmers, tech managers or data scientists that have never been exposed to the Python programming language or had very little exposure and wish to obtain a deeper understanding of the basic principles of the language.


  • Working knowledge of a general purpose programming language, including principles such as object orientation.

Recommended preparation:

Course Setup:

  • We will explore the foundations and nuances of the Python language through live-coding at the Python interactive REPL during the whole course, providing insight to practical applications and common idioms.
  • Students are advised to follow the course by replicating the material during the course and exploring on their own in parallel to explanations, so any doubts raised can be addressed on the fly by the instructor.
  • In order to do that, we recommend that students should install the Python interpreter version 3.6.x or higher from https://www.python.org/downloads/ (all major platforms are supported: Windows, Mac OSX and Linux ).
  • Students are advised to install Jupyter Notebook. Installation steps are described here: https://jupyter.readthedocs.io/en/latest/install.html.
  • Another option is to install the Anaconda Community Python Distro (https://www.anaconda.com/download), that is free and comes with Jupyter Notebooks pre-installed.

About your instructor

  • Rodrigo Senra holds a Ph.D and M.Sc. degrees in Computer Science and a bachelor degree in Computer Engineering, all from UNICAMP-Brazil. He has been working with Python since 1997, and was a pioneer in adopting Python as a first language to be taught in Academicals Courses back in 2004.

    Senra is one of the founders of the Brazilian Python Association in 2007 and the first to organize a national Python Conference in Brazil in 2005.

    Senra is currently Technology Director at Work & Co in New York, and prior to that was Senior Principal Data Scientist for EMC Research Centre.


The timeframes are only estimates and may vary according to how the class is progressing

This course is presented as an on-going lab, wherein students are going to have Python REPL opened. Meanwhile giving some explanations on the screen, instructor will invite all the students to replicate it in their own REPLs and come up with questions through the chat channel. This course is highly interactive and students will be engaging because they are active all the time, and testing their knowledge at every line.

Part 1 (approx. 30 mins): Fundamentals

  • In this first part, we will spend most of our time exploring the REPL through Jupyter Notebook. We will introduce basic scalar types: int, float, complex, string; and the operations supported by those types. We will also understand how the assignment operator really works, and be introduced to the semantic data model for Python.

Part 2 (approx. 30 mins): Immutability

  • In the second part, we will deep dive into the string type that belongs to the family of sequence types. We will also introduce the concept of immutability and the powerful slice operator.

Part 3 (approx. 30 mins): Lists and tuples

  • In the third part, we will explore other native collection types such as lists and tuples that also belong to the family of sequence types. We will contrast mutability and immutability, laying the foundation for functional programming paradigm.

  • Part 4 (approx. 30 mins): Dictionaries and sets

  • In the last and fourth part, we will visit dictionaries and sets. These are fundamental data structures that are relevant to understand how does Python implement namespaces, such as classes and modules.