Saturday, October 3rd, 2015 | Uncategorized
Closing speech at the end of PyConZA 2015.
We’ve reached the end of another PyConZA and I’ve found myself wondering: Where to from here? Conferences generate good idea, but it’s so easy for daily life to intrude and for ideas to fade and eventually be lost.
We’ve heard about many good things and many bad things during the conference. I’m going to focus on the bad for a moment.
We’ve heard about imposter syndrome, about a need for more diversity, about Django’s flaws as a web framework, about Python’s lack of good concurrency solutions when data needs to be shared, about how much civic information is locked up in scanned PDFs, about how many scientists need to be taught coding, about the difficulty of importing CSV files, about cars being stolen in Johannesburg.
The world is full of things that need fixing.
Do we care enough to fix them?
Ten years ago I’d never coded Python professionally. I’d never been to a Python software conference, or even a user group meeting.
But, I got a bit lucky and took a job at which there were a few pretty good Python developers and some time to spend learning things.
I worked through the Python tutorial. All of it. Then a few years later I worked through all of it again. I read the Python Quick Reference. All of it. It wasn’t that quick.
I started work on a personal Python project. With a friend. I’m still working on it. At first it just read text files
into a database. Slowly, it grew a UI. And then DSLs and programmatically generated SQL queries with tens of joins. Then a tiny HTML rendering engine. It’s not finished. We haven’t even released version 1.0. I’m quietly proud of it.
I wrote some games. With friends. The first one was terrible. We knew nothing. But it was about chickens. The second was better. For the third we bit off more than we could chew. The fourth was pretty awesome. The fifth wasn’t too bad.
threading and tons of mutable state. I was wrong. I learned Twisted. I couldn’t figure out what deferreds did. I wrote my own deferred class. Then I threw it away.
I asked the PSF for money to port a library to Python 3. They said yes. The money was enough to pay for pizza. But it was exciting anyway.
We ported another library to Python 3. This one was harder. We fixed bugs in Python. That was hard too. Our patches were accepted. Slowly. Very slowly. In one case, it took three years.
Someone suggested I run PyConZA. I had no idea how little I knew about running conferences, so I said yes. I asked the PSF for permission. They didn’t know how little I knew either, so they said yes too. Luckily, I got guidance and support from people who did. None of them were developers. Somehow, it worked. I suspect mostly because everyone was so excited.
We got amazing international speakers, but the best talk was by a local developer who wasn’t convinced his talk would interest anyone.
I ran PyConZA three more times, because I wasn’t sure how to hand it over to others and I didn’t want it to not happen.
This is my Python journey so far.
All of you are at different places in your own journeys, and if I were to share some advice from mine, it might go as follows:
- Find people you can learn from
- … and make time to learn yourself
- Take the time to master the basics
- … so few people do
- Start a project
- … with a friend(s)
- Keep learning new things
- … even if they’re not Python
- Failure is not going to go away
- … keep building things anyway
- Don’t be scared to ask for money
- … or for support
- … even from people who aren’t developers
- Sometimes amazing things come from one clueless person saying, “How hard can it be?”
- Often success relies mostly on how excited other people are
- Stuff doesn’t stop being hard
- … so you’re going to have to care
- … although what you care about might surprise you.
Who can say where in this complicated journey I changed from novice, to apprentice, to developer, to senior
developer? Up close, it’s just a blur of coding and relationships. Of building and learning, and of success and
We are all unique imposters on our separate journeys — our paths not directly comparable — and often wisdom seems largely about shutting up when one doesn’t know the answer.
If all of the broken things are going to get fixed — from diversity to removing the GIL — it’s us that will have to fix them, and it seems unlikely that anyone is going to give us permission or declare us worthy.
Go build something.