A weekly series from the Ruby Masters
Welcome to the next installment of the weekly 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!
This week, we’re happy to have Chris Matthieu from USA.
Satish Talim>> Welcome, Chris and thanks for taking out time to share your thoughts. For the benefit of the readers, could you tell us something about your self?
Chris>> Hello, my name is Chris Matthieu and I’m the host of Rubyology. I have been Microsoft-free since I tried Ruby on Rails in 2006. My first Rails site was Chug’d, a social network for beer lovers. Since then I have designed and developed 10 additional full-featured Rails applications including a Ruby-based web server called Wuby, which has been open sourced on GitHub. You can learn more about my projects at http://ChrisMatthieu.com/
Willian Molinari, Brazil>> How should one go about learning the Ruby language? What material (books, eBooks, online tutorials etc.) would you recommend?
Chris>> Of course I would recommend listening to Rubyology to learn more about Ruby and other frameworks including Rails. Other podcasts that I recommend include RailsCasts and RailsEnvy. Books such as the RubyWay and RailsWay and the “Pickaxe” book are also great resources as well. These podcasts and books are great to familiarize yourself with the language and framework but nothing makes you learn like jumping into a project with both feet! You should also seek out your local Ruby or Rails user groups in your home town and get involved.
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?
Chris>> The biggest negative that you will hear about Rails is that it can’t scale. This is simply not true. If your application is not designed to handle traffic from the start it will not scale regardless of the language or framework that it is developed in. All high-volume sites need to be designed to run in a load balanced environment with state management or stateless pages. Caching and database tuning are critical. The biggest positive to me about Ruby and Rails are the community of innovators, flexibility of the language, and rapid development of the latest Web 2.0 features including RESTful APIs, tagging, and AJAX. Rails makes modern site development fun and simple.
Willian Molinari, Brazil>> What has been your biggest challenge while working with Ruby?
Chris>> My biggest challenge with working with Ruby is getting it into the enterprise. Most developers still need to work on legacy applications in Java or .NET at work and can only develop personal inspirations at home in Rails. Only the lucky few seem to be able to use Rails full time in their jobs. I believe that JRuby will probably be the first to succeed in the enterprise due to its stealthiness Java environment and library access.
Jerry Anning, USA>> What best practices are most important for a new Ruby programmer to learn and understand?
Chris>> New Rails developers need to follow the common practices of convention over configuration. Use RESTful scaffolding to start with so your application has RESTful APIs throughout. Pay attention to developing skinny controllers with most of your business logic in the models (fat models). Learn active resource caching techniques to reduce database IOs. Leverage plug-ins and gems as much as possible to reduce testing and support.
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?
Chris>> You must check out GitHub. It’s a source code repository and a social network for developers. Most frameworks (including Rails) and gems and plug-ins exist at github and your can download them and/or contribute on them by simply forking repositories. Watch this video on how to contribute to Jay Philips’ Adhearsion project.
Keith Brady, Australia>> What types of applications are currently being developed in Ruby and what changes do you foresee over the next year or two?
Chris>> Ruby is predominately being used today to develop Web applications using Rails as the framework. I am seeing new mediums moving to Ruby as the core development language because of its ease of use an power including: telephony and low-res game development as well as thick client desktop applications. Before web development became big with Ruby on Rails, Ruby was used by many network/system administrators for scripting purposes.
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?
Chris>> Get involved in the community. Either introduce game-changing ideas to the community or participate in open source development on GitHub projects. Signup for the Google, Yahoo, and Facebook Rails user groups and help answer questions. Get your name out there and earn respect from the community. If you think that you are ready for an interview on Rubyology send me an email at chris [at] rubyology.com. I can help get your name and cool project exposed to over 2,000 listeners in 15 minutes.
Hope this helps!
Satish Talim>> Thanks Chris for sharing your views with the RubyLearning participants.
On 16th Dec. we talk to Peter Cooper from UK.
The opinions expressed are those of Chris Matthieu and do not necessarily reflect those of www.RubyLearning.com.
The Path to Ruby Mastery Series (So Far):