Talks ∋ Being part of a community
Part 1 - Benefits of joining a community
being part of a community
Hi!
You’ve all been learning ruby here at General Assembly for the last 4 or 5 weeks, and I’ve been asked me along to talk to you about the ruby community outside of these 4 walls. Some of you might have already been looking around to see what else is out there, and that’s great, I hope I don’t bore you too much! For the rest of you this should act as a an introduction to that community and an explanation of why you might care.
I’m mostly going to talk about the ruby community in London, but I’ll also cover the rest of the UK, Europe and further afield. The world is small now so it’s good to know what is going on elsewhere.
Before we start properly, there’ll be urls in these slides, and I’ll mention things you should look up, but don’t worry about making notes: I’ll send a PDF round afterwards. There’ll be time for questions at the end too, but feel free to ask anything along the way. So.. let’s get started.
murray steele
So, who am I to be talking to you…
I first used ruby in 2003, have been paid to use it since 2006, and have been organising LRUG since 2007. I work for an agency called Unboxed Consulting1 that specialises in agile and ruby on rails. If after this course you are looking for work as a ruby dev, you could do worse than getting in touch with us to see if we’re hiring.
h-lame (or hlame)
If at the end of this you’re not super bored of me you can find and follow me online on most services using either h-lame
, or for services that can’t handle what punctuation in the username might break: hlame
. (Pro-tip: let folk choose whatever they want as their username, they know how they’d like to be addressed, just make it a large utf8
field in the database and be done).
Enough about me, let’s talk about…
becoming a developer
Before I talk about the community though I want to talk a little about why you might care. I want to explain what being a developer is really about, and how being part of a community helps with that. I assume that because you are here learning ruby what you want is to be a developer at the end. Maybe a contractor, maybe an employee, maybe a startup founder, who knows. No matter what you end up doing after this, the one constant is that you’re not done learning. Being a developer means…
always be learngin
always. be. learning.
Seriously. It’s what being a developer is. Let’s think about the technology you’ve been learning so far: Ruby on Rails.
Ruby is now 2.2, but that came out at the end of last year, and development on 2.3 is underway; it’s probably coming out towards the end of this year. Rails is currently at version 4.2, also released at the end of last year and the core team are already talking about what version 5.0 might contain; there were some hints at this years RailsConf2. Each of those brings new APIs and new ways of doing things. And that’s just the two main technologies; there’s loads of other libraries involved and all of those are constantly upgrading.
I spend a good chunk of each month reading blog posts about new technology, or new approaches to old problems; watching videos of talks online; reading bug reports and wiki pages of software tools I want to use to evaluate them. I even spend a good chunk of each day googling for the correct API syntax to use!
I don’t say this to daunt you. Just to put your mind at ease, I’m sure that right now you think “oh there’s so much to learn”, and you’re worried about how you’ll get it all. That is what every developer is feeling ALL THE TIME. Just don’t worry about it, what you’re really learning is a very acute and hyper-powerful ability to seek out information. It’s daunting, but it’s exciting.
from artist to programmer
So, you’re going to spend a lot of time reading stuff or watching videos. But that’s not all, there are 2 other ways to learn; practice and discussion, and you need to be comfortable with them both.
There’s an excellent talk called “From Artist To Programmer” given by Keavy McMinn at the Scottish Ruby Conference in 2010 that I think cover both of these types of learning really well.
She talks about her time at art school and how there’s stuff we could learn from that to improve our craft as programmers.
remember to practice
As an artist you spend a long part of your training just sketching the same thing over and over again in different styles. It helps hone your craft as an artist.
Her point, and I agree, is that as programmers we should do the same thing. So every so often, take a break from day-to-day work to run through a simple problem and work on something entirely different, just to let you flex your coding muscles in a different way. Look at things like coding dojos, katas, koans, or “programming quiz” challenges and try to do one of those once a week, or once a month or something.
Also consider having your “pet problem” to try out new technologies on. Pick a problem you know how to solve (a blogging app, a todo list, some kind of fun algorithm like Game of Life, whatever your final project is here) and then try to solve it in a different way (use different libraries, a different programming language, force a constraint like no if
statements). This lets you focus on the technology challenges rather than the problem3.
talk about code
As a developer you should get used to being able to talk about your code too.
Many times I’ve been stuck on a problem, called over someone for help, and as I’m talking it through with them I realise the solution without them saying anything. This isn’t because I’m some super genius; it’s because the first thing you do when describing a problem to someone else is work it out properly in your own head. Often we’re just stuck thinking about the wrong thing and explaining to someone else is the best way to step back and see the bigger picture.
Apart from asking for help with something you’re stuck on you need to be comfortable explaining code you’ve written to colleagues who have to work on it next, or explaining an entire app to a new starter.
You’ll want to be able to write about your work on a blog. Maybe for marketing purposes. Maybe because it’s brand-new-exciting-work. Maybe because you want to write up something you were proud of, even if you know many other people have done it before you, because it’s the first time you’ve done it. Someone else will find that blog post and it’ll be the first time they’ve ever heard of the thing you did so you might inspire them too.
Finally you should feel confident in getting up and talking about work you’ve done at meetups or internal sessions. Someone will might say “Oh, that’s wrong”, but don’t worry about it. Maybe they’re right, maybe they’re wrong, but you’ll have a useful discussion about it with them that you both learn from.
build your circle of peers
Pretty much everything I’ve said so far comes down to stuff you do on your own (there is even a technique where you talk through problems with a rubber-duck in the place of a real colleague). What I want to talk about next is the stuff you need others for.
You should have a circle of peers. You’ll find plenty of find videos, articles, new tools to use on your own, but this will be mostly focussed on what you’re already using and technology you already know. Your peers will send you the stuff you didn’t know you wanted to look at; the stuff that wasn’t on your radar already.
It’s invaluable to the learning process. My circle sends me interesting articles to read, they recommend videos to watch, they let me bounce ideas off them, if I’m evaluating a tool I’ve never used before, they might already have opinions about it. We have great discussions about design and development best practices.
I would be significantly worse at my job if I didn’t have that group around me. Some of them are friends from uni, some are my colleagues from previous jobs, more are my current colleagues at Unboxed, and then there’s just everyone else I know through involvement in the ruby community from London and around.
So, you need to build that circle. I suggest that the starting point is the people in this room. You should definitely be keeping in touch during the this course and afterwards. It’s good to have a core group with the same experience level as yourself, you’ll have similar concerns and ideas at around the same time, and you’ll know exactly where each other is coming from.
Of course, that’s not enough as you want people more experienced to help you out, and people less experienced to make you look at things in a new way…
Part 2 - The Ruby community
being part of the ruby community
That’s where the greater ruby community comes in. Get to know them, in person or online. They’re your peers, you’re rubyists now!
I’ll talk about the community in London, then the rest of the UK and the rest of the world. You really should get involved in some way.
So, what is the ruby community in London?
There are three main groups: RailsGirls, RubyBizUk, and LRUG - we’ll talk about each in turn, starting with…
railsgirls
RailsGirls. It’s a part of the larger RailsGirls and RailsBridge movements geared at getting more women involved in technology, specifically by teaching ruby and rails.
This was started a couple of years ago in London4, although it’s been going since 2010 in Finland. They run day-long sessions over a weekend which are like a hyper compressed version of the course you are on (enough to let you know what Rails is and get you set up if you’re totally new, or a good place to get tips if you already know something about it). Their last event was on 15th-16th May this year (2015). They used to run weekly drop in sessions which at the end of last year…
codebar
…turned into Codebar.
It’s not just Ruby, (they cover html, css, javascript too), but it’s a weekly learning event every Wednesday evening in various venues around London.
As they are focussed on improving diversity in tech, it has strict eligibility criteria for students, which not all of you will meet. I mention it to you because it’s open to everyone to act as coaches so you should all think about attending in that capacity. You might think “I’m just learning myself, what can I coach someone on?”, but it’s useful for coaches who have recently been newbies themselves to help out:
- it’s great for you to help folk as a way to help cement your own understanding of things
- if someone asked me “what’s a good resource to learn ruby” - I can’t answer, as it’s nearly 10 years since I had to. If someon asks you however, it’s only been a few months since you started the same journey so you’re full of tips about stuff you’ve used recently that you can pass on.
They started in London, but there are now regular meetings in Brighton, Birmingham, and Cambridge too. The London meetings are so popular they now have three chapters every week!
They even run a few day long event called, their most recent was Mind the Code on June 6th in London, and are planning one in October called Uncodebar. It’s a great community you should get involved.
rubybizuk
The next group to talk about is RubyBizUK.
It was started in May 2009 as a daytime meetup for folk who use ruby, but it’s notionally business focussed. Less about developer technique, more about business technique. They meet up on the 2nd Wednesday of the month and have just moved to Lantana in Shorditch.
They say:
Let’s get together and chat about best practice Ruby Development, and do some good old fashioned business networking. Mostly for Ruby consultants and owners of software development shops, although any people interested in the subject are welcome!
It’s pretty informal, just a coffee and chat really, but very good resource if you have flexible working arrangements. It’s a good mix of people too, not just developers, but other people interested in running a business with ruby - I’ve met recruiters, accountants, and people looking for a business partner at these events.
The next meeting is: Wednesday October 14th! (They just had the September one on the 10th)
lrug
LRUG is the main group. Although I would say that because I’m the organiser of it.
We meet on the 2nd Monday of the month, hosted by Skills Matter who have just moved to a new venue between Liverpool St. and Moorgate. We have maybe 100 people come along to an average meeting, but it’s been known to go up to ~160 or so for a very popular meeting. The new space might allow us to grow even more.
a little history (part 1)
LRUG has been around for a while. There were some meetings way back in 2000 or 2001. Probably no more than 10 people, meeting in pubs or cafes to talk about Ruby. It’s unlikely any of them were actually using Ruby for their day job. The only reason I know about this is that I met David A. Black at a conference and we ended up chatting about it when I told him I was running LRUG.
The reason I mention David is…
the well-grounded rubyist
David A. Black is an influential rubyist: co-founder of Ruby Central that amongst other things helps put on the RubyConf and RailsConf conferences in America); author of “Ruby for Rails” and “The Well Grounded Rubyist” - you should try to pick up one of these. Both are a few years old now, and Well Grounded Rubyist is actually version 2 of Ruby for Rails, but they’re both good books for the folk new to ruby. I used to caveat this recommendation because Well Grounded Rubyist was quite old (it covered Rails 2), but the 2nd edition of it came out at the end of last year and is fully up to date. So do go get a copy!
a little history (part 2)
Anyway, LRUG in it’s current incarnation was started in 2005 just around the time Ruby (because of Rails) was becoming tech you might actually get paid to do. I started attending when I switched from Java to Ruby in 2006. Back then we probably had about 30 people on a good day. I took over organisational duties in January 2007. The popularity of rails has really swelled the numbers as we went up to 80 - 100 average attendance really quickly after that (nothing to do with my organisational skills).
Our meetings have a pretty set pattern. They’re split in two, from 6:30pm to 8pm we have the formal proceedings.
during the talks
They look a lot like this. Note that the expression on these people’s faces is “rapt with attention”, not “boredom”.
The normal agenda is that we have “announcements” from the group, then at least two talks, sometimes 3, occasionally more. Usually about something ruby related, but it can be about general development topics or technologies we might want to use ruby to interact with.
Sometimes we do different things, for example in February we have our lightning talk event where we have 8 or 9 speakers doing 5-8 minute talks. We’ve done practical events like code golf or a coding dojo too. We try to mix it up when we get the chance.
When the talks are done…
after the talks
…we go to a pub for a more informal get together.
If you don’t drink that’s fine; there’s no pressure - we try to make sure the pub we attend has plenty of seating and serves food so that people can just talk and network. It really is a great opportunity as the speakers are usually in attendance so you can talk to them in more detail about their talk if you were particularly interested in it.
It’s worth pointing out that many people from my “circle of peers” come from this part of the meeting.
keeping in touch
You can keep in touch with lrug in several ways
keeping in touch (revealed)
- the website: lrug.org - mostly just meeting updates.
- the readme: readme.lrug.org - code of conduct, info about how to speak, sponsor, etc.
- on twitter as @lrug - mostly just meeting updates, but it sometimes retweets other london ruby goings on.
- sign up to our mailing list at lrug.org/mailing-list - we try to keep it on topic as some people are very precious about their inboxes. Usually lots of job offers on here, but it’s good to ask questions on here too - some great threads in the archives.
- via our lanyrd series - lanyrd.com/series/lrug - the meetings go up on lrug.org and skills matter’s website as the official places, but lanyrd is a great service so we use that too, mostly for calendar reminders, but once you’re signed up it tells you about other events that you might be interested in.
- freenode#lrug for IRC - normally silent, but who knows - I’ve not logged in for months it might be happening these days, used to be good if you wanted a more conversational question.
- github.com/lrug - a bunch of repos that have something to do with lrug. Both lrug.org and readme.lrug.org live here so if you see anything you’d like to change, you can submit a PR. We also have some repos from practical events we’ve done, and some scripts I have written to randomise order of talks for the lightning talk evenings.
- lrug.org/podcast - there are 5 episodes - interviews with speakers or notable folk from the lrug community (including an episode with me, fair warning). If you like them do talk to the host Chris Lowis at the next meeting you go to and convince him to do more!
- lrug.org/nights - occasionally we just do the pub bit (although we havenʼt for a while). The plan here was that anyone could organise it and they would pass on the baton to someone else on the night (The logo is based on the tv series Baywatch Nights).
next meeting
So I said we meet on the 2nd Monday of the month, that means the next one is due on September 14th5.
There’ll be three talks:
- blameless reviews - how to do pull-request code-reviews in a constructive way)
- seal - about a 20% project to build a slack integration for reminding you about open pull-requests
- container patterns - about using docker and similar container technologies to deploy rails applications
members benefits
So that’s what LRUG is, why should you get involved?
There’s the learning stuff I talked about earlier. Even if a talk isn’t immediately relevant to your current project, it might be next month, or next year. Or it might twist some lock in your brain and let you see your current project in a different light.
There’s also the announcements bit at the start. I call it announcements, but it’s really the “we’re hiring” section. Even if people don’t announce that they’re hiring, when you talk to them in the pub you’ll find that most people won’t turn away a job applicant. The ruby scene is incredibly under-staffed.
The pub bit after a meeting is a great networking event and I mean that in the least shabby, trading-business-cards sense, and more in the getting to know people that you might work with in a couple of years time sense.
Even if you don’t come to the meetings (but you should), sign up to the mailing list. The traffic is pretty low, but a fairly decent chunk of it is tagged [JOBS]
and there are loads of people recruiting. Yes you’re up against everyone else on the mailing list, but the reason so many people are hiring is because there aren’t enough rubyists to go round! You’ve got a good chance at any of these jobs.
rest of the uk
Hopefully, by now I’ve convinced you that getting involved in the community is a good idea, and that the London groups I mentioned are good things to get involved with. But that’s not where it ends.
rest of the uk (revealed)
If you’re based near London, but not in London, maybe you’d want to hit up some of the User Groups. There are regular groups in Ipswich (IPRug), Oxford (OXRUG), and CAMRUG in Cambridge. Further afield there’s the BRUG, the Bristol group, cardiff.rb in Cardiff and WMRUG in Birmingham. There’s a few on-again-off-again groups: surrey rubyists (based in Guildford), and BRUG (2) in Brighton too. Maybe you could be the person that keeps them going?
leeds ruby thing in Leeds, NWRUG in Manchester, SHRUG in Sheffield, and ncl.rb in Newcastle also have regular meetings with strong communities. Finally there’s ScotRug which is mostly based in Edinburgh, but there are occasional meetings in Glasgow and Aberdeen too.
No matter where you are in the UK, it should be possible for you to find a Ruby meetup and wherever you find a ruby meetup it means there are people being paid to use ruby in local companies. Which in turn means you can live there and be paid to use ruby. Don’t let anyone tell you that you have to stay in London to work in technology.
If there isn’t a ruby group, just start one, it’s not hard! I can give you some advice afterwards if you want it, but all you need to do is let people know you’re doing it6.
rest of the world
I’m not going to list them all, you’ve seen how many are in the UK. Ruby is pretty popular, so chances are there’s some kind of group wherever you might look. If you’re on holiday then you’re probably not that far from a group, put out a message on twitter, someone will take you to the pub and talk about ruby at you if you want it!
rubyusergroups.org is a good place to find out more.
something longer
Of course, user groups aren’t the only way to get involved. There are the conferences. So many conferences.
A user group is usually a fairly informal, local get together where most attendees will know each other. Maybe in a big place it’ll be 100 people or more (LRUG can get up to 160 for a VERY popular event). A conference on the other hand is likely to be at least that size, but usually much bigger and draw attendees from much further afield, not just the local community. They’re usually a whole day of talks, often 2 or maybe 3 days for a big conference. It’s a good chance to meet the authors of the libraries you use, or chat to people you wouldn’t normally be exposed to.
A good site that is ruby specific is rubyconferences.org; it lists upcoming ruby confs with an option to filter by CFP if you want to talk etc… I think it’s manually updated though.
A much more comprehensive site is lanyrd.com - although you can’t just see conferences, you’ll see user groups and basically everything tagged with ruby on there.
A new entry is https://github.com/planetruby/awesome-events which is a github repo and command line tool - you can raise a PR to add an event and you can see it online, or use their tool to find out what’s upcoming.
conferences in the uk
The major UK ruby conference was Scottish Ruby Conf, now in it’s 6th year, based up in or near Edinburgh. It’s the UK equivalent of a major US conference; multi-day, multi-track, big-name keynote speakers, swag, the works! I say was because last year they said it would be the last one. I think because the organisers mostly weren’t using ruby in their day-jobs anymore - but we’re all expecting that something similar by the same folk will happen in it’s place, so keep an eye out for something from them. All the videos from the previous editions are available and there are some great talks, so at the very least have a look at what’s available already!
The first Bath Ruby happened earlier this year in March. I wasn’t able to attend this conference, but heard really good things. It had a impressive line up of speakers, and was quite cheap (less than £100). Videos are coming soon.
There’s Brighton Ruby, the second of which was a couple of weeks ago. Looks to be coming back next year too, in a bigger venue. The first year wasn’t filmed, but this year was and they’ll be coming out later in the year.
Finally there’s Ruby Manor (full disclosure: I organise this with a couple of friends), based in London, there’s been 4 so far, but it’s not entirely regular (and we’re not sure we’ll do another, but never say never). It’s the opposite of Scottish Ruby Conf; community driven, one-day, one-track, no frills. All our videos are available on our website.
There are loads of other conferences in the UK though, not just about Ruby and you should definitely use lanyrd.com to try and keep up. Sometimes the first I hear about something is the stream of tweets from attendees talking about how good it is!7
excuses to travel
I won’t mention them all, seriously, there are LOADS!
Just pick out a few that are “important”.
First up, and closest to home is: EuRuKo
It’s the major ruby conf in europe and doesn’t have a permanent home. Instead the attendees vote for which city to hold it in the following year. It’s was in Athens in 2013 and was supposed to be in Kiev in 2014 (but they had to cancel because of the political situation - shame). Happily they’re organising it this year (2015) in Salzburg, Austria and tickets are on sale for just €65.
There’s another smaller conf called RuPy that does a similar thing, and it covers both Ruby and Python8.
The US hosts the two biggest confs for rubyists: RailsConf and RubyConf. Again, both tour, hitting a different city each year. RailsConf this year (2015) was in Atlanta, Georgia at the end of April, so keep an eye out for the 2016 version. RubyConf will be in San Antonio, Texas on 15th-17th Nov. These are huge affairs, Rails Conf is proably a 1,000 or so attendees these days.
And the regional confs. Too many to list, but it can often feel like there’s a ruby conf every other weekend in the states. Again, if you’re planning on visiting the states it might be a good idea to see what is happening in the ruby scene, there might just be a conf on!
Japan hosts the other major conference: Ruby Kaigi. Many presentations are in Japanese, but they have live translation into English (and vice-versa for talks presented in English). The Japanese community is quite different to the western community as many Japanese rubyists are C programers who work on ruby itself.
These past couple of slides have probably been a bit overwhelming. I’m not saying you should spend all your spare time going to conferences; not least because it would be prohibitively expensive and destructive to the planet! But, most confs publish videos of their talks, so you should keep an eye out for people at conferences mentioning great talks and then watch them when they’re released! Much cheaper!
But you should try to go to some conferences. They are great ways to meet people and learn loads of new things.
ask me a question?
So, hopefully I’ve given you a taste of why taking part in a ruby community is a good idea, and an quick overview of what that community looks like, both locally and globally. It’s probably time to stop though, so any questions?