Hooray for the Python Software Foundation! 💖

Thanks to the generosity of the Python Software Foundation, I was able to come to Portland from May 27th through Jun 5 for PyCon 2016, a convention for the Python programming language. I am having a great time, meeting lots of wonderful people and learning lots about Python and Python packages, but that’s not what this post is about. As I’m writing this, I’m still here; it is the second day of the “Sprints”. The Sprints are where people get together to work on open source projects relating to Python.

My only previous experience with anything having to do with open source was making a few contributions to the Django Girls tutorial. In the PyCon Sprints, people are working on lots of different open source projects. Some are contributing to the core development, and some to documentation and other areas.

Development Sprints are Awesome 💜💞

Here on only the second day of the sprints (June 3), I have already contributed 7 pull requests to projects related to the awesome Cookiecutter package. How can this be, you might be wondering? The reason is partly due to the fact that some of the main people involved are at the sprints and we are all sitting together around several tables, so that when we have a question, someone can answer it easily. Audrey Roy Greenfeld and Danny Roy Greenfeld are the authors of Two Scoops of Django, a great book for anyone to use for guidelines for using Django, and they are both here. There is also Carol Willing, Elias Dorneles, and Christopher Clarke and Kelsey Gilmore-Innis who arrived today. All experienced contributors to Cookiecutter and various Cookiecutter template packages (among other projects). Danny and Audrey tell me that there are other core developers who we are missing 😢, such as Raphael Peirzina, Michael Joseph, Paul Moore, Saurabh Kumar, Burhan Khalid, Fábio Barrionuevo, and Jannis Gebaur, so there is actually a fraction of the core team, but just being able to sit together and discuss things is wonderful. It has been really inspiring to have them available to answer questions, give advice and encouragement. I want to give a special shout out to Elias who was very patient with me and helped me get started with my very first open source code contribution!

Newcomers Can Often be Productive Immediately 👏

But another reason I have been so productive is that the packages to which I have contributed have all had their problems and needs well-documented in the Issues section of the GitHub repo. The Issues have been evaluated and the ones that are easy or good for people new to open source contributing are specially tagged. Most of the changes I made so far have been very straightforward, primarily requiring some attention to detail and following directions.

I wrote this blog post to encourage others who go to various conferences to attend the development sprints, if they are happening at the conference. I have learned so much just in these 2 days - and there are 2 more! And contributing to open source projects is really satisfying. Now I feel a little bit of ownership towards Cookiecutter, cookecutter-pypackage, cookiecutter-djangopackage, and wagtail-cookiecutter-foundation.

Project Maintainers Can Help Newcomers 🏫

I also want to encourage the maintainers of open source software projects to consider the things that can be fixed by someone with relatively little experience in actually using the software. Do you have a tutorial or usage document that might be out-of-date? This is a perfect thing for a newcomer. The new person can follow the tutorial or usage info and create issues for things that need to be updated or explained more clearly. Once they go through the tutorial, they understand more and can probably start on other kinds of contributions.

Go to Development Sprints! 🎈🎉🎈

When you are at a development sprint, there are many projects that are “beginner-friendly”. In other words, projects that have issues clearly identified that a new or less-experienced person can help with. Do not think that documentation issues are not important, either. If the docs of a package are not up-to-date, people aren’t going to use the package or are going to be frustrated with it. And helping with documentation issues is a good way to learn more about a project!

Again, don’t be shy about going to development sprints. It’s a wonderful way to make friends, learn more about projects you use or are interested in learning about, and improve your skills.

Update: Afterwards: June 7 💤🐶

What a whirlwind trip! I am happy to sleep in my own bed and cuddle with my dogs. I’m looking forward to watching lots of PyCon talks on YouTube. I loved all of PyCon, but the best part for me was the sprints. I was so nervous about the sprints before the conference. I worried that I wouldn’t feel welcome, or that I wouldn’t be able to help, or that I would be a drag on others because even though I have programming experience, I’m somewhat new to Python. But did I mention that I had a great time and met lots of nice and helpful people? Oh yeah!

By the end of the day Sunday, I had 14 pull requests done! Woohoo! And 4 more in the last 2 days. I’m really getting into cookecutter-pypackage. Not that I’ve figured out a package to create with it, but I think it is a really cool project. Heck, all the cookiecutter projects are way cool!

More Thanks! 👍🎊

Did I mention I had a great time? I want to thank everyone I met for being friendly and helpful. I haven’t been to any conferences in a long time, but this one was fantastic! And a big thanks to all the people who worked so hard to make it all come together so well. You know who you are. For those going to other conferences, I encourage you to volunteer! I met some great people during the time I spent volunteering.

Last but definitely not least, I realized I haven’t thanked my friend Trey Hunner enough! If not for his encouragement, I would not have considered going to PyCon. He is an all-around great guy, and a great teacher. Check out his website, his training business Truthful Technology, and his great Weekly Python Chats that are very informative. I’m very grateful to have gotten to know him through the San Diego Python organization and meetup. Thanks so much, Trey!