9516
Comment: added link
|
← Revision 145 as of 2023-03-03 16:42:03 ⇥
13453
Removing dead links, Adding new course
|
Deletions are marked like this. | Additions are marked like this. |
Line 5: | Line 5: |
These books can be bought in hard copy, but are also available online for free. | Each of these books can be purchased online but is also available as free textual, website, or video content. |
Line 8: | Line 9: |
* [[http://openbookproject.net/thinkcs/python/english2e/|How to Think Like a Computer Scientist (2nd ed.)]] by Elkner, Downey, and Meyers is an open-source book. (Python 2) * [[http://learnpythonthehardway.org/book/|Learn Python The Hard Way]] The title is a misnomer. It would be better titled "Learn Python By Coding It." The author determined that learning python should be similar to learning an instrument. You don't get a book on scales, but you're taught a scale and practice it. The author teaches you how to code properly, how to think like a programmer, and develop quality problem solving skill through a set of 52 exercises that build on each other. (Python 2) * [[http://inventwithpython.com/pygame|Making Games with Python & Pygame]] by Al Sweigart (Python 3) introduces the Pygame framework for novices and intermediate programmers to make graphical games. The same author has written [[http://inventwithpython.com/bookshelf/|many other excellent free books]] |
* '''Automate the Boring Stuff with Python - Practical Programming for Total Beginners''' by ''Al Sweigart'' is "written for office workers, students, administrators, and anyone who uses a computer to learn how to code small, practical programs to automate tasks on their computer." ||[[https://automatetheboringstuff.com/|website]] ||[[http://www.amazon.com/gp/product/1593275994/|print version]] || * '''How To Think Like a Computer Scientist''' is a classic open-source book by ''Allen Downey'' with contributions from ''Jeffrey Elkner'' and ''Chris Meyers''. It was updated to Python 3 by ''Peter Wentworth.'' ||[[http://openbookproject.net/thinkcs/python/english3e/|website]] ||[[http://openbookproject.net/thinkcs/python/english3e/|print version]] || * '''Making Games with Python & Pygame''' by ''Al Sweigart'' introduces the Pygame framework for novices and intermediate programmers to make graphical games. ||[[http://inventwithpython.com/pygame|website]] ||[[http://www.amazon.com/Making-Games-Python-Pygame-Sweigart/dp/1469901730?ie=UTF8&tag=playwithpyth-20&linkCode=as2&camp=1789&creative=9325&creativeASIN=0982106017|print version]] || * '''Python One-Liners''' by ''Christian Mayer'' teaches you how to read and write "one-liners": concise statements of useful functionality packed into a single line of code. ||[[https://pythononeliners.com/|website with free one-liner explainer videos]] ||[[https://www.amazon.com/gp/product/B07ZY7XMX8|print version]] || * '''Think Python''' by ''Allen B. Downey'' teaches you how to think like a computer scientist. ||[[http://greenteapress.com/thinkpython/html/index.html|website]] ||[[https://www.amazon.com/Think-Python-Like-Computer-Scientist/dp/1491939362/|print version]] || You can find many free Python books online. For example, check out [[https://blog.finxter.com/free-python-books/|this article with 101 free Python books]]. |
Line 17: | Line 26: |
* [[http://www.checkio.org|CheckiO]] is a gamified website containing programming tasks that can be solved in either Python 2 or 3. * [[http://http://cscircles.cemc.uwaterloo.ca/|Computer Science Circles]] has 30 lessons, 100 exercises, and a message system where you can ask for help. Teachers can use it with their students. It is also available in Dutch, French, German and Lithuanian. (Python 3) * [[http://interactivepython.org/runestone/static/thinkcspy/index.html|How to Think Like a Computer Scientist: Interactive Edition (Python 3.x)]] is an interactive reimagination of Elkner, Downey and Meyer's book with visualizations and audio explanations. * [[http://www.codecademy.com/tracks/python|Python on Codecademy]] (Python 2) |
* [[https://python.land/python-tutorial|A beginner-friendly and free Python tutorial]] with interactive code examples, explaining the Python language in an easy-to-understand way. |
Line 22: | Line 28: |
== K-12 Oriented (for Children) == | * [[https://programiz.pro/learn/master-python|A beginner-friendly Python course]] that teaches to learn to code through bite-size lessons, quizzes and 100+ challenges. * [[http://www.checkio.org|CheckiO]] is a gamified website containing programming tasks that can be solved in Python 3. * [[https://www.codedex.io|Codédex]] is a learn to code platform for K-12 and college students. * [[https://www.codecademy.com/search?query=python|Codecademy (]]Python) * [[https://codetheblocks.com|Code the blocks]] combines Python programming with a 3D environment where you "place blocks" and construct structures. It also comes with Python tutorials that teach you how to create progressively elaborate 3D structures. * [[https://codevisionz.com/learn-python-programming/|Codevisionz Python]] 10+ hrs of Python learning material - Learn common programming concepts through code examples, quizzes, and challenges * [[http://cscircles.cemc.uwaterloo.ca/|Computer Science Circles]] has 30 lessons, 100 exercises, and a message system where you can ask for help. Teachers can use it with their students. It is also available in Dutch, French, German, and Lithuanian. * [[https://www.datacamp.com/courses/intro-to-python-for-data-science|DataCamp Python Tutorial]] Unlike most other Python tutorials, this 4 hour tutorial by [[https://www.datacamp.com/|DataCamp]] focuses on Python specifically for Data Science. It has 57 interactive exercises and 11 videos. * [[https://finxter.com|Finxter]] - How good are your Python skills? Test and Training with >300 hand-picked Python puzzles. * [[https://hackinscience.org|HackInScience]] - 50+ Python exercises on a free, adless, simple, and open-source platform. * [[https://runestone.academy/ns/books/published/thinkcspy/index.html|How to Think Like a Computer Scientist: Interactive Edition]] is an interactive reimagination of Elkner, Downey and Meyer's book with visualizations and audio explanations. * [[https://www.learnpython.org/|LearnPython]] is an interactive Python tutorial that is suitable for absolute beginners. * [[https://learn-python.adamemery.dev|Learn Python]] - A no install Python course with interactive exercises powered by Pyodide. == Resources for Younger Learners == (This section was previously called "K-12 Oriented", K-12 being a USA-centric term which refers to the primary and secondary educational stages; through level 3 on the UNESCO ISCED education levels list.) |
Line 25: | Line 59: |
* [[http://www.thinkful.com/learn/python-programming-fundamentals/|Build a "Pypet"]] Learn programming fundamentals in Python while building a tamagotchi style "Pypet" by Tatiana Tylosky. | |
Line 27: | Line 60: |
* [[http://jasonrbriggs.com/python-for-kids/index.html|Python for Kids]] by Jason R Briggs. Book with sample code and puzzles. |
|
Line 28: | Line 64: |
* [[https://www.webucator.com/self-paced-training/index.cfm#!?courseId=PYT111|Webucator's self-paced Python 3 course]] free for homeschoolers and other students (use HOMESCHOOL as the coupon code when checking out). This course is appropriate for students 13 and up. '''From our experience, these students can learn at least as quickly as adults new to programming.''' |
|
Line 32: | Line 70: |
* [[http://swaroopch.com/notes/python/|A Byte of Python]], by Swaroop C.H., is also an introductory text for people with no previous programming experience. (Python 3) * [[http://www.afterhoursprogramming.com/tutorial/Python/Overview/|After Hours Programming Python 3 Tutorial]] (Python 3) * [[http://askpython.com/|Ask Python]] Absolute Beginners Python Tutorial (Python 3) * [[http://hetland.org/writing/instant-hacking.html|Instant Hacking]] A minimal crash course by Magnus Lie Hetland that's an excellent starting point. (Python 2) * [[http://www.alan-g.me.uk|Learning to Program]] An introduction to programming for those who have never programmed before, by Alan Gauld. It introduces several programming languages but has a strong emphasis on Python. (Python 2 and 3) * The Wikibooks Non-Programmer's Tutorial for Python by Josh Cogliati is available for both [[http://en.wikibooks.org/wiki/Non-Programmer's_Tutorial_for_Python_2.6|Python 2]] and [[http://en.wikibooks.org/wiki/Non-Programmer's_Tutorial_for_Python_3.0|Python 3]]. * [[http://hkn.eecs.berkeley.edu/~dyoo/python/idle_intro/index.html|One Day of IDLE Toying]] A very gentle introduction to the IDLE development environment that comes with Python. This tutorial by Danny Yoo has been translated into nine different languages. (Python 2) |
* [[https://python.swaroopch.com/|A Byte of Python]], by Swaroop C.H., is also an introductory text for people with no previous programming experience. * [[https://www.afternerd.com/|Afternerd]], by Karim Elghamrawy, is a Python tutorials blog that is geared towards Python beginners. * [[https://askpython.com/|Ask Python]] Absolute Beginners Python Tutorial. * [[http://anh.cs.luc.edu/handsonPythonTutorial/|Hands-on Python Tutorial]] Beginners' Python, graphics, and simple client/server introduction, with videos. * [[http://www.alan-g.me.uk/l2p2|Learning to Program]] An introduction to programming for those who have never programmed before, by Alan Gauld. It introduces several programming languages but has a strong emphasis on Python. (Python 2 and 3) * [[https://itsmycode.com|ItsMyCode]] A Python Blog and tutorials built for developers who love coding * [[https://www.afterhoursprogramming.com/tutorial/Python/Overview/|After Hours Programming Python 3 Tutorial]] * [[http://letsfindcourse.com/python|Letsfindcourse - Python]]: Best Python tutorials and courses recommended by experts. * [[http://en.wikibooks.org/wiki/Non-Programmer's_Tutorial_for_Python_3.0|The Wikibooks Non-Programmer's Tutorial for Python by Josh Cogliati]] * [[https://www.coursesonline.co.uk/courses/python/|Online Python Courses]] Compare online Python courses from learning providers from across the UK * [[https://overiq.com/python/3.4/intro-to-python/|Learn Python]] An Introductory yet in-depth tutorial for Python beginners. |
Line 40: | Line 93: |
* There is a Python Tutorial in Python's documentation set. It's not written with non-programmers in mind, but it will give you an idea of the language's flavor and style. It is available for both [[http://docs.python.org/tut/|Python 2]] and [[http://docs.python.org/py3k/tutorial/|Python 3]]. * The Python-Course.eu website has an extensive tutorial for complete beginners, in both [[http://www.python-course.eu/course.php|Python 2]] and [[http://www.python-course.eu/python3_course.php|Python 3]], with lots of illustrations. |
* [[http://docs.python.org/py3k/tutorial/|Python Tutorial in Python's documentation set]]. It's not written with non-programmers in mind, but it will give you an idea of the language's flavor and style. * [[http://www.python-course.eu/python3_course.php|The Python-Course.eu's extensive tutorial for complete beginners]], with lots of illustrations. |
Line 44: | Line 100: |
* [[http://thepythonguru.com/|The Python Guru]] A beginner-friendly guide for aspiring programmers. * [[https://coderslegacy.com|CodersLegacy]] A website + blog geared towards both new and experienced programmers. Mainly focused on teaching Python. * [[https://www.patternsgameprog.com/series/discover-python-and-patterns/|Discover Python & Patterns with game programming]] Discover Python by programming video games. * [[https://www.quizcure.com/topic/python/|QuizCure: A Python Learning Platform]] Contains a list of Commonly asked Python Questions and Answers with Examples. == Tutorial Aggregators / lists == * [[https://gitconnected.com/learn/python|Gitconnected Python]] tutorials submitted and ranked by Python developers with the best rising to the top * [[https://coursesity.com/best-tutorials-learn/python|Coursesity - Python]] - Curated list of the best python courses and tutorials for beginners. * [[https://classpert.com/python-programming|Classpert - Python]] - A large collection of free and paid Python online courses, from a wide range of providers. * [[https://hackr.io/tutorials/learn-python|Hackr.io - Python]]: Programming community-recommended best Python tutorials and courses |
|
Line 45: | Line 116: |
/* please keep this list alphabetized */ These websites are written in support of science courses, but are general enough that anyone can learn from them. |
/* please keep this list alphabetized */ These websites are written in support of science courses but are general enough that anyone can learn from them. |
Line 49: | Line 119: |
* [[http://www.pentangle.net/python/handbook/|Handbook of the Physics Computing Course]] Also available in various forms at the author's [[http://www.pentangle.net/python/|Python in Education]] page, this is a preliminary course handbook for 1st-year university students with no computing experience. This course material is still preliminary and assumes some high school-level maths. It does not cover object-oriented programming or graphical applications. (Python 2) * Pasteur Institute courses are aimed at biologists but are useful to anyone wanting to learn Python. [[http://www.pasteur.fr/formation/infobio/python/|Introduction to Programming using Python]] is for people completely new to programming. * [[http://programminghistorian.org|The Programming Historian]] is a tutorial-style introduction to programming for practicing historians. It assumes that you're starting out with no prior programming experience and only a basic understanding of computers. (Python 2) |
* [[http://illustratedtheoryofnumbers.com/prog.html|Python for Number Theory]] is a series of Python notebooks (for Jupyter) for applications to number theory and cryptography. They assume no prior programming experience and are suitable for someone learning elementary number theory at the same time. They conclude with an introduction to primality testing and cryptography (Diffie-Hellman, RSA). == Apps == * [[https://www.programiz.com/learn-python|Programiz App to Learn Python]] - A beginner-friendly app on Android and iOS to learn Python step by step with an in-built interpreter and quizzes. |
Line 56: | Line 128: |
* [[http://www.toonzcat.com/progart.html|Python 3 Beginner Video Tutorials]] * The [[http://young-programmers.blogspot.com/search/label/python|Young Programmers Podcast]] contains video lessons on Python, Pygame, Jython, Scratch, Alice, Java and Scala. |
* [[https://youtu.be/uCzFUKWtzgA?list=PLboXykqtm8dy_DNg1NZiS08Dnyj35PWXw|Python Programming Tutorials for Beginners]]: Installation, IDE, variables, functions, strings, lists, OOP * The [[http://young-programmers.blogspot.com/search/label/python|Young Programmers Podcast]] contains video lessons on Python, Pygame, Jython, Scratch, Alice, Java, and Scala (somewhat outdated content!) == Email Academies == /* Python courses in your INBOX - please add only free resources */ * [[https://blog.finxter.com/email-academy/|Finxter Email Computer Science Academy]]: 20+ free Python and computer science courses delivered in email video lessons. '''Content''': cheat sheets, Python basics, data structures, NumPy, data science, career advancement, coding productivity, and machine learning. == Tools == * [[http://thonny.org|Thonny, Python IDE for beginners]] |
Line 62: | Line 143: |
If these sites come back to life, feel free to move them back up. Perhaps after 6 months it would be reasonable to delete them. * [[http://learn-to-program.net/python|Learning Python (for the complete nOOb)]] by Derrick Wolters. A beginner's tutorial to learn how to program in Python. (Python 2) -- ''1/3/14: This is a dead link and a quick but very limited Google search turned up nothing. It is available on the wayback machine, however - [[https://web.archive.org/web/20110913183904/http:/www.learn-to-program.net/|Wayback Machine]]'' |
If these sites come back to life, feel free to move them back up. Perhaps after 6 months, it would be reasonable to delete them. |
Line 69: | Line 148: |
* [[http://www.pythonforbiologists.com|Python for biologists]] (Python 3) * [[http://www.teachmepython.com|Teach Me Python]] A Python tutorial for fast learners. (Python 2) |
|
Line 72: | Line 149: |
* [[http://www.learnpython.org/|learnpython.org]] (Python 2) ''2/10/15: interactivity not working'' * [[http://www.learnstreet.com/lessons/languages/python|LearnStreet: Free interactive Python courses and practice exercises]] (Python 2) |
|
Line 75: | Line 150: |
* [[http://www.livewires.org.uk/python/|LiveWires]] A set of Python lessons used during 1999, 2000, 2001 and 2002 children's summer camps in Britain by Richard Crook, Gareth McCaughan, Mark White, and Rhodri James. Aimed at children 12-15 years old. ''7/10/15: Site not up when clicked.'' | * [[http://www.livewires.org.uk/python/|LiveWires]] A set of Python lessons used during 1999, 2000, 2001, and 2002 children's summer camps in Britain by Richard Crook, Gareth McCaughan, Mark White, and Rhodri James. Aimed at children 12-15 years old. ''7/10/15: Site not up when clicked.'' |
Line 77: | Line 152: |
Line 79: | Line 153: |
---- CategoryPythonInEducation CategoryPythonInEducation |
Python for Non-Programmers
If you've never programmed before, the tutorials on this page are recommended for you; they don't assume that you have previous experience. If you have programming experience, also check out the BeginnersGuide/Programmers page.
Books
Each of these books can be purchased online but is also available as free textual, website, or video content.
Automate the Boring Stuff with Python - Practical Programming for Total Beginners by Al Sweigart is "written for office workers, students, administrators, and anyone who uses a computer to learn how to code small, practical programs to automate tasks on their computer." ||website ||print version ||
How To Think Like a Computer Scientist is a classic open-source book by Allen Downey with contributions from Jeffrey Elkner and Chris Meyers. It was updated to Python 3 by Peter Wentworth. ||website ||print version ||
Making Games with Python & Pygame by Al Sweigart introduces the Pygame framework for novices and intermediate programmers to make graphical games. ||website ||print version ||
Python One-Liners by Christian Mayer teaches you how to read and write "one-liners": concise statements of useful functionality packed into a single line of code. ||website with free one-liner explainer videos ||print version ||
Think Python by Allen B. Downey teaches you how to think like a computer scientist. ||website ||print version ||
You can find many free Python books online. For example, check out this article with 101 free Python books.
Interactive Courses
These sites give you instant feedback on programming problems that you can solve in your browser.
A beginner-friendly and free Python tutorial with interactive code examples, explaining the Python language in an easy-to-understand way.
A beginner-friendly Python course that teaches to learn to code through bite-size lessons, quizzes and 100+ challenges.
CheckiO is a gamified website containing programming tasks that can be solved in Python 3.
Codédex is a learn to code platform for K-12 and college students.
Codecademy (Python)
Code the blocks combines Python programming with a 3D environment where you "place blocks" and construct structures. It also comes with Python tutorials that teach you how to create progressively elaborate 3D structures.
Codevisionz Python 10+ hrs of Python learning material - Learn common programming concepts through code examples, quizzes, and challenges
Computer Science Circles has 30 lessons, 100 exercises, and a message system where you can ask for help. Teachers can use it with their students. It is also available in Dutch, French, German, and Lithuanian.
DataCamp Python Tutorial Unlike most other Python tutorials, this 4 hour tutorial by DataCamp focuses on Python specifically for Data Science. It has 57 interactive exercises and 11 videos.
Finxter - How good are your Python skills? Test and Training with >300 hand-picked Python puzzles.
HackInScience - 50+ Python exercises on a free, adless, simple, and open-source platform.
How to Think Like a Computer Scientist: Interactive Edition is an interactive reimagination of Elkner, Downey and Meyer's book with visualizations and audio explanations.
LearnPython is an interactive Python tutorial that is suitable for absolute beginners.
Learn Python - A no install Python course with interactive exercises powered by Pyodide.
Resources for Younger Learners
(This section was previously called "K-12 Oriented", K-12 being a USA-centric term which refers to the primary and secondary educational stages; through level 3 on the UNESCO ISCED education levels list.)
Guido van Robot A teaching tool in which students write simple programs using a Python-like language to control a simulated robot. Field-tested at Yorktown High School, the project includes a lesson plan.
Python for Kids by Jason R Briggs. Book with sample code and puzzles.
PythonTurtle A learning environment for Python suitable for beginners and children, inspired by Logo. Geared mainly towards children, but known to be successful with adults as well.
Webucator's self-paced Python 3 course free for homeschoolers and other students (use HOMESCHOOL as the coupon code when checking out). This course is appropriate for students 13 and up. From our experience, these students can learn at least as quickly as adults new to programming.
Tutorials and Websites
A Byte of Python, by Swaroop C.H., is also an introductory text for people with no previous programming experience.
Afternerd, by Karim Elghamrawy, is a Python tutorials blog that is geared towards Python beginners.
Ask Python Absolute Beginners Python Tutorial.
Hands-on Python Tutorial Beginners' Python, graphics, and simple client/server introduction, with videos.
Learning to Program An introduction to programming for those who have never programmed before, by Alan Gauld. It introduces several programming languages but has a strong emphasis on Python. (Python 2 and 3)
ItsMyCode A Python Blog and tutorials built for developers who love coding
Letsfindcourse - Python: Best Python tutorials and courses recommended by experts.
The Wikibooks Non-Programmer's Tutorial for Python by Josh Cogliati
Online Python Courses Compare online Python courses from learning providers from across the UK
Learn Python An Introductory yet in-depth tutorial for Python beginners.
The Python tips blog includes Python tips and tutorials for beginners and professional programmers.
Python Tutorial in Python's documentation set. It's not written with non-programmers in mind, but it will give you an idea of the language's flavor and style.
The Python-Course.eu's extensive tutorial for complete beginners, with lots of illustrations.
Pythonspot Tutorials Python tutorials.
The Python Guru A beginner-friendly guide for aspiring programmers.
CodersLegacy A website + blog geared towards both new and experienced programmers. Mainly focused on teaching Python.
Discover Python & Patterns with game programming Discover Python by programming video games.
QuizCure: A Python Learning Platform Contains a list of Commonly asked Python Questions and Answers with Examples.
Tutorial Aggregators / lists
Gitconnected Python tutorials submitted and ranked by Python developers with the best rising to the top
Coursesity - Python - Curated list of the best python courses and tutorials for beginners.
Classpert - Python - A large collection of free and paid Python online courses, from a wide range of providers.
Hackr.io - Python: Programming community-recommended best Python tutorials and courses
Tutorials for Scientific Audiences
These websites are written in support of science courses but are general enough that anyone can learn from them.
Beginning Python for Bioinformatics by Patrick O'Brien. An introduction to Python aimed at biologists that introduces the PyCrust shell and Python's basic data types.
Python for Number Theory is a series of Python notebooks (for Jupyter) for applications to number theory and cryptography. They assume no prior programming experience and are suitable for someone learning elementary number theory at the same time. They conclude with an introduction to primality testing and cryptography (Diffie-Hellman, RSA).
Apps
Programiz App to Learn Python - A beginner-friendly app on Android and iOS to learn Python step by step with an in-built interpreter and quizzes.
Videos
Python Programming Tutorials for Beginners: Installation, IDE, variables, functions, strings, lists, OOP
The Young Programmers Podcast contains video lessons on Python, Pygame, Jython, Scratch, Alice, Java, and Scala (somewhat outdated content!)
Email Academies
Finxter Email Computer Science Academy: 20+ free Python and computer science courses delivered in email video lessons. Content: cheat sheets, Python basics, data structures, NumPy, data science, career advancement, coding productivity, and machine learning.