This course is for: Complete beginners in programming and people who know some basics but want to learn some tricks and more about standard libraries.
This course is not for: Experienced python programmers or anyone who knows about everything learnpython.org offers.
Before the actual course, I strongly recommend to try to get familiar with the language using those tutorials in links below or watching videos and trying out some things on your own.
Course is currently running on weekly basis usually 07:00 UTC Wednesdays but due to the summer time this may vary
#archlinux-classroom on Freenode provides always latest news in the topic
there will be at least 10 sessions, covering stuff (I will later elaborate in points) which should be enough to build something to lean to in your path to learn whatever else requiring some Python knowhow. If we raise enough demand, there could be for example a session about using packager X Y, session about cryptography, etc. But since we have internet and we record the lectures there are many avaliable tutorials online free or paid as you can see bellow.
One of the sessions I can offer might be:
- file operations, working with a lot of zip files, file scanning, etc.
- UnrealEnginePython plugin for Unreal Engine 4 ideally after passing through the The Unreal Engine Developer Course - Learn C++ & Make Games @Udemy
- anything else that will be requested and I have enough understanding about it that I can explain it
Whole playlist
- 18/06/27 - [Arch Classroom] Python for Beginners #1 (timestamps WIP, subtitles correction=0%)
- 18/07/04 - [Arch Classroom] Python for Beginners #2 - More Loops, Functions and Classes (timestamps WIP, subtitles correction=0%)
- 18/07/13 - [Arch Classroom] Python for Beginners #3 - Imports Modules, virtualenvs and main() in main.py (timestamps WIP, subtitles correction=0%)
- 18/07/18 - [Arch Classroom] Python for Beginners #4 - Functions *args **kwars explained + future plan and some examples (timestamps WIP, subtitles correction=0%)
- 18/07/27 - [Arch Classroom] Python for Beginners #5.1 - A IDE recap and simple program for listing files with stats and #5.2 (timestamps WIP, subtitles correction=0%)
- 18/08/03 - [Arch Classroom] Python for Beginners #6 - Timer script, regex in file_stater, short info about Flask and SQLAlchemy (timestamps WIP, subtitles correction=0%)
- 18/08/15 - [Arch Classroom] Python for Beginners #7 - Homeworks? Web Project? etc. (timestamps WIP, subtitles correction=0%)
- ..
- 18/09/01 - [Arch Classroom] Python for Beginners #10 - .* (timestamps WIP, subtitles correction=0%)
- list files in /var/cache/pacman/pkg (downloaded packages) and
- have dictionary with keys: name, versions (information just from filename)
- in #6 we used re module (regular expressions) and found out its not so simple to make pattern applicable to all pkg names
- some pkginfo using some archive modules (maybe pacman python module?)
- that was partially done in session #5
- have dictionary with keys: name, versions (information just from filename)
- remaining class timer was done session #6
- visualize the result.json created by file_stater.py, either by some plot or web app clicker
- no other simple project in plan, except pulec's which haven't been fully published
- Easy: Make scripts/remaining_class_time.py print in one line, overwriting the old (no need for sys module)
- Hard: Make multiple patterns or string operation logic in scripts/file_stater_arch.py to match name and ver of all possible Arch packages
- think of some cool key to 'analyze' the packages with, try to think of something that might be usefull for others or just for you
- using twitter, google, etc. as a source for searching about topic X and generating some results and rendering them nicely
Pulec is:
- Using Python for 6 years, last year professional with attending few lectures, rest is self tought and experience.
- Education: High School of Electronics (bad grades) && Unfinished Organic Agriculture
- Using Arch Linux for 6 years and working in Red Hat
- Likes: Open Source anything (Software, Games, Blueprints), Gardens inspired by Nature & wine
- Intro presentation; Crash Course through all basics of http://learnpython.org/ with few examples in ipython notebook
- First useful program, having a problem, solving it, using the solution
- Practice, Practice, Practice..tbd!
- Time for a project of yours.
- More theory, useful tips, delving deeper into topic X (Where X is whatever problem students will have)
- Where to go next, final questions, summary
- tbd..packaging
- tbd..sumary
- Arch : # pacman -S python3 ipython
- Linux && Windows : Video tutorial
- OSX : python-ugide-pt-br.readthedocs.io
Ideal way to share code is via Jupyter Notebooks, the ipynb files in this repo are what we went/will go through in YouTube streams.
It can run code snippets or whole programs in organized form and allows to make nice documents with Markdown notes inside.
Making graphs and other things which requires some 'web magic' is easy in these notebooks compared to regular shell.
Jupyter@archwiki:
Jupyter is a project which produces browser-based interactive environments for programming, mathematics, and data science. It supports a number of languages via plugins ("kernels"), such as Python, Ruby, Haskell, R, Scala and Julia. Jupyter Notebook is the traditional and most stable application. JupyterLab has a new interface and is more suitable for working with larger projects consisting of multiple files. JupyterLab is in beta as of February 2018.
On Arch just install jupyter and you can run jupyter notebook to start the server and browse ipynbs in this repo.
Other way is virtualenv (Arch: extra/python-virtualenv) which will probably work on most systems and might be interesting to learn if you haven't done this before
Create one in any directory by running:
virtualenv edu
where edu is the folder which will be created. Activate it by running source edu/bin/activate and then do
pip install jupyter
which will install close to 40 packages, or you can do the same by running
pip install -r requirements.txt
Then run:
jupyter notebook
And open one of the files with ipynb extensions.
Just dive in, you can read about it later
- Guided tutorial - learnpython.org - no installation needed, ipython in browser
- repl.it/languages/python3 - write code, run it, share it
- pythonanywhere.com - ipython terminal online
Now when you have some idea how its used try reading something
- Official tutorial
- Myths about Python
- Picking an Interpreter The State of Python (3 & 2) and Cpython, Jython, etc...
- Non-Programmer's Tutorial for Python 3
- Dive Into Python 3
- Porting from python2 to python3
- Test-Driven Development with Python
- Lots of free books avaliable
- Python Programming Beginner Tutorials - 19 videos around 20 minutes each
- Any lecture from Raymond Hettinger - currently 22 talks
For practice try:
- Try to write a script(program) where you declare 2 numbers to variables and it compares what is larger, what is smaller or if its equal. Print out some message for each situation and try all different test cases (first number larger, first number lower, equal numbers)
- More to come...
Corey's beginners tutorial was recently posted on reddit.com/r/learnprogramming/comments/6bxdut
- pyvideo.org or search for pycon on youtube for interesting lectures