Python community has its own unique character. Python has a culture which finds an ideal balance between fast-moving innovation and diligent caution. It emphasizes readability, minimizes "magic," treats documentation as a first-class concern, and has a tradition of well-tested, backward-compatible releases in both the core language and its ecosystem of libraries. It blends approachability for beginners with maintainability for large projects, which has enabled its presence in fields as diverse as scientific computing, video games, systems automation, and the web. (Source: Heroku)
Learning Python for total beginners that have no previous programming experience.
PRO TIP: As soon as you come to learning conditional statements
if
,elif
,else
andwhile
use Python Tutor to 'visualize' code execution - it really helps a lot in understanding what's happening under the hood.
-
Google Python Class (YouTube Video)
- Support materials and exercises
- Additional stuff recommanded by Google: Udacity - CS101
-
How to Think Like a Computer Scientist (Interactive online)
-
A Byte of Python (Book online)
-
Python for You and Me - PYM (Book online)
-
CodeAcademy Python Course (Interactive online)
-
Learn Python The Hard Way (Book online)
-
CS Principles: Big Ideas in Programming (Interactive online)
-
Write automated tests right from the beginning!
- Write unit tests with py.test (PyTest tutorial)
- ...
-
Want more? For free?
- https://checkio.org/ (GAME!!! Play & Learn!)
- https://www.codewars.com/?language=python
- https://www.coursera.org/learn/python/
- https://www.coursera.org/learn/learn-to-program/
- http://www.afterhoursprogramming.com/tutorial/Python/Overview/
- https://www.learnpython.org/
- http://www.pyschools.com/
- http://codingbat.com/python
- http://www.markandclick.com/ (Interactive tutorial)
- http://inventwithpython.com/ (4 online books)
- Automate The Boring stuff
- Invent your own computer games with python
- Making Games with Python & PyGame
- Hacking Secret Ciphers with Python
- http://www.singpath.com/#/paths (nice idea - unfotunatly buggy as sh**)
- ...
-
Want even more & are ready to pay for it? (Mostly paid stuff):
- https://www.codecademy.com
- https://realpython.com ($60)
- https://www.codeschool.com/ ($20 - $30 /mo)
- https://www.datacamp.com/
- ...
Use http://pythontutor.com to 'visualize' your code
For people that have at least some previous programming experience even if it's from other languages.
- Dive Into Python 3 (Book online)
- Python for Computational Science and Engineering (PDF)
- Problem Solving with Algorithms and Data Structures (Interactive online)
- [Python How to Program] (Python How to Program) (Youtube)
- The Hitchhiker’s Guide to Python! (Book online)
- Python Challenge (Solve riddles!)
- The Python (3.6.0) Tutorial (python.org)
- http://pythonpracticeprojects.com/
- https://www.coursera.org/learn/interactive-python-1/
- https://www.coursera.org/learn/interactive-python-2/
Where do you want to go after Part I and II? There are a lot of special areas and it is hard to master them all thus you should decide where you want to put your focus.
- Backend/API development
- Frontend/GUI development
- Web Application/Apps development (front- & backend)
- Django-Girls (Tutorial)
- Quality assurance & Test automation
- Game development
- Data mining & analytics
- System/Server administration (DevOps)
- AI & machine Learning
- Hacking
- ...
- https://atom.io/
- https://code.visualstudio.com/
- https://www.sublimetext.com/
- for PART I: https://repl.it/languages/python3 (no installation require)
- for PART II: PyCharm CE / IntelliJ CE / VisualStudio 2015+
- for PART III: one of PART II + some specialized tools or frameworks
What do I need to do to configure git properly for Github?
-
git config --global user.name "tset-noitamotua"
-
git config --global user.email "[email protected]"
-
git config --global credential.helper wincred
(Windows only?)NOTE: first time you use e.g.
git push
you will be prompt for credentials though
... and connect it to your repo on Github
echo "# Name of Project" >> README.md
git init
git add README.md
git commit -m "initial commit"
git remote add origin https://github.com/Tset-Noitamotua/repository_name.git
git push -u origin master
git remote add origin https://github.com/Tset-Noitamotua/repository_name.git
git push -u origin master
That allows you to easily merge changes from original repo into your fork and thus keeps you synced:
1. git clone https://github.com/Tset-Noitamotua/robotframework # my fork url
2. git remote add upstream https://github.com/robotframework/robotframework.git # upstream repo url
3. git checkout master # if not already on master branch
4. git pull upstream master # or any other branch
5. git push origin master # to update your remote branch
For more details read original Github documentation:
Sync a fork of a repository to keep it up-to-date with the upstream repository (syncing a fork)
You might need this in case you cloned a repo directly (without forking it in the first place) but later decide to fork it.
git remote set-url origin https://github.com/Tset-Noitamotua/awesome-test-automation # my fork url
NOTE: can't use
reset
here because there is only one commit in that case
git update-ref -d HEAD
It will delete the named reference HEAD, so it will reset (softly, you will not lose your work) all your commits of your current branch (more details on stackoverflow.com). To get an working git repo after that you will have to init it again:
git init
git add .
git commit -am "initial commit"
git push -f
As my first kid - my son John - was born in 2013 I said "if he can learn a language in 2 or 3 years then I should be able to learn Python with ease in the same time - even with no prior programming skills."
John is 6 years now as I once again edit this document, which I started to write somewhere in the end of 2014. While John learned to walk, to run, to ride bicycle and to speak almost two languages (German and Russian) I am still on a beginner like level in Python. In the past few years I have started several times more or less from scratch and unfortunately never finished. Meanwhile my second kid - my daughter Mia - was born (2016) and she's already speaking almost like a pro while I am still/again learning. This is just another attempt to continue my Python journey. I swear to myself I will master that beast! (09/08/2018)