I'm sitting in a sprint room at the tail end of PyCon 2014 in Montreal, mulling over my experiences here, and I'd like to share a little bit about my first PyCon with you.
If you've never been to PyCon, I'm hoping I can convince you to come to PyCon next year.
If you came but you were new like me, I will try to give you some insight into getting even more out of your next PyCon.
If you're a veteran, I'd like to refresh your memory about what it's like to be new to this crazy, wonderful beast.
First, a note on friendships.
You'll find that throughout this blog post, I talk almost exclusively about the people I meet and the lasting friendships I've made. If you're really interested in PyCon for the talks and tutorials and sprinting, this may confuse you.
If you want to work on code, and look at code, and learn about code, then you may not really 'get' why I put so much stress on going to the pub or cocktail parties or hanging out in the hallways.
# Note that when I suggest going to the pub, I don't suggest you need to drink to have a great time at PyCon and be part of the community. Nobody's going to care if you drink soda the whole time, and you may find yourself in a cafe instead. The point is that you're connecting!
Just keep in mind that when you're out at a pub or a cocktail party or in the hallway at PyCon, you're talking about code. You're talking about architecture. You're talking about career growth. You're exchanging funny stories about terrible interviews, awesome projects you've worked on, and cool technologies you've worked with. You get to know one another and talk about the sorts of things other programmers love to do outside of the text editor, like rock climbing or biking.
My goal at PyCon was to come away with a group of people I can talk to regularly about these things - people with faces and voices behind the plain text in IRC, and people with wider perspective than the one I get from my local community. As you'll see if you read on, I think I accomplished this.
PyCon Canada: A Prelude
My first conference, ever, was PyConCA in Toronto last August. I believe it had approx. 500 attendees, which is one quarter the size of PyCon this year.
Diana Clarke and her team of volunteers made PyConCA's debut extremely successful, and the conference itself was really well put together. They produced the same success for PyCon 2014 in Montreal, too!
PyConCA was big enough that there were a lot of potential new friends, some of which were 'Programmer Famous' in the Python community. It was also small enough that it was really easy to -meet- these people and talk to them, to go to dinner with them, to go to the pub with them.
I met a lot of really great people and made a few friendships that I would have loved growing, but as it happened, I lost touch with most of the folks I met there. I emailed a few, and followed others on Twitter, but the conversation didn't really continue beyond the first few weeks following the conference.
Then I got wind that Python On Rails - a chartered train car a bunch of us at PyConCA had joked about in a pub in Toronto - was actually happening.
Python On Rails
Thanks to the efforts of Brydon Gilliss, Anastasia Ziprick and other volunteers, I hopped on a business-class train car full of fellow PyCon 2014 attendees in Toronto and rode 6 hours to Montreal. The seats were arranged so that every other row of seats was facing backward, putting you in groups of four on either side of the aisle for maximum befriending.
Even better, we had a bar car which pretty much made the trip into a programmer pub-night on a train. We had dinner, a whole lot of alcoholic beverages, a programming challenge with a random partner, and even an on-train talk by PyCon veteran Brandon Rhodes about getting the most out of the conference to come.
The folks I met on the train were great. Since we were stuck together for about 6 hours, we had a chance to get to know one another a little more intimately than we might have at the conference proper, where 2000 people would be running around trying to catch up with friends, catch some talks, and visit the expo hall.
These new friends and acquaintences, plus the familiar faces I'd see from PyConCA, were the keys to my first full-size PyCon being so ridiculously fun.
Unfortunately I skipped the Tutorial sessions this time around, so I can't speak to them, but a lot of folks say they were fun and very valuable. I definitely enjoyed the tutorials at PyConCA last august, so I recommend attending if you can.
The conference days themselves, spanning from the morning of Friday through Sunday afternoon, were bustling with activity. The talk rooms and expo hall were almost always packed, the lunch lines were long, and the streets, pubs and cafes in the area were usually full of people with PyCon badges dangling on blue lanyards around their necks.
I'm a pretty social guy - particularly with My People (programmers) - but If I were alone, I'd have been very intimidated.
Luckily for me, I was with my roommate from back home, and as I've already mentioned, I arrived armed with friendships from PyConCA several months back and from PythonOnRails the day before.
# Attend some smaller, regional conferences beforehand and make some friends! It can feel easier to introduce yourself to people at these smaller conferences, and you'll likely see a few of these faces again at the major PyCon in your country. # Many of these conferences are affordable (or free!) and may even fall on weekends, so you may not have to get time away from work. Also, they're fun!
Not everyone has the time or opportunity to attend another Python conference beforehand, or to ride a train full of other pythonistas on the way to PyCon, but there are other ways to find your stride and get into the swing of things.
This year, I only saw five talks. Talks are amazing, and you learn a lot. You get the chance to ask questions, and talk to people between talks while you're sitting in the audience.
# Choose some talks that fall outside of your area of expertise; i.e. if you're a web developer, watch some talks on data science or talks about community building. # Brandon Rhodes recommended on the Python On Rails train that we check out talks based on people we recognize as great speakers, rather than just by topic.
The Hallway Track & Expo Hall
I spent most of my time in the hallway or the expo hall, wandering around and introducing myself to random people. Most of the talks at PyCon will be available online later, so if I missed something I won't be heartbroken.
# If you're not too shy, walk up to a group of people standing around and listen to or join their conversation. Most folks are here to meet like-minded people, and someone will probably introduce themselves and ask your name after a few minutes. If the conference is wrapping up for the day, they may even ask you to join them for dinner. # If there's a group standing around in the hallway, the majority of the people there probably invited themselves to the party anyway, so don't feel like you're intruding.
I volunteered at the Pyramid booth in the expo hall, and talked to a lot of people about the Pyramid web framework. A few of these are now among my favorite friends from PyCon.
# If there is a booth for an open source project you use or support, volunteer to help out - you can give other volunteers a break to see other parts of the conference, and you'll meet all sorts of people who come to talk to you about the project.
The poster sessions and job fair were pretty neat, too - I enjoyed learning about using the RaspberryPi to run game emulators and teach braille, and even though I'm not looking for work, I talked to recruitors from Mozilla and Redhat and other awesome companies just to see what sorts of people they like to hire and what kinds of work those people get to do.
The backchannel at a conference is the conversation going on behind the scenes, usually on Twitter or IRC, between other attendees.
It's good to search Twitter for hashtags like #pycon and #pycon2014 and join in on the discussion. If you make your own comments and retweet great stuff from others, people get a little familiar with you. You'll see tweets about dinner or pub plans, and you can join them or tweet your own invite to others. I took advantage of this at both PyConCA and PyCon 2014, and never ate dinner alone.
# Use Twitter during the conference even if you don't use it throughout the rest of the year. You'll find out about after-hours events and other goings-on at the conference that you may otherwise miss completely. # You may want to make sure your Twitter avatar is a real picture of your face, so people recognize you in person.
At one point, I even met a highschool compsci teacher from the Bronx in the backchannel over Twitter, and we sat together at lunch the other day to discuss how I might offer support to the computer science teachers in my own city.
I didn't actually stop by the IRC channel for PyCon, but if that's more your speed than Twitter, definitely track it down and join the discussion there.
Some of the most fun I had here was after hours. I went to many a pub with friends, popped into some sponsored cocktail parties packed with PyCon attendees, and even went to a bar filled with people playing boardgames.
Hanging out for long stretches with the people I'd met at PyConCA, on Python On Rails, and in the Expo Hall forged some stronger connections than I'd previously made. For example, I had dinner with a few of my favorite PyConCA alumni multiple times while here.
One evening I spent about six hours with a particular group of people - some previous acquaintances and some brand new from the hallway track - over dinner and at a cocktail party afterward. For some reason we decided to keep to ourselves most of that evening, rather than schmoozing with the wider crowd. We now have a private chat room for the group, and I intend to keep aggressively in touch with these people.
# If you find yourself hanging out with the same people every night, even if they're your favorites so far, try to change it up: find a new group of people to eat with or pub with at least once or twice, or invite new folks to join you when you head out. # If you have the opposite urge to flit from group to group, and meet as many interesting people as you can, spend at least one or two evenings with a single smaller group of people and really cement those relationships. You'll come out of the conference with a few really solid friends to keep in touch with.
I stayed for sprints at both PyConCA and now at PyCon. The sprints are pretty cool - and if you have a project you're contributing to, or one you'd love to contribute to, the sprints are sometimes the best part of a conference.
For me, sprinting started as just another excuse to get into a room with other python programmers and have a conversation. I spent some time learning iPython Notebook, and ended up pairing with my friend Nina on day one to go through a tutorial and again on day two to fix a bug in Python 2.7's unittest library.
Pairing to solve a problem with someone can be extremely gratifying, and really lets you into their head as a programmer. Sprinting is one of my favorite parts of PyCon now because of it, though less of my closest PyCon friends are around since the majority of attendees have to go home at some point.
# If you have never contributed to a particular project before, consider asking if anyone at the sprint would mind you shadowing them on whatever they're working on and explaining as they go.
Luckily for me, a few of my closest PyCon friends stuck around for most of the sprints, and my roommate and I ended up hanging out with them for nearly the entire time after the mass exodus of attendees on Sunday.
I plan to get my ticket to the next PyCon as soon as they're on sale. I intend to get my ticket for Python On Rails as soon as they go on sale, too. I'm definitely hooked on the community, and eager to meet back up with my PyCon friends next year or at other conferences if I get the chance.
I'm also excited to come back next year and forge stronger friendships with people I only had a chance to get acquainted with this time around, and I'm looking forward to meeting more completely fresh faces.
I came to PyCon expecting to enjoy it, but planning only to attend the two PyCons in Montreal (2014-2015), since I'm only a short distance away in southern Ontario. I'm now convinced that I'm going to try to come to PyCon every year for a long time to come.