Why Python?


It's popular

It’s a general purpose, high-level programming language with a large support community for many different applications.


It's easier

Its syntax emphasizes readability and is closer to spoken English than other common programming languages, making it easier to learn for beginners.


It's flexible

It supports multiple programming styles, allows for execution on various computing systems, and encourages modularity and reuse of code.


It's easier

Unlike human languages, which can often be ambiguous in meaning, programming languages need to be explicit in their instructions to a machine, but oftentimes, this results in language syntax that is hard for users to read and understand. Python, as a high level programming language, is built to sound closer to the English language while still conveying commands clearly and without ambiguity.

For example, here is some sample code in Java and Python that prints the phrase "Hello World!" to the screen.


public class HelloWorld {
    public static void main(String[], args) {
        System.out.println("Hello, World!");


print "Hello, World!"

Notice how the Python code is understandable even if you've never seen it before? This is what makes Python so much easier to learn.

No matter how easy or difficult something is to learn, sometimes, the hardest part about starting a learning journey is taking that first step. This interactive Python interpreter makes it easy for anyone to start coding immediately by loading a text editor and compiler directly into your browser, so you can play with Python without worrying about software installation.

Why not try out the “Hello, World!” code example for yourself?


It's flexible

There are many choices for a user when it comes to coding Python, in terms of operating system, coding environments and editors. The choice you make may depend on personal coding style, or whether there is ample support in case you need help. Here are a few options to consider:

If you use a Mac, you’re in luck! You may already have a Python interpreter installed on your computer. Open a terminal (Command + Space to open Spotlight, type in Terminal), and type in Python. You may see that you are immediately ready to start writing code!

If Python is not readily available on your computer, you may want to download and install a standalone Python interpreter from Python.org. Follow these instructions to install Python on Mac and PC.

Installation instructions

Once you have Python installed, you can choose your favorite editor to write your code. At Udacity, we like to use Sublime Text, which allows you to write and build code all in the same program. Sublime Text can be evaluated for free but you will need to purchase a license for continued use. Free options include TextWrangler for Mac and Notepad++ for PC.

Beyond these basics, other options for writing and running Python code include ‘integrated development environments’ (IDEs) which are packages that include everything you need to develop code in Python, such as IDLE or PyCharm. These packages can contain other features you may not need (or understand) as a beginner, and the set up process may be more involved.


Project Create and Analyze a Social Network
Learn key computer science concepts in this introductory Python course. You'll learn by doing, and will build your own search engine and social network.
Project Explore Python to Build Your Own Program
Introductory programming class to learn Object-Oriented Programming, a must-have technique to reuse and share code easily. Learn by making projects that spread happiness!

Useful Resources

Just Python

Learn Python the Hard Way

A free online book by Zed Shaw. It's written for novice programmers looking to learn Python. It's organized by topic and has very good explanations and example code throughout. Each section ends with helpful 'Study Drills.'

Python Wiki

This reference might be overwhelming, but it has links, links and more links on everything Python.

The Hitchhiker’s Guide to Python

A self-proclaimed opinionated Python best-practices handbook, for both beginners and experts.

Basic and Advance Python Tutorials

Does python documentation overwhelm you? Here's an excellent beginner resource that has clear explanations and simple examples.

Libraries & frameworks

Standard Library

The language reference manual for syntax and semantics of Python. Highlights include high-order functions, container datatypes, and iterators for efficient looping.

Useful Modules from Python Standard Library

A thread on stackoverflow about the most useful modules that come with Python.


Flask is a micro web development framework. It's simple to learn, easy to understand, and well-documented. It's great for small to medium sized projects.

Django Framework

Django is a free and open source high-level web framework for Python that is commonly used in Python applications.

Developer tools

iPython and iPython Notebook

A web-based interactive computational environment that combines code execution, text, mathematics, plots and rich media in a single document.


A tool to help find bugs in python source code.

Setting up Sublime Text

If you choose to use Sublime Text, use this resource to customize the interface for your own preferences.



Quora is a great place to ask questions as well as share your own knowledge and experiences.

Python Hackers

Share your Python projects with other enthusiastic developers.


This is where to ask specific code-related questions if you’re ever stuck on a problem.

Code tricks & examples

Python Code Snippets

A focal point for snippets of Python code that can be used (and reused) for various purposes.

Popular Python Recipes

More code examples to perform specific tasks and various snippets for whatever you might need.

Learn X in Y Minutes

A comprehensive list of short code examples for commonly used Python syntax.

Fun practice opportunities

Project Euler

This site provides a lot of highly mathematical problems which can be solved with programming. It's a good place for building your 'Procedural Thinking'.

Python Problem Sets

Practice opportunities from the organization that manages the Python language. Some are better than others.

Useful articles

29 Common Beginner Python Questions

A super-helpful flowchart for when your code isn't working.

Common Mistakes of Python Programmers

A list of different things you might be doing wrong, or things you can probably do better.


Python Glossary

A list of commonly used Python terms and their definitions.


A side-by-side reference of Python syntax vs other scripting languages.