I'd been reading 99 Bottles of OOP by Sandi Metz and it made me reflect upon where the next level of my development needed to get to. Sandi had opened my eyes to OOP and also made me realise that I really need to dedicate time to learning more about how I develop and not just learning the tools. I was inspired; time to make a crazy decision!
RailsConf 2018 was held in Pittsburgh, PA. I’ve generally been left disappointed when attending tech conferences in the UK so thought I’d go and see how they do it in the States and enjoy a change of scenery at the same time. As a junior developer, just into my second year, I have wanted conferences to teach/expose/highlight/inspire more about actual development skills and not focus on wider issues like ‘Job interviews 101’, ‘How to be nice in a PR Review’, ‘Sitting on the work/life seesaw’ etc etc.
So I headed across the pond in search of all the answers; to come back armed with ninja level ruby skills, to learn every config setting in Rails, to be shown secret view helpers and to generally improve myself a developer. Here are just 5 of my many takeaways:
One: I still have a lot to learn
The topic of Web Development is huge. Learning Ruby, learning Rails and improving my ability to write clean code is just one part of the picture! This is definitely an aspect of this industry that overwhelms me. Do I need to become proficient in React and improve my JavaScript? How much longer can I deploy with Capistrano without actually knowing how it works and what it’s doing? Is knowing the verbs of HTTP really enough? When do I need to delve into Rack? And what is this blue whale?
Two: But it’s OK. DHH said so
DHH’s opening keynote was truly inspirational. I hadn’t heard the phrase JIT Learning before but it is very apt for my process of learning! Just In Time Learning, in case you didn’t know, is the art of learning something at the moment we need to. I use commands/tools/methods/libraries and then when I need to adapt it, or when it breaks, or when I want it to do something different then I dig deeper into them. DHH was making that point that we should be embracing new developers into the Rails community and not demanding that they know the fundamentals. Because that, after all, is the beauty of Rails – you don’t need to know SQL to write ActiveRecord queries.
As someone who came through a BootCamp (Makers Academy) and was able to write a basic Rails App after a couple of weeks, but who still finds it daunting to consider himself a developer, this really struck a chord. Obviously I want to understand the fundamentals; but finding the time to learn whilst also trying to work is tough. There is a balance to be had. It was a great way to start the conference and it set the tone for the next three days.
Three: I now understand how DB Indexing works…well…I understand it a lot better
‘Dropping into B-Trees’ by David McDonald was one of my favourite talks from the conference. The fact he opened with a gambit about this being his JIT moment probably grabbed my attention from the get go, but David’s presentation skills also made this extremely accessible. It felt like there was a penny-drop-moment in the room. It was one of the few speakers I made a point of speaking to after their talk in search of some more detail and he obliged. Thanks, David!
Four: Boolean Transformations
Another talk I really enjoyed and which highlighted 16 Boolean Transformations, including De Morgan’s laws, which can improve the readability of code. Craig Buchek’s ‘Booleans are Easy — True or False?’ is exactly the type of talk I look for and enjoy at conferences. I learned something that I can use and that will hopefully improve me as a developer.
Five: Rails 6 will be scalable by default
We had a couple of very interesting (and in depth) keynotes from Eileen Uchitelle and Aaron Patterson explaining how the Rails Core Team are improving how Rails scales. These talks highlighted, to me at least, the Rails Community. How Rails is Open Source and how it can learn from others. For example, Eileen mentioned that companies such as BaseCamp and GitHub have implemented their own code to make Rails play better with multiple databases. From this they can improve the ability for Rails to do this by default. I really love this about the Ruby and Rails community; the sharing of knowledge to try and make our tools better.
I thoroughly enjoyed RailsConf and hope to return again. As conferences go, it was by far the best I’ve ever attended. On a personal level it was amazing to dip my toe into the Rails Community and get some time away from work to learn and play around with some new ideas and concepts too. I have to thank my employers Kyan, for letting me attend too! I may have spent my annual training budget in one go but it was definitely worth it!