An open API service indexing awesome lists of open source software.

https://github.com/linuxuser255/getgood

Python basics, intermediate, advanced using separation of concerns.
https://github.com/linuxuser255/getgood

learnpython pycharm python3

Last synced: 11 days ago
JSON representation

Python basics, intermediate, advanced using separation of concerns.

Awesome Lists containing this project

README

        


# Creating a Python code base, to learn Python

## About this repo

```
This project was designed to serve as a tutorial/reference in a few different ways.
Yes, there is a beginner, intermediate, and advanced section.
But, most importantly, is the construction of this repo.

First, all the Python basics are in their own separate files/scripts/modules.
Additionally, the design of this code-base, uses separation of concerns.
And, does so in a way that is beginner friendly.

Meaning, all the basics are tied together using main.py, (via imports and name guarding).
This is important, because virtually all the online beginner Python courses I've come across,
do not introduce this, nor show how code bases are constructed.
These concepts are not introduced until advanced lessons, OOP for example.

I wish I had learned this concept from the get go when I first started.

Separation of concerns, is a simple concept that can be picked up from the start.
And, is one that will pay off immediately, as the student will have a much easier time making sense of
other people's repos on GitHub, etc..

In summary, the student, or hobbyist, can learn the basics of Python, and code base architecture simultaniously.

```

**All the basic scripts can be run from `main.py`**

(They can also be run separately)

### Table of contents

- All the individual beginner/basic concepts are in the base directory, (GetGood).
- They cover the usuals such as strings, control flow, functions, etc. The file names are self-explanatory
- Then the mid-directory contains intermediate level Python
- And, the advanced directory is self-explanatory and contains topics such as:
- Explanations and examples of Data Models/Dunder methods
- Generators
- Object Oriented Programming, etc.
- And some code samples from a talk by James Powell, a Python dev who spoke at [Pydata Seattle 2017](https://youtu.be/cKPlPJyQrt4?si=PWPkMXvEtn-Y7bYv)
It's a really informative talk, some advanced material and abstract concepts.

This is not a comprehensive repo, (yet), some of the files in the advanced directory are empty.
Feel free to submit a PR with your own examples if you'd like.

## _If you like this, then [Give me a follow on GitHub](https://github.com/LinuxUser255), & star and watch this repo_