Continuous Learning and Ruby

One of the admonitions of the Pragmatic Programmers is that developers spend time on improving their skill set continuously. The pace of change in this industry means that if you rely on your existing knowledge you will soon be left behind. I have been prety good at following this pattern over the years, and usually put in a lot more than the 4-5 hours a week (IIRC) that Andy and Dave recommend. But I’ve fallen behind a bit on their continuous learning goal of ‘learn a new language every year’. I have had good intentions, but my copy and Andy and Dave’s book on Ruby that I purchased in 2003 (the so-called pickaxe book) has sat stubbornly on the shelves.
So I dediced that it was time to dust it off. Partially the move has been inspired by learning the new features appearing with C# 3.0 and LINQ to go and look at how other languages use features like iterators (yield), lambda expressions, etc., and are more functional in approach than my traditional imperative language background, do things. When searching for best practices and patterns for their use it seems to be worth exploring languages that have experience of those feature sets. In addition thinkers whose work I like, like Martin Fowler, Justin Ghetland, and Robert Martin are increasingly speaking in Ruby. Not all the time, but enough to make me interested to speak that language with them. Finally I want to understand the hype around Rails and the best way to do that is to use it.
It is important to have goals with this kind of effort, so that it is not just an exercise in book reading, but involves using what you learn. Ruby is not looking like beoming my day-to-day language of choice, so I need a number of additional projects:
  • Using Ruby as a scripting language: In other words using it to automate repetitive tasks or help with testing. I’m intending to use Brian Marick‘s Everyday Scripting with Ruby to give me a leg up here.
  • Learn how to use Watir (pronounced ‘Water’). Web application functional testing is definitely a weak spot in my armory and this looks like possibly filling that gap. Scott Hanselman raves about it, so there must be something there. I am tempted by Selenium too, but I have to focus somewhere…
  • Use some Rails. I’d like to get some experience of what makes Rails advocates say it is da’bomb for web site development. For me, that means learning Ruby and getting my hands dirty, rather than just reading what the rails guys blog about it. Dave Verwer gave a great presentation at a previous DDD, but I want to experience it.
  • Use Gardens Point Ruby.Net. I want to see where it is, and how far it has to go. The CLR is a multi-language platform after all.

I’ll let you know my progress as I go, but already some of the understanding I am getting from Ruby’s use of iterators and blocks is helping me comprehend what is possible with iterators and lamda expressions in C# 3.0. In that sense Andy and Dave are right that learning another language is helping me with the language I use everyday.

Out of interest, I looked at Boo as a choice as well. Boo looks really interesting, but I was drawn to Ruby by the support out there. having Andy and Dave write a book on your language sure helps. But I certainly have Boo tagged as a language to watch. Interestingly Boo is statically typed but has duck typing around interfaces (if it walks like a duck and talks like a duck…).

I also considered IronPython but it didn’t give me access to the projects out there in Ruby so it lost the fight.

Finally, for those of you who want to know what the Pragmatic Programmers are pitching now, it seems that Erlang is the subject of one of their latest works. Just shows the growth of interest in parallel programming. But that’s another post.


This entry was posted in Computers and Internet. Bookmark the permalink.

18 Responses to Continuous Learning and Ruby

  1. Jonathan says:

    my pickaxe book is also only partially read. i did better with the rails book though, and recently deployed my first (farily simple) rails site to an actual server and everything. it seemed easier to learn ruby by starting off using rails because that gave me a practical application to focus on. when i\’m ready to stop thinking of ruby as C# without semicolons (or a compiler, or variable type declarations…) i\’ll move onto pickaxe i reckon.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s