One of the great things about going to conferences is the chance conversations you have with people about random topics. Having a few days to cover a bunch of topics in a bunch of sessions creates the space to talk about new things and have a lot of these types of conversations. During a conversation at RubyConf in Denver last month I found out about a Google project called Blockly which has become a bit of an obsession of mine in the month since then.
It’s pretty early days for Blockly and there’s still a lot of changes being made to the core of the code, but it’s already a very cool concept. There’s a demo using mazes which I’ve been particularly interested in – I think it’d be a good way to teach programming basics to kids while still being a fun puzzle game. I’m working on creating a series of mazes to do just that. I’ll post more when it’s complete.
Whew! Just got back from a whirlwind 5 days of RubyConf 2012 in Denver, CO. Overall it was a great conference and I’m glad I made it out there. Here’s a round-up of my thoughts in no particular order:
– between going to sessions, talking to people, and checking out events hosted every night, I was pretty much engaged the entire time. That was both awesome and slightly surprising. With 3 full days of sessions, I expected there would be a bunch of downtime or that my interest would dwindle. However, I brought a few books with me and ended up not even cracking any of them.
– there was a good mix of topics for the conference – it was less Rails-focused and tried to cater to more than 1 group of people – and that diversity of subjects felt refreshing. Other than the keynotes (which were held in a single huge room) there were 3 tracks of sessions, which is great way to ensure that you’ll find at least one subject that interests you for a given timeslot.
– when you consider all the sessions as a whole you can start to see patterns emerge. One of the main themes of the conference was JRuby’s rising popularity. In some ways it felt like a coming-out party.
– I met a lot of great people. The conference did a good job of making time/space for casual conversation and interaction. It was cool meeting people from all over the US and Canada who aren’t all working at Bay Area tech start-ups (not that there’s anything wrong with that). It was cool to hear about people working in research, defence, education, etc. Also, many of them were RubyConf first-timers. I met a guy who said attendance was up 50% from the last one.
– some of my personal favourite sessions included Jim Weirich’s keynote, Aaron Patterson’s session on meat curing/Rails internals, and Chris Hunt’s talk on SOA at Square. The video from the presentations will be posted on this site
I’m feeling very inspired having spent Friday and Saturday at GoGaRuCo listening to a group of speakers who largely have more experience and expertise in Ruby/Rails than I do. This is a good thing since it made me question what I’ve doing to up my game. I think that’s one of the main benefits of a conference – to give you a kick in the ass by seeing what other cool things people are working on.
I’ve been using Ruby/Rails as my main focus for over a year now and it seems like the first wave is complete. Wave 1 for Ruby (as for any language) was getting a base level of knowledge combined with practical ability that would allow me to actually do my job and add value day-to-day. Through a combo of pair programming with a great team and individual study, I was able to skill up pretty fast and become a useful member of our team.
I realize, though, that there are still a bunch of holes in my knowledge, especially where Ruby’s concerned. I also realize I stopped working so hard off-hours to learn and became somewhat complacent when I was able to handle the day-to-day. It’s not such a big deal – it feels like a natural ebb-and-flow thing and I wanted to focus on other stuff for awhile. But still… It’s sobering and inspiring in equal parts when you spend some time with people who are hungry and working hard and showing you interesting things.
I’m ready to go on to Wave 2, which is a deeper knowledge of the tools that I’m using. I know how to use a lot of the tools, but I have this inkling that I don’t fully understand how they work. I’m excited for the ride. Many thanks to the GoGaRuCo speakers (Ilya Grigorik, Steven! Ragnarök, et al) for inspiring me to push to the next level.
1. Don’t limit your thinking to things that are currently possible
2. Force yourself to think of more options even if you think you’ve already found the best one
3. Remember that all rules are temporary and artificially created
4. Do thought experiments
5. Don’t limit yourself to savory or sanitized thoughts – let your mind go to dark places
6. Be honest, at least with yourself
7. Think about how changing a single factor would change the possibilites
8. Listen to music
9. Don’t worry about coming up with bad ideas – accept them as part of the process
However, there were signs along the past few years that things were probably going to have to change. But each time it happened, I reluctantly learned just enough to get whatever project I was working on un-stuck.
3. Backbone.JS Peepcode Screencast: Specific to the Backbone.js library, but extremely well-done. The teacher really knows his shit and keeps an almost comically high level of enthusiasm throughout the whole thing. Comes with a sample app to give some real-world examples.
I had a great conversation with a friend over dinner. We were reminiscing about how exciting it was the first time we were able to download a full album of music. It was such a rush to see how quickly you could get entire songs, albums – even the entire catalog of albums an artist put out. The novelty of it was insane.
It’s safe to say the novelty of downloading music has worn off. It’s not that there’s not still great music being produced, it’s just that the downloading/consuming part isn’t exciting like it was in the past.
What’s exciting now is the technology that’s available to help us create amazing things. This has been building for awhile – we’ve seen the tools to help us create things get more and more powerful – but it’s really reached an interesting point now. You can now create something with real value – even a company – with almost no initial money investment. All it takes is your time and imagination. And that to me is amazing. Where the action’s at has changed from the consumer side to the creator side.
I saw a great talk by Corey Haines where he made the distinction between test-first and test-driven development:
Test-first: pain makes you change your tests
Test-driven: pain makes you change your code
This really got me thinking – how you handle pain in your codebase makes a huge difference in the progress you can make. Pain shows up in many ways in your codebase, but often it’s not listened to. Often a band-aid is added or only the symptoms get addressed. That will fix the problem – at least temporarily – but it doesn’t make much sense as a long-term solution.
Better to listen to what the pain is telling you and make changes to address the cause rather than the symptoms.