Python Office Hours
Hi!
When and Where?
Every other Monday.
It was every other Wednesday, it moved to Monday sometime in mid 2022. It should appear on our handy-dandy calendar of events. We usually met in the Electronics Area upstairs.
3519 N. Elston Chicago, IL 60618
We talk on irc in the #pumpingstationone freenode channel. It is handy for sharing links to information and pastebins. If you don't have an irc client installed, you can connect to the channel via this web client: #pumpingstationone IRC
What is this?
This is a chance for people of all experiences levels to get together for programming, socializing, and moral support while working on things. This is a flipped "office hours" where you can learn from your peers. In flipped classrooms students watch lectures and read material outside the classroom then work on things in person. This isn't a formal class, but the idea is similar. Many people who attend are there to help.
If you prefer to work on things on your own, that is okay too! If someone asks for help, let them know that you are working on something and not available for help at the moment.
If you don't already have something to work on or study, look through the resources below.
What to bring?
- A kind attitude and good conduct: Everyone is expected to Be excellent to each other at the space. On top of that, I'd like to make this a setting that follows The Recurse Center User's Manual on social rules. Their social rules make learning environments more productive and friendly. I also expect everyone to follow the Python Office Hours/Code_of_Conduct
- An interest in learning python
- A computer: We have wifi at the space, but we don't have extra computers floating around. If you have trouble bringing a laptop, talk to us before the event and we could try to find one but we need to know beforehand (preferably a few days).
Learning resources
Tutorials
- official Python tutorial
- Dive Into Python 3 Tutorial for people who already know some basics.
- if you are new to programming, try out the Boston Python Workshop materials
- if you are new to python but know a little about programming, try out the Intermediate Boston Python Workshop projects.
- If you know some syntax already, try out NewCoder tutorials. NewCoder has tutorials on Data Visualization, APIs, Web Scraping, Networks
- If you want ideas for small projects to try out new skills, Kindling projects are "simple enough that a new learner can take them on, but with possibilities for extension and creativity. Large enough that there isn't one right answer, but designed to be hacked on by a learner simply to flex their muscles."
- Community Data Science Workshop
- "The Community Data Science Workshops are a series of project-based workshops for anyone interested in learning how to use programming and data science tools to ask and answer questions about online communities like Wikipedia, Twitter, free and open source software, and civic media. The workshops are for people with no previous programming experience."
- Software Carpentry: Lessons
- automating tasks using the Unix shell;
- structured programming in Python, R, or MATLAB
- "The best way to learn how to program is to do something useful, so this introduction to Python is built around a common scientific task: data analysis."
- version control using Git or Mercurial.
- Data Carpentry: has lessons on python for ecologists
- Python Scientific Lecture Notes: "Tutorial material on the scientific Python ecosystem, a quick introduction to central tools and techniques. The different chapters each correspond to a 1 to 2 hours course with increasing level of expertise, from beginner to expert."
- Django Girls Tutorial: tutorial that starts from python basics to django to deploying a django site.
- Django for Designers a Django tutorial that focuses on areas of Django that particularly affect designers, such as static files, template inheritance, and AJAX.
- Google's Python Class: This 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.
Interactive Tutorials
- http://codingbat.com/python
- http://www.codecademy.com/tracks/python
- http://www.learnpython.org/
- http://www.pythontutor.com/
- How to Think Like a Computer Scientist
- Problem Solving with Algorithms and Data Structures
Online python interpreters
If you want to try out python and scientific packages without installing everything, you can use these servers.
- https://try.jupyter.org/ No install or login required. This launches ipython notebook for you.
- This has an interactive python 101 lesson. Navigate to communities/pyladies and click on *Python 101.ipynb* to launch it.
- You can play with other languages too. There are Julia, R, Haskell, Ruby, etc notebooks
- https://www.pythonanywhere.com/ online python environments with many packages already installed. (need account)
- http://ipythonblocks.org
Books and Reading
- Two Scoops of Django: an excellent django book
- Effective Computation in Physics
- Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython
- The Hitchhiker’s Guide to Python: This is a guide for python developers that gives an overlay of the land of python development. In the guide's words: "The Hitchhiker’s Guide to Python exists to provide both novice and expert Python developers a best-practice handbook to the installation, configuration, and usage of Python on a daily basis."
Online courses providers
Offline courses and events
- DabeazLLC office hours. Check periodically to see if there's a new one coming up
- David Beazley classes. Check periodically to see if there is a class coming up.
- Periodically some of the python groups in the area will have a free or low cost workshop. TODO: put some links to the groups here.
Help find materials
Talk:Python_Office_Hours#help_find_new_and_better_guides
random stuff
- graphite is an event monitoring platform written in python. here is a repo with a script that will set up an example graphite stack https://github.com/obfuscurity/synthesize