In September 2018 I gave an introductory course to the Python language and QGis plugin development to some new colleagues at work. It was an extended and updated version of the talk I gave previously for OSGeo.be and covered the basis of Python 3, QGis 3 and Qt 5.
Using OpenStreetMap data and the QGis Plugin Builder, we built our own 'geogame' plugin where the users can score points if they can find points of interest on the map.
The slides can be found below and cover first of all an introduction to the Python language, followed by an introduction to the Qt toolkit and an overview of the PyQGis API.
As a reference, a version of the 'geogame' plugin we built can also be found on Github.