Coaching Ruby on Rails beginners
In this article, I’m going to talk about Rails Girls London 2017 and how the vast range of material is taught on the day. I’ll end with a personal story about how I then started teaching my partner how to code with Ruby on Rails.
Rails Girls London 2017
Last year carwow sponsored Rails Girls London, several of us went along to help out and I was a coach for the day.
TryRuby is an interactive shell (a program you can run code in) which runs in your web browser, with instructions to get students started using Ruby. The Rails Girls tutorial guides students through setting up a Rails app, deploying it to Heroku, and adding various capabilities to it, including image uploads and user authentication. The Rails Girls tutorial works really well, because it allows students to get a broad overview of what they can do with Rails. It also gets students to use Git early on and start learning about test-driven development with RSpec.
While we waited for lunches, generously provided by Deliveroo, several speakers gave lightning talks. Funmi (@funmmi) gave an inspiring talk about her journey from Rails Girls attendee to junior developer and Rails Girls coach in a short space of time. We then returned to the afternoon session. Most students were well on their way through the Rails Girls tutorial by now. There was a real sense of achievement among the students, who had got their apps up and running. An issue I noticed was that occasionally, having gone through the tutorial at such a pace, students looked back and weren’t confident that they had fully grasped everything they’d done. This is arguably the trade-off that has to be made in order to let students build a working application quickly.
My only reservation about the event would be the lack of follow-up. I would like to see more done in general to encourage people to try out coding and see if it is for them; and then help to add a little routine and structure to the self-study process. Inevitably, everyone will hit a wall at a certain point when learning to solve problems with code. How exactly to get past this will vary for everyone. For me, the teaching assistants and professors on my master’s helped with really tricky concepts early on, and for revision our study group would convene to go over the subject material and ‘debug’ the gaps in each others’ knowledge.
If students are hitting the point when nothing makes sense during the course of the Friday-Saturday event, then great, but if not, I would not be confident that one weekend can make a significant difference. This is going to vary between students, but if in future you’re attending RailsGirls or a similar event, my advice would be to push yourself as hard as possible, really stretch your abilities. The truth is, programming isn’t all fun, and certainly as a novice learning how to learn to program will be hard, but that’s okay. It may seem too difficult at some point — which was my experience in India four years ago. My teachers at the time were very patient and helpful, I had access to useful textbooks, and by the end of several months’ study could write some passable Java and SQL code. So honestly, if you can just push through that feeling and learn to tolerate that discomfort, you’ll be well on your way to becoming a proficient programmer.
It is possible that some form of ongoing support after the event, whether instructor-led or peer-led, might reduce the likelihood of people giving up learning to code. It’s just about possible that the 10 to 12 hours of deliberate practice participants will have experienced over the Friday setup evening and the full day on Saturday will have been enough to hit this wall, work through it, and find out how fun it is to get past it.
Teaching my partner how to code
I started teaching my partner how to code over the Christmas holidays, using some of the same resources that were used for coaching at Rails Girls. He is not a programmer — he works as an archivist. Nevertheless, he wanted to give coding a go to find out if he’d enjoy it. Following the Rails Girls recommended learning path, he started with TryRuby, working his way through it over the course of a few evenings. Although he enjoyed it overall, he did have some issues with it. Firstly, he thought that the instructions often gave him code to type out without really understanding why. Again, this can be a downside of this sort of tutorial — while you may be able to get started quickly, you might only have a cursory understanding of the code you’re writing.
He also found the tutorial to be fairly restrictive in terms of what you can do. TryRuby has a very set structure and will not allow you to deviate outside of that. For example, in one section about creating a hash to store book ratings, he tried to name the variable ‘films’ and store ratings for those instead, but when he tried to see what the hash contained he got a NameError. He handed the computer to me, and when I tried assigning the variable and checking what class it belonged to — it came back as a NilClass. The tutorial would not even allow this incorrectly named variable to be assigned. There did not seem to be an obvious reason for this sort of restriction; in contrast, Codecademy allows you to run other code during lessons even though it then marks it as wrong.
Since he enjoyed the tutorial despite these problems, I recommended Learn Ruby The Hard Way (https://learnrubythehardway.org/). He likes that he gets to write Ruby with a real editor and run it on a computer, so unlike TryRuby he can try different things out other than what’s instructed. He also thinks that it’s more comprehensive than TryRuby and gives you a better overall understanding of what’s going on.
Apart from Learn Ruby the Hard Way, he’s also working his way through the Rails 5 tutorial on Progate (https://progate.com/). Progate is similar to Codecademy, with an in-browser editor, but hasn’t yet introduced the locked-off lessons like Codecademy has. This tutorial has slides guiding users through concepts, which they can then apply in an in-browser code editor. This seems to be really promising and is encouraging him to keep going. Who knows, maybe next year he might be a coach at Rails Girls!
carwow hosts regular community coding events, including the Elixir Hacknight (https://www.meetup.com/London-Elixir-hacknight/) and the Ruby Hacknight (https://www.meetup.com/ruby-hacknight-london/). Our next event is an Elixir Hacknight on Wednesday April 11th, at our new offices in Victoria.