CSC/ECE 517 Fall 2009/wiki1b 7 aj: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
No edit summary
Line 1: Line 1:
=Resources for Ruby=
=Resources For Ruby=


__TOC__
=Introduction=


== RubyLearning.com ==
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 language 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 Environments (IDE).  In this page we hope to introduce the reader to a number of Ruby tutorials and give an understanding of the tutorials strengths.
[http://rubylearning.com/satishtalim/tutorial.html]


*Supported by Google Advertisements all over the website.  Opportunity to buy stupid shit.
=Tutorial Overview=
*Beginner to Intermediate level language coverage.
*Structured as an online introductory tutorial.
*Writing style is rough, not a complete reference, but a way to just dive in.
*Contains an informal install guide at the very beginning.
*Includes topic summaries so material can be assimilated by repetition.
*Uses example and completed modules to deliver concepts visually.
*Contains pictures and figures for those more challenging OO constructs.


== Programming Ruby: The Pragmatic Programmer’s Guide ==
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.
[http://www.rubycentral.com/pickaxe/]


*Plenty of inline code examples to follow along with concepts.
*An online book that provides beginner and intermediate conceptual coverage of the Ruby language.
*Contains a guide to install Ruby.
*Advanced feature coverage unavailable online, but through a “second edition” from publisher.
*Specific documentation of Ruby integration with Windows.
*Includes a vast appendix of the built-in Ruby libraries, including examples.
*Broad topic sections that have sometime very long pages, a thorough reference if needed.
*Pink/Red color scheme is friendly to the eyes.
*Detailed to the point where it can be used as instructional guide or class textbook.


== Little Book of Ruby ==
[http://www.sapphiresteel.com/The-Little-Book-Of-Ruby]
==Core Ruby Programming==


*Downloadable Source code examples
Author: Erwin Aligam
*Though the examples aren’t available within the text, you have to look separately which can be a bit cumbersome.
Website: http://rubylearning.com/satishtalim/tutorial.html
*Beginner to Intermediate Topic Coverage
Last Update: Aug. 1st, 2008
*Covers from basic method declarations, basic data structures, loops and control statements, as well as class information.  
Level:  Beginner – Advanced
*Nicely Organized
Source Code: Embedded examples in text.
*Available in PDF format for easy offline viewing
*Gives instructions on installation and configuration of Ruby
*Has aside boxes with more insight into the nature and subtlies of ruby. They help to understand the special characteristics and functionalities of Ruby.
*Example on bottom of page 32.
*Definitions are supplied as they are encountered. This can drastically help the readability of the book and prevent having to look them up in a glossary.
*Contains very few photos for visualizations, but they are used to help clarify more difficult topics.
*Good solid written clarifications for almost all topics covered. The prose is clear and easy to read.


== Ruby’s User Guide ==
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.
[http://www.rubyist.net/~slagell/ruby/ensure.html]


*Plenty of source code examples with outputs available within the text.  With an added advantage of having output from the programs run in the same windows. 
The tutorial is extracted from the book Programming Ruby 1.9: The Pragmatic Programmers’ Guide and follows the structure fairly closelyIt 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.
*Give an example of a code listing.
*Available via webpage only
*Beginner to Advanced Coverage
*Covers from basic method declarations, basic data structures, loops and control statements, class information, regular expressions, iterators, inheritance, method redifinitions, exceptions and more.
*Organization is not ideal in my eyes, there seems to be no logical flow between sections.  The context of the website seems to simply list topics and let the user choose what they wish to see.
*This organization is probably not ideal for first time or inexperienced programmers
*Instructs users on how to use the ruby console window for helping to learn simple syntax and programming constructs.
*The website displays many examples for every topic, though many times the explanation is skimmed down and left to the user to figure outThis may be due that the document was originally translate from Japanese.
*Many subtlies of the Ruby language are covered in this guide and could help new users to avoid problems before they are encounteredThough many of the subtlies are not discussed in a logical fashion and are covered on their own subpages.


== Ruby QuickRef ==
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. Below is an example of the embedded programming sample:
[http://www.zenspider.com/Languages/Ruby/QuickRef.html]


*Not a convential tutorial, but an essential guide to looking up syntax for Ruby.
<Example from page>
*Intermediate to Advance coverage
 
*Covers simple things from basic class defining all the way to advanced topics such as environment variables, exceptions, standard library modules, testing, and debugger controls
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.
*The Quick Reference has little to no explanation for each topic, but contains a good basic example for determining the syntax needed to perform some action.
 
Give an example of something here.
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.
*This is not a very useful guide for most new programming students.  This will be very helpful for students that understand how to program in many languages but get easily confused on syntax for this specific language.
 
==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.
 
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.  Below is a sample example from the tutorial:
 
<example from page>
 
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
 
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.  Below is an example of an aside in the book:
 
<Example from bottom of page 32>
 
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.
 
 
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.  Below is an example of code take from the webpage:
 
<code example>
 
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
 
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.  Below is an example taken from the webpage on syntax for defining a class:
 
<class example>
 
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.

Revision as of 15:06, 21 September 2009

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 language 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 Environments (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.

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. Below is an example of the embedded programming sample:

<Example from page>

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.

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.

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. Below is a sample example from the tutorial:

<example from page>

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

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. Below is an example of an aside in the book:

<Example from bottom of page 32>

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.


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. Below is an example of code take from the webpage:

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

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. Below is an example taken from the webpage on syntax for defining a class:

<class example>

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.