Course Description

This course is designed for Python beginners who want to transition from an academic background to a real-world developer role. It is a comprehensive course that covers various aspects of Python development, including Python (3.9) and PyCharm IDE installation, Python basics, organizing code with Classes and Modules, Python logging, error handling, database interaction, and creating REST APIs.

The course project is building a Python application to read data from files and store the data into a PostgreSQL database. The students will create REST endpoints using which external users can interact with the application data. The course will focus on using industry standard best practices in terms of logging, error handling, config files, and code structuring.

The course is structured in a way that students will learn the above concepts by building a real-world file processing application using real live Python project. The course starts with Python basics, where students will get started with basic Python data types including List, Tuple, and Dictionary. Then, it will move on to organizing code with Classes and Modules, where students will understand the core concepts of classes and packages.

The course will then cover Python logging, error handling, and database interaction. Students will learn how to implement logging using basic config and file config, and how to handle exceptions. They will also learn how to read and write to PostgreSQL using psycopg2.

The next part of the course is focused on creating REST APIs using Python. Students will learn to create APIs using the Python Flask framework. They will also learn how to read configuration from a property file, which helps to avoid hardcoding of configurable properties.

Finally, the course will cover unit testing. Students will learn to test their application using the unittest package and PyTest package.

The course is suitable for students with basic programming skills and basic knowledge of SQL queries. By the end of the course, students will have a solid understanding of Python development and be able to build their own Python applications.