I had the opportunity to attend and speak at MountainWest RubyConf 2014. As always, I quite enjoyed myself and learned interesting things.
I started going to conferences in 2010 when I was learning Ruby. At the time my primary goal was learning the correct way to do things from folks with much more experience than myself. Four years later, I still go to conferences to learn but I also go to conferences for a reminder that programming is fun and interesting. Spending time with other people passionate about programming and making things is a great way to break out of the day to day grind of deadlines, stories, and code reviews.
I've attended (and spoken at) MountainWest RubyConf twice and both times it has delivered on all counts. The organizers of Mountain West always choose a good mix of talks. There are always few talks that are immediately applicable to my day to day job. There are many talks that make me go "huh?" or "That's so cool! I'd never thought about that." There are talks just above my current Dreyfus Level that stretch me mentally. And there are talks that are about improving yourself, your processes, and your environment that aren't deeply technical but are inspiring.
The talks were fantastic this year and it is hard picking my favorites. The two machine learning talks ("Five Machine Learning Techniques That You Can Use In Your Ruby Apps Today" by Benjamin Curtis and "Test Driven Neural Networks With Ruby" by Matthew Kirk) were both interesting, informative, and accessible to machine learning newbies. I loved that Matthew Kirk's example was detecting the language actually spoken by the Swedish Chef.
Ernie Miller gave a great presentation, "Don't", about the mistakes he's made in both life and code and how to avoid them. Sarah Mei gave her advice on making technical decisions. Both of their talks were relevant and timely for me and I appreciate that they shared their personal experiences, good and bad, with us.
Nathan Long gave one of the best introductions to complexity analysis that I've seen with "Big O in a Homemade Hash." I'll be recommending this talk to newer developers. I especially appreciated that he also showed that you can make your own version of a standard library class and why that may not be the best idea for performance.
Although I didn't get to attend them, I heard from multiple people that Randy Coulman's "Affordances in Programming Languages" and Eileen Uchitelle's "CRUD! The Consequences of Not Understanding How ActiveRecord Translates into MySQL" were amazing. I plan to watch the recordings as soon as they are available.
Finally, there were a lot of great sessions on topics that don't seem directly related to Ruby but were awesome anyway. Noel Rappin's "But Really, You Should Learn Smalltalk" was just enough introduction to make me want to set up a Smalltalk environment and start working through tutorials. Julian Simioni's "Software Development Lessons from the Apollo Program" was interesting and really made me feel fortunate for developing on modern hardware with modern languages. Seattle.rb's Ryan Davis described how Seattle.rb has built a vibrant user group that meets the needs of a diverse group of members.
My session was titled "A World Without Assignment" and I described it to multiple people as the first 30 minutes of Functional Programming 101. As usually happens many people took not only my intended message but also learned some totally incidental things, including the fact that in Ruby you don't need to put a clause after the keyword case. The slides for my talk are here. Watch this space, once the video becomes available we'll be sure to post it to the Substantial blog.
You can find more from Aja (and slides from past talks she's given over on her blog.