The popularity of Ruby grows exponentially and with that, more and more people are learning the language. Recently, 400+ would-be Ruby developers from around the world registered for the Free Ruby Lessons at RubyLearning.com and more keep joining everyday. Most Ruby beginners have a plethora of questions related to the language; opportunities in Ruby; Ruby’s future.
Satish Talim of RubyLearning.com talked to Ruby Gurus from around the world, to get their views and opinions.
We are pleased to have with us, Ruby Gurus: Agnieszka Figiel from Poland, David Black from USA, Fabio Akita from Brazil, Jamie van Dyke from UK, Jamis Buck from USA, Jens-Christian Fischer from Switzerland, Juanjo Bazan from Spain, Julian Tarkhanov from Russia / Netherlands, Manik Juneja from India, Matt Palmer from Australia, Mislav Marohnic from Croatia, Ola Bini from Sweden, Pedro Custodio from Portugal, Peter Cooper from UK, Remco van ‘t Veer from Netherlands and Sau Sheong Chang from Singapore. They would give us their perspective on the various questions facing the participants – would-be Ruby developers.
Satish>> A warm welcome to you all. For the benefit of the participants, could each one of you tell us something about your self?
Agnieszka (Poland)>> Agnieszka Figiel, Computer Science graduate from Krakow. I have been involved with Ruby on Rails since 2005, when I joined Lunar Logic Polska, one of the first companies offering Ruby on Rails solutions in Poland. Today I work as a programmer for DreamLab Onet.pl, and additionally I teach Ruby and RoR at the Jagiellonian University in KrakÃ³w. Since its beginnings I have participated in the local KrakÃ³w Ruby User Group.
David (USA)>> I’m a Ruby author, programmer, and trainer. I’ve been using Ruby since 2000, and I’m one of the founding co-directors of Ruby Central, Inc., the organization that produces RubyConf and RailsConf. I run my own consultancy, Ruby Power and Light, LLC.
Fabio (Brazil)>> My name is Fabio Akita, a Brazilian Rails enthusiast, also known online as “AkitaOnRails”. I regularly write posts to my own blog and I published the very first book tailored for the Brazilian audience called “Repensando a Web com Rails”. I am now a full-time Ruby on Rails developer working as Brazil Rails Practice Manager for the Utah company Surgeworks LLC.
Jamie (UK)>> I’m Jamie van Dyke, I work at Engine Yard and teach/write Ruby/Rails course for Skillsmatter also. I’ve been using Ruby and Rails for 3 years.
Jamis (USA)>> I’ve been programming professionally since 1998, in a variety of environments. These days I write Ruby (on Rails) code full-time, and couldn’t be happier. I’m also a father of three children, who keep me and my wife quite busy, and happy. I’m also learning woodcarving, and have found that I really enjoy doing things with my hands.
Jens (Switzerland)>> I’m Jens-Christian Fischer. I run a small development company in Zurich, and currently I’m flooded with Rails projects (which is a “good thing” ™). I have been doing software development for over 20 years, in a lot of different languages (all the way from Assembler, Pascal, Modula-2, Smalltalk, C, C++, Java, Basic and of course Ruby). I have an interest in computer languages and have dabbled in many others (Prolog, Oberon, Python, Lisp to name a few). I blog and work on way too many things at the same time.
Juanjo (Spain)>> I’m Juanjo Bazan, a web developer and university professor based in Madrid, Spain. I’ve been programming professionally (mostly Java) since 1999; now I run my own little company and after adopted Rails a couple of years ago. I’m close to working full-time just with Ruby. I am member of the organization of the annual Spanish Ruby and Rails Conference and co-founder of the Madrid Ruby User Group.
Julian (Netherlands)>> I’m Julian Tarkhanov, also known as Julik. During the day I work for a visual effects / post production company in Amsterdam, the Netherlands, where we do freaky things with images in commercials and features. Before that I was doing graphic design and web development (the second is kind of a hobby/night job by now). Started out as a pure design person, but being a victim of a few management failings I took over the programming part of my projects and started doing PHP. After about 3 years of doing PHP almost full-time I came to Rails as an implementation of everything I missed or could not do in PHP. I run a somewhat hideous subversion repository with all things Ruby and Rails where anyone can steal things from.
Manik (India)>> I am Manik Juneja and I own Vinayak Solutions (VinSol) which is one of the early rails adopter companies in India. VinSol is based in New Delhi, India. VinSol has been in business since the year 2000. We were working on J2EE and PHP before we read about Rails on some blog about 2 years ago. I started dabbling with Rails and enjoyed developing on the framework so much that now 100% of VinSol’s revenue comes from Rails and Ruby development. We are probably the only Indian company to have written opensouce Rails plugins and Ruby gems. I also blog, though not so regularly.
Matt (Australia)>> I’m a mid-twenties geek, married, two dogs, who volunteers to fight wildfires and grows his own vegetables. On a technical front, I’ve been playing with computers and programming them since I was 6 years old, and have gone through a number of environments and languages. I’ve settled into a comfortable groove doing Ninja Systems Administration and web application development for Solutions First in Sydney, Australia.
Mislav (Croatia)>> I am Mislav Marohnic, formerly known as Sulien to some in the Rails community. I’ve been working with Rails for over a year now and working professionally as a freelancer for at least 6 months. From January this year, I’ve been a member of Prototype Core team so I could contribute to the framework both server- and client-side. I’ve contributed in a number of ways, but perhaps my most used code would be the will_paginate plugin, the development of which was handled over to me by its original starters, errtheblog guys.
Ola (Sweden)>> Hi. My name is Ola Bini and I’m originally from Sweden. I currently live in London and work for ThoughtWorks Studios, the product development division of global consulting firm ThoughtWorks. I am also one of the core developers of JRuby, a project that aims to bring Ruby to the JVM. I’m a programming language geek, and LISP has long been one of my favorite languages. When I found Ruby I was intrigued – the language seemed very easy and simple, but digging down there was untold depths of power. Very much like LISP, so I felt right at home. That was about 4 years ago now.
Pedro (Portugal)>> Well, my name is Pedro Custodio, sometimes referred to as “pecus”, I’ve studied Computer Science in Lisbon and have been involved in internet projects since 96. Whenever I can, I write on a blog, entitled “Centopeia“, covering all aspects of my technology work, from development issues to more overall themes. I’m currently working as software developer in Portugal, last year I helped bring to life SHiFT – Social and Human Ideas For Technology, a conference about the role of technology as an enabler for changes in our daily lives.
Peter (UK)>> I’m Peter Cooper, author of “Beginning Ruby” for Apress and founder of Ruby Inside. I first began to use Ruby in 2004, after being tempted by the then-new Ruby on Rails framework, although I rapidly became more interested in Ruby itself. I’ve used Ruby in both of the businesses I’ve built up over the past couple of years, which I have sold this year, namely FeedDigest.com and Code Snippets. I am also known for running the Ruby Inside weblog, currently the most popular Ruby related weblog with over 11,000 subscribers.
Remco (Netherlands)>> I am Remco van ‘t Veer, a software developer from the Netherlands. I’ve been building web applications for 10 years now. First using Perl CGI and for years using Java. After reading the “Rolling with Ruby on Rails” article by Curt Hibbs, I wandered into the Rails camp leaving years of Java web development behind me. Rails reintroduced me to Ruby (we had a short fling a few years earlier) and I don’t want to look back. Among my contributions to the Ruby and Rails sphere are the EXIFR gem, the dutchify Rails plugin and RubyEnRails.nl.
Sau (Singapore)>> I’m Chang Sau Sheong, a Singapore-based Ruby and Rails programmer and enthusiast. I run a medium-sized (50+) software development team for a French software company, with teams based in France and in Singapore, doing Java EE development for banks and have around 12 years of experience in enterprise application programming though 10 of those years have been with Java and only 2 with Ruby and Rails. I participate frequently in the local Ruby and Rails community, Singapore Ruby Brigade and I run a moderately popular technology-focused blog.
Satish>> According to you, why is Ruby a good language to learn?
Agnieszka (Poland)>> It is a good choice for beginner programmers, as it is devoid of syntax clutter and intuitive to the extreme. It is also considerably well suited for learning object oriented programming. It can be an inspiring change for an experienced programmer, with its fully OO architecture and meta-programming capabilities. It is a powerful tool both for rapid scripting and refined programming. Plus, learning ruby and participating in the ruby community brings one closer to people who care about beautiful coding and widely accepted good programming practices.
David (USA)>> There are two main reasons to learn Ruby: because you find the language wonderful, and because you want to take advantage of Ruby opportunities. A lot of people come to Ruby through an interest in doing Rails development — and that’s great, as long as you take the time to learn Ruby fully. For the most part, in the seven years I’ve been using Ruby, people mostly use it because they find it fun and productive.
Fabio (Brazil)>> Very difficult thing to explain in few words but I will try. In my particular case I come from many years developing in different technologies. Each one was important in its own time. Technologies as dBase, Delphi, Perl, PHP, Java/J2EE, .NET and so on. I’ve heard about Ruby around 2001 but I only got back to it around 2005 when I noticed all the excitement around this new comer called Rails. It certainly surprised me, as a full-time Java developer, to compare both approaches and see that Ruby inspired me as a programmer. It was that breath of fresh air that you get once every decade. I am not keen to just follow ‘conventional wisdom’, I am very fond of experimentation, learning from my own mistakes. And Ruby began like that: an experiment that grew on me. I have a feeling that every long time programmer can feel the same thing. For Ruby’s simplicity, it’s terse syntax, it’s endless flexibility, the feeling that we can do whatever we want, whenever we need. For inexperienced programmers there’s the plus side that the learning curve is very smooth. You can master the basics in a few days and grow alongside the language and it’s companion technologies – as Rails. I’d like to think of Ruby as a kind ‘teacher’. It welcomes you to use it. It shows you hints along the way. You evolve smoothly as you get intimate with it. A far cry from ‘modern’ languages that seems to enjoy frightening new comers. Ruby is mature, it’s always evolving, the community is very caring and actually stay on Ruby because they like it, not because they are obligated to use it because of market pressures. Ruby will surprise you, in a good way, and I think that’s reason enough to at least give it a try.
Jamie (UK)>> Ruby is an easily understandable and powerful scripting language. Learning Ruby is easy because of it’s very English syntax. It’s great as a scripting/automation tool (we use it daily for lots of different tasks on our servers), and of course with Rails/Merb it opens the door into web development too.
Jamis (USA)>> If you’re out to learn an object-oriented language, Ruby is a prime candidate. The fact that everything is an object means that you can do some incredibly powerful introspection and reflection. The simple syntax can be learned quickly, and lets you write libraries with really concise, really straightforward APIs. And because Ruby pulls ideas from many other programming languages, you’ll find that once you’ve learned Ruby, you’re halfway to learning several other languages, too, like Perl and Smalltalk.
Jens (Switzerland)>> Ruby does a few things amazingly right: It’s a small language with a few very well thought out things (the whole OO / introspection / dynamic evaluation / opening of existing classes). However, this power is hidden until you actually need it, and you can start learning Ruby and be very productive from the start. While I’m sure that it’s possible to abuse Ruby and write programs in your “old ways” (like the first Pascal program I wrote that looked like my last Basic Program – one procedure that was several 100 lines long) it gently puts you on the right track. Working with blocks, iterators etc. gives you a feeling that “there is a better way” – and there is, when you are ready for it.
Juanjo (Spain)>> I think Ruby language is the best tool to learn OOP. It is complete object orientation and with its natural syntax it gives you easy access to metaprogramming, dynamic behavior and such other ‘complicated’ features that can be learned fast. Ruby is also a great language to start learning by building simple and small tasks because as you become familiar with the syntax, it is so intuitive that you find yourself productive right away. Nowadays I think there is one more reason to learn Ruby: there are a lot of good job opportunities for a good Ruby/Rails programmer.
Julian (Netherlands)>> It’s a fantastic language to introduce you in the world of real OOP. Not the latched-on variety of OOP that is Python or C++ or PHP or even Java (where you still have primitives), but the real Smalltalk-inspired OOP. Also, it’s essential to work with languages whose runtime can change on the fly – where meta code generation is a workhorse and no preprocessing is taking place. The language teaches you to be succinct but choose “beautiful” instead of “practical”: when you are doing Ruby it’s not that much about the script that will work here and now (whatever the uglyness), but about something you invest your time in to really get right. When I was discovering Ruby after doing PHP for a few years it was a revelation for me – the whole moment went like “oh, that’s how it’s supposed to work all along!” and “yes, this works too”. For instance, it was a total “oomph” moment for me when I discovered that you don’t have direct instance variable assignment from outside of the object. I always wondered why you need that getFoo/setFoo business in the first place! And never forget that you learn to program without the “for”-loop. And besides, Ruby does not create barriers of entry by being too academic. It’s not Smalltalk with it’s “all or nothing” choice that you have to make (how about abandoning the file system to program first?), it’s kind of a middle ground. And the community that Ruby has is really something you can learn from – a bunch of highly educated, passionate people with deep care for style. As a result of “beautiful against practical” the quality of libraries is also something you might want to look at – it’s much higher than any language I’ve used to date, and you can actually learn something by reading these libraries.
Manik (India)>> Ruby is a good language to learn, because it make you very effective and efficient, you can actually do a lot with just a few lines of code. There is no excess baggage that comes with Ruby. Second, it does not restrict the developer in any way, you can reopen existing classes, you can extend core behaviour. And then Meta programming enables you to have dynamic behaviour and also makes the code so readable by writing your own DSL, that is seems as if you are reading a natural language. One had to read through Rails code to appreciate the role that a language like Ruby plays in making what Rails is today. As with any programming language writing code is the best way to learn Ruby.
Matt (Australia)>> It is a language that is relatively simple to grasp while still being amazingly deep and chock full of advanced concepts. You can talk basic Ruby syntax in a few days, and get started writing simple programs, then move onto more advanced concepts as your programming experience and needs expand. For myself, I’ve gotten more a feel for functional programming concepts while programming Ruby, and I think it’ll stand me in good stead as the world moves towards natively parallelisable functional languages like Erlang.
Mislav (Croatia)>> Ruby was designed to be a natural successor of other great scripting languages like Perl and Python. I dug Perl a lot, but it just doesn’t read well. And recently I’ve attended a Python class where, when being presented with advanced hacks in that language, I kept thinking to myself that this is cool, but even better in Ruby. Great OOP support, beautiful syntax, bundled testing framework and a strong community makes Ruby a winner. Unlike Smalltalk and other obscure but powerful languages, Ruby was easy to start with. It is harder to learn in depth than some other popular languages, though; this is because it provides more. The thing I love most about Ruby is that it makes beautiful code. Programming is a lot of things, but all of those things are done by reading and writing source code. I believe in quality by aesthetics of code just as I believe in productivity by working in a pleasurable environment.
Ola (Sweden)>> Ruby as a language is good to learn because it’s easy to learn, but it still has lots and lots of power. It’s an easy language to get started with, but a hard language to master. This makes it rewarding. Many of the features of Ruby will also benefit you when you’re programming in other languages. For Java developers Ruby can show you how Object Orientation should work, as an example. The downside of all this is of course that Ruby can be quite addictive, making it hard to ever return to other languages.
Pedro (Portugal)>> After my studies and all the languages and projects I’ve been involved, I’ve come to realize that ruby mostly covers some aspects that I come to love and find extremely important when we’re talking about programming languages. Ruby is pure object oriented language. After almost 10 years of Perl Programming, which I still do, Ruby came as nice evolution, not only as a learning experience, but also at the professional level. Ruby has a strong and evolving community, which helps to give support and share experience around it.
Peter (UK)>> While any Turing-Complete language can perform the same operations as any other, the important thing is how easy a language makes the task of programming. Ruby’s flexible syntax, dynamic typing, interpreted nature and vibrant community are all major plus points for quick and easy development. While in languages like Java and C++ there’s a lot of “cruft” and verbosity to fight against in your code, Ruby can be extremely slick. Learning Ruby also gives you access to Ruby on Rails, a powerful Web application framework that makes it relatively easy to develop powerful Web applications in remarkably short periods of time.
Remco (Netherlands)>> Ruby has a very low threshold and is extremely powerful at the same time. My first experience with Ruby was when I was asked to analyze some text. At first I thought this was a typical Perl job but a short introduction to Ruby I read some days earlier, got me started right away. The job was done in a couple of hours using a language I never used before! Of course there are more languages which are easy to learn but rarely are they as powerful as Ruby. The flexibility of Ruby allow you to mold the language to something that helps do your job. Rails, rake and rspec are examples of the molding where Ruby is stretched to be a “new” language specialized in solving particular problem. But the best part is, you can do this yourself! It isn’t rocket science! There’s one catch for seasoned programmers, you’ll never want to go back.
Sau (Singapore)>> The best reason I can think of is that Ruby is a fun language to learn and to create software with. As professional and commercial programmers we often lose interest in our job because the technology we use day in day out is boring, is a drag to use and difficult to invent truly good software. Ruby is one (among very select few) such language that can inspire you to new heights of creativity and let your inner programmer create good software without being dragged down by the limitations of syntax descriptiveness.
Satish>> How should one go about learning the Ruby language?
Agnieszka (Poland)>> I started by writing a Ruby on Rails app, using numerous free tutorials, blog posts, the Ruby Forum, the Pickaxe and “Agile Web Development with Rails”. It’s a good route to take for someone who likes to study with working examples and experimentation as opposed to systematic perusal of text books. But I don’t recommend it to newcomers to programming or those who like to understand every bit of their code from the start, since it can be confusing. Follow the Pickaxe or other ruby book instead. As far as googling is concerned, I wouldn’t overrate it. It is perfect for blog posts and tutorials, but not that good for mailing lists, which offer an abundance of up to date, relevant information. I recommend searching the Ruby Forum, and also posting your questions there if you’re lost. Finally, join a local ruby community, or start one!
David (USA)>> There are a number of fine books out there, including the classic “Programming Ruby” as well as “Learn to Program with Ruby” for people who are new to programming. If you’re focusing on Rails and want to learn Ruby thoroughly, my book “Ruby for Rails” is a good bet. In addition to books, keep an eye on the various Ruby blogs and mailing lists and websites. There’s more than I can summarize here, but the main Ruby site is http://www.ruby-lang.org, and you can get a good blog overview at http://www.artima.com/buzz/community.jsp?forum=123. You’ll find a lot of information also at http://www.ruby-doc.org.
Fabio (Brazil)>> Fortunately, in this Internet Age, new comers already have a great bunch of excellent material available. It’s hard to recommend just a few of them. Google is your friend, and I mean it. That’s how I learned it and I am confident that you can start in many ways. If you know English, one great source of material is Ryan Bates’ “Railscasts” video podcast and Geoffrey Grosenbach’s “Peepcode” series. Amazon lists dozens of Ruby and Rails books already available and lots more to come. My all time favorite Ruby book is Hal Fulton’s “The Ruby Way”. A great material not only for starters but also for advanced programmers. If you’re from Brazil, Ruby is not a reality yet, there are still few resources in Portuguese. But we fortunately have a very exciting community going on. I’d refer to the rubyonrails.com.br and rubyonbr.org websites as starting points. You will find a bunch of great people and material that can help you out.
Jamie (UK)>> Well the easiest option is to get a book, I recommend ‘The Ruby Way‘ by Hal Fulton and ‘Beginning Ruby‘ by Peter Cooper.
Jamis (USA)>> It depends on how you learn best, but I learned Ruby by doing. I had a project in mind that I wanted to write, and I wanted to learn Ruby, so I put the two together. I made a lot of mistakes, and I spent a lot of time in the documentation, but by the time I had finished the project I felt like I had a pretty good grasp of the language and was better prepared for my next project. There are lots of books these days that will help you along the path towards Ruby mastery, so you’re already ahead of the game compared to where I was when I learned it (the only English resource for learning Ruby when I started was the Pickaxe, which was fortunately all available online). Another great way to learn the language is to look at the code for existing projects. Pick a library that interests you and pick it apart.
Jens (Switzerland)>> By doing things. Taking small problems, solving them in Ruby. Or by using Rails, by all means. Rails is great, because you have to write very little code to get something done. Writing little in my opinion is a great way to actually learn something. Opposed to say, Java, where setting up the environment takes the better part of a day, you are productive immediately (in Rails or pure Ruby). Then do the simple stuff: Data manipulation, String manipulation, Files. Write a webserver (using Webrick) in 20 lines of code like I did for a customer of mine that needs to distribute several 1000 HTML files from his intranet on CD. Add Ferret (another 5 lines) and you have a working off-line search-able documentation solution. And when you have written something, see if you can bring down the lines of code to half of what you wrote – with Ruby you usually can.
Juanjo (Spain)>> Coding, trying to build simple programs to solve small tasks. A good book on OOP is a good idea. A good starting point is also the Pickaxe combined with some other good Ruby book, I liked ‘Ruby for Rails’ by David Black. I would recommend to join a mailing list or a local Ruby group. And if that is not enough for you internet is always there to check blogs, Ruby sites and Ruby libraries docs.
Julian (Netherlands)>> First of all, serve yourself with a printed Pickaxe book and read it cover to cover. Starting with Rails right away might spoil the experience. Then find a problem domain that you would like to tackle and know relatively well (something that you want to port over from your old libraries perhaps?), and make the solution a packaged gem. Try to change as much as you can when doing this kind of work – if you are porting over try not to do a “line by line translation” but mold stuff anew. Do it test-driven and then finish the job by packaging it as a gem and releasing it, with a Rakefile and all. That way you learn the toolchain from test-driven development to library structure to packaging. I did that with RuTils and it gave a great boost to my understanding of the language. And you will do yourself a good favor by doing it on a POSIX operating system (Linux and OS X are both invited).
Manik (India)>> One can start with the PickAxe book, follow that with the Little Book of Ruby and Why’s Poignant guide to Ruby. Follow online tutorials like the one run by Satish Talim. Reading Rails code is also an excellent way to hone your Ruby skills. There has been an explosion in the number of Ruby and Rails blogs and books during this last one year, so there are a lot of resources available out there for anybody to start exploring the language.
Matt (Australia)>> I picked up Ruby by reading the Pickaxe cover to cover twice, then diving in. However, I’ve done a *lot* of programming in a lot of languages over the years, so I’m probably not the best model for the average Ruby beginner. The important thing in learning *any* programming language is to practice your skills. You will get absolutely *nowhere* if you’re not constantly exercising your new-found (and old-learned) skills, and practicing the art of programming. As far as documentation goes, I recommend Chris Pine’s Learn to Program to the people I teach Ruby, because they’re typically beginners to programming in general, and Chris’ book is pitched at the “learning to program, using Ruby” market rather than the “learning to program Ruby”. I like to raise eyebrows by pointing people at Why’s (poignant) guide to Ruby because reading it is better than a heavy acid trip. If you’re an accomplished programmer, the Pickaxe is a good read, and contains a wealth of reference material as well. Pick up the PDF/hardcopy bundle, too, because while the dead tree is better for reading, annotating, and bookmarking, the PDF is unbeatable when you just want to know something quickly about some keyword — you can’t grep dead trees, after all. Remember, also, that programming isn’t just about learning the syntax of the language, it’s about the craft of software development. For that, the book “The Pragmatic Programmer: From Journeyman to Master” is a must, and learning your editor and revision control system really well pays dividends in the long term too. Don’t stop learning about all aspects of software construction, and you’ll go far.
Mislav (Croatia)>> I’ve started with two great, free books: The “Pickaxe” and “Why’s (Poignant) Guide“. Also a great way to learn the language is using the Rails framework. If you want to purchase a book, I strongly recommend “Ruby for Rails” which goes in depths of the language, explaining stuff you couldn’t find answers for. The recipe for good learning: have a book open by your side, have Ruby API documentation open in the browser (always!) and try to solve specific problems. Start easy. One other important tool for Ruby is “irb” (the Ruby interactive shell), or “script/console” in Rails apps. Other scripting languages have their versions of interactive prompts, but never has there been a more powerful implementation. I “live” in the console all the time and that kind of instant feedback really boosts my productivity. Rails beginners and intermediates don’t want to miss Railscasts, and if you can buy something really cheap but great, there are Peepcode screencasts for learning practically from every field.
Ola (Sweden)>> There is only one good way to learn a new programming language – use it! Do something useful in it. By all means read books and so on, but there is no better way to learn a language than using it. So pick a small to medium sized project and implement it. I would recommend _against_ doing a Rails project to learn Ruby. When using Rails, one of the problems I’ve seen in many new developers is that they have a hard time seeing the distinction between Rails and Ruby. So learn Ruby before learning Rails.
Pedro (Portugal)>> From my personal experience, I would say to start learning the basics first, but even for non-programmers, Ruby is to my opinion a very good starting point. In my case, I’ve bought the book Programming Ruby, and from there was just a matter of time and practice before I grasped the language, I don’t consider myself yet a great Ruby hacker but I’m working on it. The important idea when considering learning is that it should be a phased approach, really learning one tiny aspect at a time, and take enough practice to dominate it before you move on to the next thing.
Peter (UK)>> It depends on your style of learning. Different people seem to have greatly varying levels of success with different methods. One way is just to find a few resource Web sites and “play around” building small programs until you become confident. Another way is to buy a book (and, naturally, I’d recommend my own “Beginning Ruby” for this!) and follow it through. Yet another way is to get the source code for existing applications, study the code, make changes, and pick up the language by osmosis. It really all depends on how you feel you learn best. I would say, however, that it’s essential that as well as learning the technical side of things, you also need to learn how the community around a language works, as you’re going to depend on that community sooner than later.
Remco (Netherlands)>> Get the “Programming Ruby” aka “Pickaxe” and read it. There’s an online version of the first edition but do yourself a favor and buy the paper(!) version of the second edition. Don’t be intimidated by it’s 800+ pages, in this case the fattest book is the best. It reads really easily and will be an indispensable reference. This book needs to live next to your computer. But the only way to learn a language is to use it! Make Ruby your golden hammer and try to use it to solve “all” your computing problems. It is amazingly well suited as a general purpose language. For instance: startup irb (the interactive Ruby shell) for simple tasks like making a small calculation, renaming files, counting the number of items on a website. Last but not least: read a lot of Ruby code. Find out where the gem installer puts all the rb-files and investigate them. The ActiveRecord code for instance is an amazing display of Ruby code, maybe a bit daunting at first but hang in there. There’s lots to learn from other people’s code.
Sau (Singapore)>> I believe everyone has a different way of learning things, including Ruby. For me I learned Ruby from the Pickaxe book and subsequently just through programming, taking apart someone elseâ€™s code (usually from Rubyforge) and just more programming.
Update 3rd Oct.: I finally managed to talk to David Black, author of Ruby for Rails and got his views too. David’s been traveling a lot lately.