Python
Welcome to Python, a versatile and beginner-friendly programming language. This guide will help you get started quickly and confidently.
What is Python?
Python is a high-level, interpreted programming language known for its simplicity and readability. It is widely used in:
- Web development
- Data analysis and visualization
- Artificial intelligence and machine learning
- Automation and scripting
- Scientific computing
Python’s clean syntax makes it easy for beginners, while its rich ecosystem of libraries makes it powerful for professionals.
Why Learn Python?
- Easy to Read and Write – Python uses human-friendly syntax.
- Versatile – Use Python for many types of projects.
- Large Community – Millions of developers and abundant resources.
- Cross-Platform – Runs on Windows, macOS, Linux, and Raspberry Pi.
Resources for Learning Python
In addition to these guides, there are many CSU courses and free resources available for learning python.
View CSU Course Tree
Topic
Prerequisite Group
Course
Here are some of the free resources available organized by category.
Books / eBooks
| Resource | Author / Provider | Best for (goal) | Level |
|---|---|---|---|
| Automate the Boring Stuff with Python | Al Sweigart | Learning more about Automation and real-world scripting | Beginner |
| Dive Into Python 3 | Mark Pilgrim | Deepening your understanding of Python | Intermediate |
| The Hitchhiker's Guide to Python | Kenneth Reitz et al. | Learning best practices for clean code in python | Intermediate |
Applied / Domain-Specific Resources
| Resource | Author / Provider | Best for (goal) | Level |
|---|---|---|---|
| Coding and Cookies: Python | Coding and Cookies | Accessing python coding resources such as workshops and online lessons | Beginner |
| Evan Anspach: Github | Evan Anspach | Practicing Python Code | Beginner |
| Logan Seabolt: Github | Logan Seabolt | Practicing If-Statements | Beginner |
| Haonen Chen: Github | Haonen Chen | Python applications for AI and robot learning | Advanced |
| Haonen Chen: Github | Haonen Chen | Utilizing Python for robot learning | Advanced |
| Logan Seabolt: Github | Logan Seabolt | Applying Python Code to Research | Advanced |
| Sarathsreedharan: Github | Sarath Sreedharan | Using Python to build AI and large scale modeling. | Advanced |
| Yunpeng Zhao: Github | Yunpeng Zhao | Learning to use Python for research data analysis | Advanced |
| Python Coding Resources | The Carpentries | Accessing a wide array of python coding resources | Beginner - Advanced |
Online Courses / Structured Learning Paths
| Resource | Author / Provider | Best for (goal) | Level |
|---|---|---|---|
| Programming with Python | The Carpentries | Learning to program with python for data science purposes | Intermediate |
Video Courses / Structured Learning Paths
| Resource | Author / Provider | Best for (goal) | Level |
|---|---|---|---|
| Automate the Boring Stuff (Videos) | Al Sweigart | learning how to use Automation; productivity; and scripting | Beginner |
| Sage Campus - Intro to Python | Sage Campus | Learning important concepts for python | Beginner |
| Sage Campus - Intermediate Python Skills | Sage Campus | Applying coding to research based workflows | Intermediate |
| Khan Academy - Intro to Python | Khan Academy | Introducing oneself to python | New to Programming |
| MIT - Introduction to Computer Science and Programming in Python | MIT OpenCourseWare | Strong programming foundations; CS thinking | New to Programming |
| Software Carpentry - Python Novice Inflammation | Software Carpentry | Gaining a foundational knowledge of scientific computing basics | New to Programming |
Documentation / Reference / Practice
| Resource | Author / Provider | Best for (goal) | Level |
|---|---|---|---|
| W3Schools Python Exercises | W3Schools | Practicing and reinforcing python skills | Beginner |
| Real Python | Real Python Team | Programming with python for real world applications | Intermediate |