CSC/ECE 517 Fall 2009/wiki1b 7 aj
Resources For Ruby
Introduction
Learning a new program language can sometimes prove to be very difficult especially if the language has new programming concepts that the user has never previously learned. Such an example would be moving from C to C++ and the introduction of classes and all they have to offer. Ruby is a language that has a number of special features not commonly found in most programming languages and sometimes can be difficult to learn, especially from Integrated Development Environment (IDE). In this page we hope to introduce the reader to a number of Ruby tutorials and give an understanding of the tutorials strengths.
Tutorial Overview
Every tutorial has one common goal and that is to supply some form of informative material about the Ruby programming language, but some can be better than others. In our descriptions we try to remain objective about the contents of each tutorial and try to introduce personal opinions only when clarifications may be needed.
Core Ruby Programming
Author: Erwin Aligam
Website: http://rubylearning.com/satishtalim/tutorial.html
Last Update: Aug. 1st, 2008
Level: Beginner – Advanced
Source Code: Embedded examples in text.
Overview
This is a tutorial available only online as a webpage. It is fairly simple to navigate but the website has a number of ads on the page and can sometimes make the usage a bit cumbersome.
The tutorial is extracted from the book Programming Ruby 1.9: The Pragmatic Programmers’ Guide and follows the structure fairly closely. It has been fully updated to the newest version of Ruby as covered in the book and contains an informal install guide for Ruby making it easier for newer users. The tutorial covers a variety of introductory topics and continues to more advanced topics such as Inheritance, Overloading Methods, Exceptions, Duck Typing, and more.
The tutorial contains embedded examples which are very simple and straight forward. These aid in user learning, but the examples typically do not display the output or results. This can be confusing and requires the user to run the code for themselves to gain an understanding of the code and what it does.
A major advantage of the tutorial is that it displays embedded links to Ruby’s API pages for the user. This can supplement the users knowledge of method availability in the standard API. The author uses pictures and figures for more challenging object-oriented constructs as well as in depth descriptions that explain concepts efficiently. Also the author supplies summaries at the end of each section which allow the material to be assimilated by repetition.
Advantages
Disadvantage
Example
To the right is an example of the embedded programming sample.
Conclusion
Over all the tutorial is very versatile and has the added advantage that it was produced from a renown book in the Ruby programming language. It covers a large number of topics and has been fully updated to the latest version of Ruby.
Programming Ruby: The Pragmatic Programmers’ Guide
Author: Addison Longman
Website: http://www.rubycentral.com/pickaxe
Last Update: 2001
Level: Beginner – Intermediate
Source Code: Embedded examples in text.
Overview
This tutorial is available only online as a webpage. Each item in the table of contents covers a large section of material and sometimes makes it a bit difficult to find a specific topic of choice.
The tutorial is extracted from the book Programming Ruby: The Pragmatic Programmers’ Guide. This webpage is based on the first edition of the book which covers the older version of Ruby 1.8. The tutorial covers a wide range of introductory and advanced topics but also includes more unique topics such as Ruby TK, Threads, Ruby’s Standard Library, Network Libraries, and more.
The layout of the tutorial is easy to follow and is logically ordered. The tutorial contains an extensive number of example code embedded in it and has the advantage that the output of each is typically shown. This makes it easier for the user to understand what to expect from the code without having to run it themselves. Each example is also paired with an adequate description and clarification of the subject. No photos are typically used to portray concepts but instead the use of the examples provide the user with the understanding needed.
Advantages
Disadvantage
Example
To the right is a sample example from the tutorial.
Conclusion
Overall the page is a good tutorial on Ruby 1.8 but can be a bit mundane at times. The examples are straight forward and easy to understand but can sometimes feel like reading straight from the Ruby API. The main advantage is the amount of topics covered which are very unique compared to other tutorials.
Little Book of Ruby
Author: Huw Collingbourne
Website: http://www.sapphiresteel.com/The-Little-Book-Of-Ruby
Last Update: June 17th, 2006
Level: Beginner - Intermediate
Source Code: Available for download online
Overview
The Little Book of Ruby tutorial is a PDF (link) available free online for download. The added convenience of the tutorial being in PDF format makes it easily viewable when not connected to the internet.
This tutorial is a very structured guide to learning ruby and has great flow between topics. It is geared towards individuals who are just beginning to learn programming and may not have a solid understanding of basic programming constructs. The material covers more basic topics involving basic method declarations, basic data structures, loops and control statements, as well as an introduction to classes and their usage.
The author injects a number of aside boxes that introduce the user into the subtleties of the language. This can help the user understand the major advantages of this language over others.
Advantages
Disadvantage
Example
To the right is an example of an aside in the book.
Conclusion
The author does no use a large number of photos but does use them for more difficult to visualize concepts. The rest of the material has very solidly written clarifications for the topics to help prevent the need for visualization. The author also includes vocabulary definitions making it easier for novice users to understand the material. Overall this is a great tutorial for beginner to intermediate programmers to learn ruby.
Ruby’s User Guide
Author: Mark Slagell
Website: http://www.rubyist.net/~slagell/ruby/
Last Update: 2005
Level: Beginner – Advanced
Source Code: Embedded into the tutorial.
Overview
The Ruby’s User Guide is available online as a webpage and is not available for download. But the general layout of the website makes it very easy to navigate and utilize.
The tutorial itself is not a structured as majority of the others covered in this Wikipedia, but is more of a subject based topic coverage. The user has the option to jump around easily and learn specific topics that they may be interested in. This is great for more advanced users that wish to learn specific things, but can hinder learning for newer programmers since it is not as structured. The material covers from basic to advanced topics involving basic method declarations, basic data structures, loops and control statements, classes, regular expressions, iterators, inheritance, method redefinitions, exceptions and more.
The author uses a number of examples within the tutorial to help the users understand topics and some of the subtleties of the language. These can be invaluable to learning ruby but the drawback is that explanations are many times not adequate and can leave the user to interpret the results for themselves. This may be due to the fact that the document was originally translated from Japanese.
Advantages
Disadvantage
Example
To the right is an example of code take from the webpage.
Conclusion
The entire tutorial seems to be more useful to more advanced users that know how to program already. The main advantages of the guide is that it covers more advanced topics not normally found in tutorials and covers many unique attributes to the Ruby programming language.
Ruby Quick Reference
Author: Ryan Davis
Website: http://www.zenspider.com/Languages/Ruby/QuickRef.html
Last Update: Sept. 13th, 2009
Level: Intermediate – Advanced
Source Code: Embedded Syntax Examples
Overview
The Ruby Quick Reference is available only online but can easily be saved as a single webpage for offline viewing. The website is a bit more difficult to navigate since the entire listing is on a single page.
This is not a conventional tutorial as it has little or no descriptions on each of the topics. The purpose of this tutorial is to supply the user with the syntax of the Ruby language. This reference is designed for intermediate to advanced users that know how the language works but are unfamiliar with the syntax. It covers simple things from basic class definitions all the way to more advanced topics such as environment variables, exceptions, standard library modules, testing, and debugger controls.
Advantages
Disadvantage
Example
To the right is an example taken from the webpage on syntax for defining a class.
Conclusion
Overall this is not a tutorial at all but more of a guide on syntax in the Ruby Language. While this is not a tutorial it is listed here because it is a valuable learning tool as it gives the users a quick way to look up programming examples. This is ideal for users that have already used one of the previous tutorials and understand the Ruby language.
Conclusion
All of the listed examples have a number of advantages over the others, the key to choosing one is based on the users specific needs. One of the major differences between tutorials usually relates to the type of examples and how they are incorporated into learning. The other main difference is the range of topics covered. While majority of the tutorials here cover the same introductory and intermediate topics, they differ greatly on the more advanced topics. Pay close attention to the advanced topics that may be of use for you when choosing a tutorial.
The last thing to keep in mind is the last time the tutorials have been updated. A few of the tutorials only cover Ruby 1.8 which has subtle differences from the newest version of Ruby. While this may not be a problem for most users it is something to keep in mind while choosing a tutorial.
Links
[1] http://www.rubycentral.com/pickaxe/
[2] http://rubylearning.com/satishtalim/tutorial.html
[3] http://www.sapphiresteel.com/The-Little-Book-Of-Ruby