I recently wrote about what originally drew me to Ruby.

Interest in Ruby is one thing, but it took some work to learn the language. Here are the things I did to learn Ruby. I’ve tried to keep them in roughly chronological order, but it’s been a couple of years now, so some of the memories are a bit foggy.

First of all, I need to note that at the time I stared learning Ruby, I’d been a professional programmer for about 20 years, so I had a fair bit of experience with different languages. For more than 10 of those years, I’d been programming in Smalltalk. Ruby takes a lot of inspiration from Smalltalk, so many of the things that confuse new Ruby programmers were already second nature to me.

Those are advantages I had that you may not have, but you have other advantages that I didn’t so don’t let that stop you.

  • Before I started learning Ruby, I’d already been listening to the Ruby Rogues podcast. That gave me some background knowledge that set a solid foundation.

  • Worked through Learn Ruby the Hard Way. This book teaches programming using Ruby, so it was a little bit basic for me, but helped me get familiar with Ruby.

  • Read Programming Ruby 1.9 pretty much cover-to-cover. I obviously didn’t remember all of it, but it gave me a way of knowing when the language should have a solution to a problem I was having.

  • Worked through some code katas. This helped me get used to writing some simple Ruby programs.

  • Read Eloquent Ruby. Whenever I learn a new language, it’s important to me to learn how to “speak like a native”. I want to use the proper styles and idioms for the language. This book really helped with that.

  • Attended Mountain West Ruby Conference. Conferences are a great way to meet people and learn new things. I’m attending my third MWRC this year, and as an added bonus, I get to speak there this year.

  • Read a ton of blog posts. As I started following more Rubyists on Twitter, I started seeing links to a lot of articles and blog posts. These helped me pick up a lot of knowledge and gave me a sense of the Ruby ethos.

  • Read Exceptional Ruby. A deep dive on a specific subset of Ruby, but valuable no matter what language you work in.

  • Worked through the Ruby Koans. Great exercises. RIP Jim Weirich.

  • Read other people’s code. I went on GitHub and read through the source code of several popular projects. I even found some issues and submitted some pull requests based on what I read.

  • Read Confident Ruby. This is a great book. It explains so many nuances of how to write good, readable Ruby code.

  • Watched Gary Bernhardt’s Destroy All Software screencasts. All of them. Well worth it.

  • Read Practical Object-Oriented Design in Ruby. I’ve mentioned this book (repeatedly). It’s that good. It completely re-wired my brain. I write different code today because of this book. Even if you don’t care about Ruby, read this book anyway.

  • Subscribed to Avdi Grimm’s Ruby Tapas screencasts. Again, well worth it.

  • Regularly attend my local Ruby meetup. We’re a small but enthusiastic group and we enjoy learning together. Getting together with other people to teach and learn is really valuable.

  • Subscribed to Peter Cooper’s Ruby Weekly. There are always links to interesting articles and tools.

  • Practice, practice, practice. Along the way, I wrote toy programs. I wrote tools for my job. I experimented. I played. You can’t really learn a new language until you actually try to use it to solve problems.

That’s my path into Ruby. Your path is certainly different, but maybe there are some ideas in here that you can use.