I recently attended GopherCon 2018. This conference brings together a large community centered around the Go language. I wanted to share a beginner’s view of the conference, as this was the first one I’ve attended, and I’ve only been working with Go for a few months.
The conference itself stretched over four days. One day was for day long courses which were not included in the conference fee, but were extras. There were then two days of talks and finally one community day of lightning talks and coding. I found the conference to be well organized, with plenty of wifi and seats for everyone. One complaint was that, due to fire marshall regulations, everyone in a talk had to be sitting in a seat–no standing in the back. I was tired of sitting and had to leave a talk due to this. But the rooms were well signed and there was plenty of time to move between talks and the other areas (sponsor, food).
It was not quite a single track conference, but there were some sections of the conference where there was only one talk going on. This is typical for a keynote, but even beyond the keynotes there was sometimes only one talk. During the main conference, there was at most three talks. The talks covered a variety of territory; I’ll let you view the agenda to see the full depth. I appreciated the fact that there were talks at all levels. Some included little or no code but were aimed at illuminating some aspect of development (whether it was accessibility or failed technology choices), while others were code and jargon dense. Golang can be used for many purposes but, from my little experience, is a great replacement for C, and a middle ground for folks who want a compiled language with static typing but want to avoid a virtual machine. Golang is, as one instructor told us, “targetting hardware”. And there were definitely low level talks that covered aspects of the language like memory allocation. I have never heard so many mentions of stacks and heaps and microseconds. It was eye opening and thought provoking, even though I think that it’s overkill for most people at many scales–I think most development should be optimizing for developer productivity.
The community was wonderful. I’m a bit of an introvert, but I saw no one cliquey. Everyone I chatted with had some interesting stories and were from diverse companies. Lots of folks were migrating to Go from another language, or introducing it as part of their development ecosystem. I talked to folks who wanted to interface with rickety C code and folks who were moving away from Perl and devops folks who were primarily on the JVM but were building tools in Go. The crowd was far more diverse than the typical tech conference (augmented by diversity scholarships), and was also international, which I appreciated. There were meetups and impromptu dinners and a party that I missed. I even made my first contribution to the Golang project after being inspired by a speaker. I will note that not much communication went on via Twitter. Rather, the Gopher slack was were coordination and discussion happened. That’s a general conference tip I’m going to file away for the future–find out where the community is congregating online.
I was really interested in the sponsors. There were a number of tool vendors (including my favorite, Heroku) and an IDE vendor. Three cloud vendors were sponsors. The premier sponsor was a password management company, which I found a bit odd, as I’m not sure why their business is so tied to Go. But there were at least two sponsors that were solely there to recruiter Go developers. I’ve never been to a conference where that happened. I guess the market is pretty tight.
I had the luxury of taking the Ultimate Go course by the folks from Ardan Labs on the first day. No code was written, except by the instructors, but the content (which is all online) was superb. Focus was on how to read Golang, which has, unlike most other memory managed languages, two ways of passing parameters (by value and by reference), and you can choose which to use. And the choice you make has ramifications on maintainability, memory and performance. The instructors broke down how Go allocates memory, common asychronous communication patterns, and the garbage collector. This session was worth the extra cost for an experienced developer just getting started with Go.
I believe all the talks were recorded and you will be able to view them soon. Here are the 2017 talks. If you can view all the talks, why take the time and money to attend a conference?
There are at least three good reasons:
- The “hallway track” lets you interact with other people. You’ll meet folks who aren’t speakers, who are learning the tools and are at various levels of expertise and with various backgrounds. You hear real stories about how the language is useful or not. And you can forge friendships with this folks.(This works best if you attend the same conference multiple years in a row.) These professional connections would be very hard to make if you were commenting on video online.
- If you are removed from the office but still at work you are more likely to focus on learning new things. Yes, you could binge watch all the 2017 videos, but will you? Will you really take three days away from work or vacation to do that? I am sure some folks do that, but I couldn’t.
- You can learn about cutting edge technologies and interact with speakers directly. I talked to one of the speakers and saw others milling around.
Gophercon was a great conference. Well worth attending if you are interested in Go.