A weekly series from the Ruby Masters
We’re excited to launch a new interview series on the RL blog – “Path to Ruby Mastery” – by top trainers and developers in the Ruby community, from across the globe. The interview series will provide insight and commentary from these notable Ruby trainers and developers, with the goal of facilitating and providing answers to the questions Ruby beginners face. We welcome your suggestions for interviewees and questions. Look for a new post every Tuesday!
We’re proud to have Jamie van Dyke from the UK, kick off the series.
Satish Talim>> Welcome, Jamie and thanks for helping with the inaugural “Path to Ruby Mastery” post and for taking out time to share your thoughts. For the benefit of the readers, could you tell us something about your self?
Jamie>> I’m Jamie van Dyke. I live near Leeds in the UK, and I’ve been doing web development since early 1996. I began using Ruby on Rails in January of 2005. Since then I’ve been a contractor working with a bunch of startups, I did a year and a half as the App Support Manager (EU) for Engine Yard, as well as being part of their Automation team. Now I run Parfait, which is “The Ruby Agency” in the UK, we do training, recruitment (in a non-traditional, non-evil way) and consultancy. I run a blog, Fear of Fish, aimed at Ruby beginners mostly, it’s been neglected lately but that is changing.
Willian Molinari, Brazil>> How should one go about learning the Ruby language? What material (books, eBooks, online tutorials etc.) would you recommend?
Jamie>> I wholeheartedly recommend the Beginning Ruby book by Peter Cooper1. It covers the basics completely, and then moves on to more advanced topics further on. If you’re learning Ruby to use Ruby on Rails, then once you’ve done some reading and playing around, move on to the RailsCasts site as well as the impressive PeepCode screencasts.
I’d also highly recommend Design Patterns in Ruby by Russ Olsen, it shows you the best way to structure the majority of problems you’ll be faced with. Also, as Rick Olsen has reminded me, it’s important to pass on that knowledge to others and by doing this you develop yourself more by thinking through what you know, and probably solidify that knowledge to yourself.
Of course, there’s nothing like a good training course either.
Keith Brady, Australia>> What are the pros and cons of Ruby that are being discussed in the development community and what is your opinion on that?
Jamie>> The biggest pro has got to be the readability, for me. Ruby is such a simple language that you can pick it up quickly and move straight in to how best to use it, rather than studying the language for a great deal of time before being useful. Being simple makes it really quick to code in too, for lack of better words “it works like your brain does“.
I haven’t heard any rumbles in the community about Ruby apart from performance issues, which I’ve never come across as really being an issue. Ruby wasn’t planned to be a high performance language, it’s more about the capabilities it has and the benefits that it gives the developer. If I was to gripe about any part of Ruby, it would have to be the meta programming. Yes, the meta programming is a great tool, but it’s abused by amateurs and pro’s too much. 80% of the time I see meta programming it’s unnecessary and merely complicates the application itself. I’ve always believed Ruby is more about keeping code maintainable through the power of it’s simplicity, not to show off your prowess by complicating it. So think before you engage the power of the meta!
Jerry Anning, USA>> What best practices are most important for a new Ruby programmer to learn and understand?
Jamie>> I’ve already mentioned the Design Patterns in Ruby book, so step one is to understand the best way to structure your code and to recognise which pattern fits what use. That will be a big help in not only the speed in which you can develop applications, but also the fact that other developers who are familiar with these patterns (and they’re not just restricted to Ruby) will be able to pick up your code and get to grips with what you’re doing, very quickly. On a side note, I’m also quite particular about naming conventions and coding structure. Don’t use CamelCase for method names as they do in Java and others, more_like_this and lessLikeThis. One is more readable, and that’s very important to me.
Satish Talim>> Most beginners in Ruby, would like to contribute their time, skills and expertise to a project but invariably are unaware of where and how to do so. Could you suggest some?
Jamie>> Depending on your skill level there are plenty of good places to start. Ruby on Rails, for the more core parts, is high up on the needed skills list. There’s a lot of meta-programming wizardry in there to get your head around if you want to contribute to Rails significantly. On the other hand there’s plenty of smaller pieces you can help with that don’t take a Ruby guru to help with. So you could say it’s got the best of both.
Victor Goff, USA>> How do you see the market for Ruby Programmers in the work place, and do you see it as primarily tied to Rails and Web related work? Do you see trends in administration or other work? Whatâ€™s the future for Ruby?
Jamie>> You can’t deny that Rails is going to be a big part of Ruby for quite a while, it was certainly the catalyst for a lot of people to gain an interest. It’s hard to say what the future will hold, but there’s definitely a trend to push the uses of the framework to a new level. RubyCocoa and Shoes are pushing the boundaries on the GUI development branch of use, and system administration scripting is also something I’ve seen used quite often myself and have seen others use. It won’t replace the other languages, of course, but I think it’s finding a solid place in the ranks of general use languages.
Satish Talim>> What can / should job candidates (for Ruby) do to distinguish themselves from their competition?
Note: The candidate has done his/her homework on the company that they are interviewing with. The candidate understands what they’re looking for, and the candidate is prepared to show them that he/she fits the bill, based on the candidate’s skills and experience. What else can the candidate do, to set themselves apart from other equally well-qualified and well-prepared candidates?
Jamie>> What interests me most about Ruby developers that I hire isn’t their current skill level or expertise. I’m not interested how clever they can be with their meta-programming-fu, I’m interested in their use of the language. Yes it’s nice if a candidate is able to do the most advanced Ruby, and I wouldn’t disregard a potential developer for using it. However, I’ve seen far too many developers weaving layers of clever code together merely because they know how.
The most important part of developing for me is maintainability. How well can their code be picked up by other developers? This is high on my importance list. Keep it Simple Stupid (KISS) is one of my practices, so I expect any one I hire to do the same. That’s not to say that they won’t need to be able to understand complicated code or be able to fire out some, anyone who wants to pick up Rails and dabble in the source code certainly needs to be fluent in these methods.
When I hire someone I want to see their code and their attitude towards it. Open Source software is the first place I look to see what they’ve done. Contributing to other peoples frameworks shows an ability to understand other developers code, and more importantly, that their contributions were good enough to be accepted. If there are no contributions to other peoples software, they’ll struggle against others I might have on my list.
Satish Talim>> Do you have any other suggestions for these participants (would-be Ruby developers)?
Jamie>> Only that you should be learning Ruby because they enjoy it, and therefore to have fun. Ruby is here to stay, and working with it is a pleasure for most, so if you’re not one of those developers it’s time to pick another language, or profession!
Satish Talim>> Thanks Jamie for sharing your views with the RubyLearning participants.
On 30th Sept. we talk to James Edward Gray II from USA.
Update: This blog post is also being discussed on dzone.
The opinions expressed are those of Jamie van Dyke and do not necessarily reflect those of www.RubyLearning.com.
Possibly Related Posts:
Post supported by Blue Box Group: Blue Box Group is in the business of providing affordable Ruby on Rails hosting solutions! They approach web hosting, virtual servers and dedicated servers differently, treating each client as a partner and working towards the common goal of success for their business. From shared Ruby on Rails hosting to giant production clusters, they have the experience, talent and equipment to make your site a success!