Learning Python Resources
This is a list of resources I am using to learn Python. Note that I am not a complete programming rookie but am somewhat rusty having not programmed professionaly for several years. These resources are generally aimed at someone who has some programming experience therefore.
I will be adding to this list as I learn more and putting in review comments and code samples as I go.
I've also added links to a few other resources which, whilst not directly Python related, will be useful whilst putting together a Python program using a web frontend and for managing code etc.
You can find some Python code examples built during my learning here.
You can find projects I am working on here.
Scroll to the end to get the curriculum I've put together to use these resources.
Last Update (11th July 2020)
- Added UI (appwindow.py) for entering data. Built using Tkinter.
Tools
Python
Before you can do anything with Python you need to install it. Python is cross-platform (i.e. can run on macOS, Windows, Linux and Docker) and you can download it from here.
Python Extension for Visual Studio Code
In order to do anything practical with Python you'll need an Integrated Development Environment with extensions that support the language. A Visual Studio Code (VSC) extension with rich support for the Python language (for all actively supported versions of the language: 2.7, >= 3.5), including features such as IntelliSense, linting, debugging, code navigation, code formatting, Jupyter notebook support, refactoring, variable explorer, test explorer, snippets, and more! The VSC extension for Python can be downloaded from within VSC or from here.
Once you have VSC and the Python extension installed you can test everthing works by building a Hello World
program following these instructions.
Jupyter Project
Project Jupyter is a non-profit, open-source project, born out of the IPython Project in 2014 as it evolved to support interactive data science and scientific computing across all programming languages. The Jupyter Notebook sits between the command line and code editors like Visual Studio Code (VSC) allowing you to develop fragments of code for testing.
If you use pip, you can install Jupyter with:
pip install notebook
Congratulations, you have installed Jupyter Notebook! To run the notebook, run the following command at the Terminal (Mac/Linux) or Command Prompt (Windows):
jupyter notebook
See Running the Notebook for more details.
Websites
Python.org
The open source site for Python is here.
Python Documentation
Python Documentation (at python.org) can be found here.
Google's Python Class
Google's Python Class is a free class for people with a little bit of programming experience who want to learn Python. The class includes written materials, lecture videos, and lots of code exercises to practice Python coding.
The Python Guide for Beginners (freeCodeCamp)
This Python Guide for Beginners allows you to learn the core of the language in a matter of hours instead of weeks.
w3schools.com Python Tutorial
The w3schools.com Pyhthon tutorial can be found here.
Full Stack Python
An open source book that explains the technical concepts in plain language to build web based applications.
Courses (Paid)
The Python Mega Course: Build 10 Real World Applications (Udemy)
Start Python from the basics and learn how to create 10 amazing and professional Python programs used in the real world! This course is on Udemy. This is a paid for class (watch out for offers/discounts) you can get here.
Programming for Everybody - Getting Started with Python (Coursera)
This course aims to teach everyone the basics of programming computers using Python. We cover the basics of how one constructs a program from a series of simple instructions in Python. The course has no pre-requisites and avoids all but the simplest mathematics. Anyone with moderate computer experience should be able to master the materials in this course.
Complete Python Bootcamp: Go from zero to hero in Python 3 (Udemy)
This course aims to get you learn Python like a professional. Starting from the basics it goes all the way to creating your own applications and games.
100 Days of Code in Python
This course provides both instruction as well as code challenges over 100 days teaching you to be a successful Python programmer. The course is 1-part video lesson, 2-parts guided projects that teaches you many Python technologies and libraries.
Courses (Free)
Python Basics for Data Science (edX)
In this course provides a beginner-friendly introduction to Python for Data Science. Practice through lab exercises, and you'll be ready to create your first Python scripts on your own!
Analyzing Data with Python (edX)
In this course, you will learn how to analyze data in Python using multi-dimensional arrays in numpy, manipulate DataFrames in pandas, use SciPy library of mathematical routines, and perform machine learning using scikit-learn!
Visualizing Data with Python (edX)
Data visualization is the graphical representation of data in order to interactively and efficiently convey insights to clients, customers, and stakeholders in general. In this course, you will learn how to leverage a software tool to visualize data that will also enable you to extract information, better understand the data, and make more effective decisions.
Machine Learning with Python: A Practical Introduction (edX)
Machine Learning can be an incredibly beneficial tool to uncover hidden insights and predict future trends. This Machine Learning with Python course will give you all the tools you need to get started with supervised and unsupervised learning.
Python for Everybody (freeCodeCamp)
This course aims to teach everyone the basics of programming computers using Python 3. The course has no pre-requisites and anyone with moderate computer experience should be able to master the materials in this course.
Learn Python by Building 5 Games (freeCodeCamp)
If you're looking for a fun way to practice Python, start here. You'll build Tetris, Pong, Snake, Connect Four, and even an online multiplayer game. Each game tutorial includes a working example codebase.
Learn How to Use Tkinter to Create GUIs in Python (freeCodeCamp)
Tkinter makes it simple to create a GUI which handles user input and output. The GUI uses a form of object oriented programming called "event-driven" which means that the program responds to events, which are actions that a user takes. This 5.5 hour class is a comprehensive course about how to use Tkinter available for free on the freeCodeCamp.org YouTube channel.
Create Standalone EXE Files with Python and Tkinter (Codemy)
This course describes how to create standalone EXE files in Python.
Learn Data Analysis with Python (freeCodeCamp)
Learn Data Analysis with Python. This free course covers SQL, NumPy, Pandas, Matplotlib, and other tools for visualizing data and creating reports. We also include Jupyter Notebooks so you can run the code yourself, along with plenty of exercises to reinforce your understanding of the concepts.
Data Analysis and Visualisation
PyData
[PyData][(https://pydata.org) provides a forum for the international community of users and developers of data analysis tools to share ideas and learn from each other.
Seaborn
Seaborn is a Python data visualization library based on matplotlib. It provides a high-level interface for drawing attractive and informative statistical graphics.
Bokeh
Bokeh is an interactive visualization library for modern web browsers. It provides elegant, concise construction of versatile graphics, and affords high-performance interactivity over large or streaming datasets. Bokeh can help anyone who would like to quickly and easily make interactive plots, dashboards, and data applications.
Tkinter
Tkinter is the inbuilt python module that is used to create GUI applications. It is one of the most commonly used modules for creating GUI applications in Python as it is simple and easy to work with. An overview of the main Tkinter classes and methods can be found here.
Non-Python Related Topics
Markdown
Markdown is used to write this page. You can find a good reference for that here.
The HTML Handbook
This handbook on HTML is aimed at two types of audience. First, the beginner. I explain HTML from zero in a succinct but comprehensive way, so you can use this book to learn HTML from the basics. Then, the professional. HTML is often considered like a secondary thing to learn. It might be taken for granted. Yet lots of things are obscure to many people. This handbook aids a basic understanding of the topic. Even if you don't write HTML in your day to day work, knowing how HTML works can help save you some headaches when you need to understand it from time to time, for example while tweaking a web page.
Beginners Guide to Git and GitHub
This beginner’s guide to Git and GitHub will introduce you to Gits version control fundamentals.
GitHub Manual
This is a good GitHub manual for beginners.
Project Ideas
Here's a resource to help you come up wth unlimited ideas for your coding projects.
Learning Approach
Here's a learning approach I've put together which works for me.
- Install Python for your environemnt as well as an IDE with any extensions you need.
- Install Jupyter Notebook.
- Do a complete course. I did The Python Mega Course: Build 10 Real World Applications from Udemy which I got at a dramatically reduced price (£21.99 instead of £199.99). There are also numerous free courses such as though.
- Look specifically at data analysis. For example try Learn Data Analysis with Python which is free
- Use a reference like this to supplement your learning.
- Do an actual project to enhance your learning. Check out some of my projects here.