Python Resources
If you're new to Python, we recommend that you start here! Also please check out our Learn Python past meetings posts for more guided resources.
Where to ask questions
The best place online is probably Stack Overflow. If you do a Google search, you might find a similar question already asked (and answered!) on Stack Overflow. The site is picky about new questions; please read Stack Overflow's tour or this in-depth essay on asking good questions by Eric Raymond.
Of course, you're always welcome to ask in person or on the mailing list; subscribe here.
Python Fundamentals
Some resources require installing Python on your computer.
No-installation intros
These resources use a Python interpreter that works through your web browser, so things will work right away!
Intros from Berkeley
Online tutorials
- Tutorial from Data Carpentry
- Tutorial from the official Python website
- The Beginners' Guide from the Python wiki
- A useful collection of Python tutorials
- Javasprout Python tutorial
- Introduction to Programming: mini-lectures (all written in Jupyter notebooks - project page here)
- Another useful collection of Python tutorials
- Simplilearn has some trainings (basics, intermediate, advanced). They're not free!
Video tutorials
Cheat Sheets
E-books
- Python for Social Sciences
- Think Python: How to Think Like a Computer Scientist
- 6 Free ebooks for python
- Python for Data Analysis (a great intro to real scientific computing with Python)
- Intermediate Python
- At Berkeley, we have access to the following e-book catalogs (which includes the Data Analysis book above):
Downloading & Using Python
We have a recommended installation process linked here.
Online Python interpreters
- PySchools
- Codecademy Labs
- Wakari.io (for Jupyter notebooks)
On your own computer
If you are using OS X or Linux (or similar), you likely already have Python
installed. You can just run python
from the command line.
If you don't know how to run things from the command line, it's probably easiest to start with the Wakari link above, or you can try the Shell tutorial from Software Carpentry. If you want more of a power-user experience then you can start with the Command Line Crash Course.
If you install Python, you can follow the instructions on the Jupyter page. (Jupyter includes an enhanced shell for Python.)
Python Special Topics
A general resource when you're exploring new topics is the Hitchhiker's Guide to Python. (Just like this site, you can contribute to the Hitchhiker's Guide via GitHub.)
Here's a gallery of interesting IPython/Jupyter notebooks.
Head over to Full Stack Python to learn how to write and deploy Python-based web applications using popular frameworks such as Flask and Django.
Lessons on other topics are available from Software Carpentry.
Or, you can learn about these tools from their websites:
- Pandas for reading / manipulating data
- Matplotlib (the most common graphing library, includes a great gallery)
And then look here for inspiration:
- View existing IPython notebooks
- A list of interesting IPython notebooks
- Working with Matplotlib. This site has a couple other cool references on data journalism and SQL.
At UC Berkeley
UC Berkeley has a lot of great resources for learning scientific computing and data science. There are classes, tutorials, reading groups, institutes, and much more.
Below are some things worth checking out. For links to more events & groups on campus, visit our Python community page.
Scientific Computing
- The D-Lab
- The I-school Master's in Data Science
- The Berkeley Institute for Data Science (launch page here)
- The Berkeley VC for research page on data science
- The Open Computing Facility, which provides free access to highly-performant servers with Python, IPython, and related tools to all members of the UC Berkeley community. OCF volunteers also maintain a Python library for interacting with university resources like LDAP and CAS.
Python Courses
- CS9H - Self-paced Python course. Requires some programming background. Good for people that know another language and want to pick up Python.
- AY250 - "Python computing for science." More advanced python course for scientists.
- AY98- "Python Programming for Astronomers". Introductory python course with an emphasis on applications to astronomy.
- PS239T - "Introduction to Computational Tools and Techniques for Social Research" is Rochelle Terman's course for technical training in computational social science and digital humanities. Of special note is her tutorial on APIs and her webscraping tutorial.
- CS61A and Data8 are undergraduate courses that teach programming fundamdentals through the Python language
Intensives
D-Lab hosts week-long Python intensives in January, May, and August, and workshops throughout the academic year. Click here to see upcoming workshops
Software Carpentry offers a variety of trainings around the world. Check their site for bootcamp dates.