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

From Expertiza_Wiki
Jump to navigation Jump to search
No edit summary
 
(13 intermediate revisions by the same user not shown)
Line 1: Line 1:
=Resources for Ruby=
=Resources For Ruby: Table of Contents=


__TOC__
__TOC__


== RubyLearning.com ==
[http://rubylearning.com/satishtalim/tutorial.html]


*Supported by Google Advertisements all over the website.  Opportunity to buy stupid shit.
=Introduction=
*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 ==
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.  [http://en.wikipedia.org/wiki/Ruby_%28programming_language%29 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 [http://en.wikipedia.org/wiki/Integrated_development_environment 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.
[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 ==
=Tutorial Overview=
[http://www.sapphiresteel.com/The-Little-Book-Of-Ruby]


*Downloadable Source code examples
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 othersIn 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.   
*Though the examples aren’t available within the text, you have to look separately which can be a bit cumbersome.
*Beginner to Intermediate Topic Coverage
*Covers from basic method declarations, basic data structures, loops and control statements, as well as class information.   
*Nicely Organized
*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 coveredThe prose is clear and easy to read.


== Ruby’s User Guide ==
[http://www.rubyist.net/~slagell/ruby/ensure.html]
==Core Ruby Programming==


*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.  
'''Author:''' Erwin Aligam<br>
*Give an example of a code listing.
'''Website:''' http://rubylearning.com/satishtalim/tutorial.html<br>
*Available via webpage only
'''Last Update:''' Aug. 1st, 2008<br>
*Beginner to Advanced Coverage
'''Level:''' Beginner – Advanced<br>
*Covers from basic method declarations, basic data structures, loops and control statements, class information, regular expressions, iterators, inheritance, method redifinitions, exceptions and more.
'''Source Code:''' Embedded examples in text.<br>
*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 out. This 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 encountered. Though many of the subtlies are not discussed in a logical fashion and are covered on their own subpages.


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


*Not a convential tutorial, but an essential guide to looking up syntax for Ruby.
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. 
*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
 
*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.
[[Image:MethodDefine.jpg|300px|thumb|Method Definition Example]]
Give an example of something here.
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.
*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.
 
 
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<br>
'''Website:'''  http://www.rubycentral.com/pickaxe<br>
'''Last Update:'''  2001<br>
'''Level:'''  Beginner – Intermediate<br>
'''Source Code:'''  Embedded examples in text.<br>
 
 
===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.
 
 
[[Image:ToStringExample.jpg|300px|thumb|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<br>
'''Website:'''  http://www.sapphiresteel.com/The-Little-Book-Of-Ruby<br>
'''Last Update:'''  June 17th, 2006<br>
'''Level:'''  Beginner - Intermediate<br>
'''Source Code:'''  Available for download online<br>
 
 
===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. 
 
[[Image:SampleAside.jpg|300px|thumb|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<br>
'''Website:'''  http://www.rubyist.net/~slagell/ruby/<br>
'''Last Update:'''  2005<br>
'''Level:'''  Beginner – Advanced<br>
'''Source Code:'''  Embedded into the tutorial.<br>
 
 
===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.
 
 
[[Image:FactorExample.jpg|300px|thumb|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<br>
'''Website:'''  http://www.zenspider.com/Languages/Ruby/QuickRef.html<br>
'''Last Update:''' Sept. 13th, 2009<br>
'''Level:'''  Intermediate – Advanced<br>
'''Source Code:'''  Embedded Syntax Examples<br>
 
 
===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.
 
 
[[Image:ClassDefine.jpg|300px|thumb|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

Latest revision as of 01:45, 29 September 2009

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