CSC/ECE 517 Fall 2009/wiki1b 7 aj

From Expertiza_Wiki
Jump to navigation Jump to search

Resources For Ruby: Table of Contents


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.


Method Definition Example

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 user's 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.


Example

The picture to the right is an example of the embedded programming sample and displays one of the big advantages to this tutorial. As shown in the picture a full listing of the sample code is given along with the corresponding output. This can drastically help the student by not making them infer what will result. Also this can save the user time since they will not be required to run the code themselves if they find themselves confused on the output.


Summary

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.


To String Definition Example

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.


Example

The picture to the right is a sample example from the tutorial. As shown in the picture there is only a partial code listing which requires you to make inferences on your own. Sometimes it is easier to learn by repetition of code. If the user is able to see the entire code they can reaffirm previous concepts. This could be an advantage for some readers as it will reduce the clutter and only show what is important to the topic of discussion. Regardless it does have the added advantage that it displays the output from the topic of conversation.


Summary

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.

Sample Aside From the Tutorial

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. The example below displays exactly how important these subtleties can be.

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.


Example

The picture to the right is an example of an aside in the book. This is an important syntax example for most students, as most are used to the concept that white space is typically ignored. In this specific example the user gets great insight to the requirements of creating accessor methods for variables and the proper syntax required by Ruby.


Summary

Over all this is a great tutorial especially for newer programmers. It does its best job at clarifying subtleties for these newer programmers to help them avoid confusion during their first few programs. It other major feature is that is has a separate download to acquire all the coding examples. This is the only tutorial covered that has this feature.

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.


Sample Factor Code

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.


Example

The picture to the right is an example of code take from the webpage and it displays a simple recursive algorithm for computing the factorial of a number. What isn't displayed is what follows that code listing. Each line from the program is broken down and explained one by one. This can make it very simple for new users to understand exactly what each line is doing.


Summary

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.


Class Definition Example

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.


Example

The picture to the right is an example taken from the webpage on syntax for defining a class. There is a lot of information displayed in 6 short lines of code. The example shows how a typical class is declared along with how inheritance is accomplished. The second three lines tell the user how to create an instance method that belongs to an single instance of a class.


Summary

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

[4] http://www.rubyist.net/~slagell/ruby/index.html

[5] http://www.zenspider.com/Languages/Ruby/QuickRef.html