Printing why's (poignant) guide to ruby

I'd like to try ruby on non-programmers teaching them using why's amazing
guide, to see how it works as a beginner's language. I showed some ruby
code to my 45 year old lodger who has never used a computer or seen a
computer program. He said "it looks like English, I thought computer
programming was maths". And he is especially impressed with the cartoon
foxes in Chapter 3, they have got to be the killer feature..

But it would be great to be able to print the guide out as a PDF. Is there a
version with markup available, so it can translated to a PDF to make it
easier to print?

-- Richard

Oh you think Ruby might be suitable for a total beginner?

I have the same problem. My dad wants to learn programming. I
thought maybe Python or even Visual Basic (or one of the KDE
implementations) might be more suitable. He's going to be pretty much
learning on his own, so a suitable book and references must be
available. With something like Visual Basic, he'll probably be able
to get immediate and more gratifying results as well, which should
help keep up the motivation.

I've seen some interesting beginner books for Python that make it a
strong contender as well. One thing that might be a problem at first
is the whitespace issue...

Somehow I'm not sure that Ruby would fit the bill here but I'm
interested in hearing of other's experiences/opinions. I never
considered/read why's guide before but I'll have to take a look now.

Cheers,
Navin.

···

Richard Dale <Richard_Dale@tipitina.demon.co.uk> wrote:

I'd like to try ruby on non-programmers teaching them using why's amazing
guide, to see how it works as a beginner's language. I showed some ruby
code to my 45 year old lodger who has never used a computer or seen a
computer program. He said "it looks like English, I thought computer
programming was maths". And he is especially impressed with the cartoon
foxes in Chapter 3, they have got to be the killer feature..

Richard Dale wrote:

I'd like to try ruby on non-programmers teaching them using why's amazing
guide, to see how it works as a beginner's language. I showed some ruby
code to my 45 year old lodger who has never used a computer or seen a
computer program. He said "it looks like English, I thought computer
programming was maths". And he is especially impressed with the cartoon
foxes in Chapter 3, they have got to be the killer feature..

But it would be great to be able to print the guide out as a PDF. Is there a
version with markup available, so it can translated to a PDF to make it
easier to print?

About printing the guide:
If you can't get a clean printable version, you can always try htmldoc. It's already helped me for those kind of print jobs.

Raph

···

-- Richard

*putting on flame retardant pants*

As a noob to Ruby who was convinced to try it after reading why's
wonderful work, i will say that i find Ruby "harder" than Python. To
call Python a "joke of a language" is pretty harsh by the way. It is
taking me much, much longer to work my way through the PickAxe book
than it did Learning Python. In just a few days of that book, I wrote
fully functional (albeit very tiny) applications that did what I
needed them to do. As well, at the time, the Python community was
helpful to the noob. Of course, Python doesn't have why, so it loses
on that aspect. :slight_smile:

I did go and find a used copy of Learn Ruby in 21 Days and it does
seem to be a bit easier to get through so far, but the Ruby syntax is
a bit more work for me whereas in Python I feel like I'm writing
pseudo code that actually works. But that's just me, your average
newbie (or maybe to you I'm an idiot) , and it of course in no way
reflects on the writings mentioned, nor the language. And I do intend
to get through the Ruby books eventually....

i'm really puzzled by this.
why python? or even worse. vb??!!

Alex

···

On Feb 13, 2005, at 11:08 PM, Navindra Umanee wrote:

Richard Dale <Richard_Dale@tipitina.demon.co.uk> wrote:

I'd like to try ruby on non-programmers teaching them using why's amazing
guide, to see how it works as a beginner's language. I showed some ruby
code to my 45 year old lodger who has never used a computer or seen a
computer program. He said "it looks like English, I thought computer
programming was maths". And he is especially impressed with the cartoon
foxes in Chapter 3, they have got to be the killer feature..

Oh you think Ruby might be suitable for a total beginner?

I have the same problem. My dad wants to learn programming. I
thought maybe Python or even Visual Basic (or one of the KDE
implementations) might be more suitable. He's going to be pretty much
learning on his own, so a suitable book and references must be
available. With something like Visual Basic, he'll probably be able
to get immediate and more gratifying results as well, which should
help keep up the motivation.

I've seen some interesting beginner books for Python that make it a
strong contender as well. One thing that might be a problem at first
is the whitespace issue...

Somehow I'm not sure that Ruby would fit the bill here but I'm
interested in hearing of other's experiences/opinions. I never
considered/read why's guide before but I'll have to take a look now.

Cheers,
Navin.

Hi,

> I'd like to try ruby on non-programmers teaching them using why's amazing
> guide, to see how it works as a beginner's language. I showed some ruby
> code to my 45 year old lodger who has never used a computer or seen a
> computer program. He said "it looks like English, I thought computer
> programming was maths". And he is especially impressed with the cartoon
> foxes in Chapter 3, they have got to be the killer feature..

Oh you think Ruby might be suitable for a total beginner?

I have the same problem. My dad wants to learn programming. I
thought maybe Python or even Visual Basic (or one of the KDE
implementations) might be more suitable. He's going to be pretty much
learning on his own, so a suitable book and references must be
available. With something like Visual Basic, he'll probably be able
to get immediate and more gratifying results as well, which should
help keep up the motivation.

I've seen some interesting beginner books for Python that make it a
strong contender as well. One thing that might be a problem at first
is the whitespace issue...

Somehow I'm not sure that Ruby would fit the bill here but I'm
interested in hearing of other's experiences/opinions. I never
considered/read why's guide before but I'll have to take a look now.

Visual Basic too needs some thinking to put together a program. I
would say that the event-based programming of tools like VB is hard
enough to understand to make them suitable to total beginners, unless
they are kids who are not afraid of trying out things. :slight_smile:

I think that the development of non-gui apps is generally easier to
get a grasp of. The one execution path of such apps should help a
beginner understand what programming is all about (you wish :P).

Anyways, there are some materials on the net that you could use. Of
course that you will need to help him setup everything.

I would go with Ruby. :slight_smile:

Regards,
Joao

···

On Mon, 14 Feb 2005 07:08:53 +0900, Navindra Umanee <navindra@cs.mcgill.ca> wrote:

Richard Dale <Richard_Dale@tipitina.demon.co.uk> wrote:

I think Ruby would be a great language for a 'total' beginner. First -
the syntax and "wording" makes look and feel very natural IMO. Second -
all you need is a text editor and Ruby itself - no confusing steps where
you have to "make", "compile" or "build" anything. Just "run" your
program (this is of course true for all scripting languages). Third -
there is no need to introduce object oriented concepts such as classes
and objects before the user is ready for them. Compare the standard
Hello World example in Ruby with one in java:

Ruby:

(hello.rb)
puts "Hello World"

$> ruby hello.rb

Java:

(Hello.java)
public class Hello {
    public static void main(String args) {
        System.out.println("Hello World");
    }
}

$>javac Hello.java
$>java Hello

The java example prints out the same stuff as the Ruby example, but the
novice user would think: "What is a class?", "What is 'public'?", "What
is 'static'?", "What about that 'args' stuff?", "Where did that
Hello.class file come from, and why do I run 'java Hello' and not 'java
Hello.class'?" etc.

//Anders

···

On Mon, Feb 14, 2005 at 07:08:53AM +0900, Navindra Umanee wrote:

Richard Dale <Richard_Dale@tipitina.demon.co.uk> wrote:
> I'd like to try ruby on non-programmers teaching them using why's amazing
> guide, to see how it works as a beginner's language. I showed some ruby
> code to my 45 year old lodger who has never used a computer or seen a
> computer program. He said "it looks like English, I thought computer
> programming was maths". And he is especially impressed with the cartoon
> foxes in Chapter 3, they have got to be the killer feature..

Oh you think Ruby might be suitable for a total beginner?

--
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. Anders Engström aengstrom@gnejs.net
. http://www.gnejs.net PGP-Key: ED010E7F
. [Your mind is like an umbrella. It doesn't work unless you open it.]

Raphael Bauduin wrote:

Richard Dale wrote:

But it would be great to be able to print the guide out as a PDF. Is there a
version with markup available, so it can translated to a PDF to make it
easier to print?

http://www.htmldoc.org/

Nice. Well, it's not a great conversion. And I turned off the Table of Contents, as it was paginating the sidebars. At any rate, the sidebars are flowed into the main text.

But, hey, it's a PDF:

<http://rubyforge.org/frs/download.php/3073/why.s.poignant.guide-0.5.pdf&gt;

_why

Thanks Marcus, I have to admit some of the comments are making me lose
my cool here. The profanity, and accusations of trolling (with
simultaneous attacks on Python) as well as my unfortunate lack of
sleep are all adding up.

Of course there are some very good points in this thread too. The
matter of teaching programming to a complete newbie is no trivial
matter either way.

I honestly think things like blocks are not a trivial matter.

Why:

5.times { print "hello " }

instead of:

5 times print hello

There is so much going on in '5.times { print "hello" }'. The more
experienced may not give a second thought, but to the enquiring newbie
it's a different matter.

You've expressed what I've been trying to say all along so I think
I'll leave it at that.

Later,
Navin.

···

Marcus Sharp <brothermarcus@gmail.com> wrote:

As a noob to Ruby who was convinced to try it after reading why's
wonderful work, i will say that i find Ruby "harder" than Python. To
call Python a "joke of a language" is pretty harsh by the way. It is

I did go and find a used copy of Learn Ruby in 21 Days and it does
seem to be a bit easier to get through so far, but the Ruby syntax is
a bit more work for me whereas in Python I feel like I'm writing
pseudo code that actually works. But that's just me, your average
newbie (or maybe to you I'm an idiot) , and it of course in no way

Hi,

I did go and find a used copy of Learn Ruby in 21 Days and it does
seem to be a bit easier to get through so far, but the Ruby syntax is
a bit more work for me whereas in Python I feel like I'm writing
pseudo code that actually works. But that's just me, your average
newbie (or maybe to you I'm an idiot) , and it of course in no way
reflects on the writings mentioned, nor the language. And I do intend
to get through the Ruby books eventually....

The Pickaxe book has a different style of presenting the language. It
certainly is a different style of book for a different style of
language. If it had many "beginnings and ends", it would be more
newbie-friendly:
http://headrush.typepad.com/creating_passionate_users/2005/01/learning_doesnt.html

I haven't taken a look at the Pickaxe 2, yet.

So I wouldn't feel bad after trying out Ruby for the first time, even
accompanied by some books. Just let the "old way of thinking" about
programming languages go.

Think about this: not all the Python interpreters, documentations and
libraries will help you become a true developer anymore than what's
available for Ruby, and vice-versa.

I'm not leaving Ruby for Python anytime soon. :slight_smile:

Cheers,
Joao

*putting on flame retardant pants*

As a noob to Ruby who was convinced to try it after reading why's
wonderful work, i will say that i find Ruby "harder" than Python. To
call Python a "joke of a language" is pretty harsh by the way.

It is not merely harsh; it is incorrect. Most people here prefer Ruby
to Python, but don't simply dismiss Python either.

It is
taking me much, much longer to work my way through the PickAxe book
than it did Learning Python. In just a few days of that book, I wrote
fully functional (albeit very tiny) applications that did what I
needed them to do. As well, at the time, the Python community was
helpful to the noob. Of course, Python doesn't have why, so it loses
on that aspect. :slight_smile:

The Pickaxe is not the best Ruby intro for all people. It is a good
work, but (as with all such books) it makes certain assumptions about
prior experience and expectations that just can't be true for
everyone.

I did go and find a used copy of Learn Ruby in 21 Days and it does
seem to be a bit easier to get through so far, but the Ruby syntax is
a bit more work for me whereas in Python I feel like I'm writing
pseudo code that actually works. But that's just me, your average
newbie (or maybe to you I'm an idiot) , and it of course in no way
reflects on the writings mentioned, nor the language. And I do intend
to get through the Ruby books eventually....

If you aren't already familiar with the site, go poke around
http://www.ruby-doc.org, in particular
Ruby Documentation Bundle
and
Ruby-Doc.org: Documenting the Ruby Language

James

···

On Tue, 15 Feb 2005 02:39:08 +0900, Marcus Sharp <brothermarcus@gmail.com> wrote:

*putting on flame retardant pants*

:wink: hope they are comfortable :slight_smile:

As a noob to Ruby who was convinced to try it after reading why's
wonderful work, i will say that i find Ruby "harder" than Python. To
call Python a "joke of a language" is pretty harsh by the way. It is
taking me much, much longer to work my way through the PickAxe book
than it did Learning Python. In just a few days of that book, I wrote
fully functional (albeit very tiny) applications that did what I
needed them to do. As well, at the time, the Python community was
helpful to the noob. Of course, Python doesn't have why, so it loses
on that aspect. :slight_smile:

sorry for the harshness, it was aimed in a as good
as flame/troll like manner at the replied to poster...

i'm just bitter as the last time i had to suffer
in python's hands its indentation "magic" wasted me
most of an afternoon. i switched to ruby that same day
almost 4 years ago now, converted all my python code
to ruby code in the following few weeks, and settled
down in my new home.

maybe i should relax up on python.
i just hate that its brought up in ruby-talk.
wish people would stop that.

Alex

···

On Feb 14, 2005, at 6:39 PM, Marcus Sharp wrote:

Alexander Kellett, 13/2/2005 19:17:

i'm really puzzled by this.
why python? or even worse. vb??!!

I'd like to try ruby on non-programmers teaching them using why's amazing
guide, to see how it works as a beginner's language. I showed some ruby
code to my 45 year old lodger who has never used a computer or seen a
computer program. He said "it looks like English, I thought computer
programming was maths". And he is especially impressed with the cartoon
foxes in Chapter 3, they have got to be the killer feature..

Oh you think Ruby might be suitable for a total beginner?

I have the same problem. My dad wants to learn programming. I
thought maybe Python or even Visual Basic (or one of the KDE
implementations) might be more suitable. He's going to be pretty much
learning on his own, so a suitable book and references must be
available. With something like Visual Basic, he'll probably be able
to get immediate and more gratifying results as well, which should
help keep up the motivation.

I've seen some interesting beginner books for Python that make it a
strong contender as well. One thing that might be a problem at first
is the whitespace issue...

Somehow I'm not sure that Ruby would fit the bill here but I'm
interested in hearing of other's experiences/opinions. I never
considered/read why's guide before but I'll have to take a look now.

I think Ruby easier to learn than Python for a beginer.
Python may be easier for someone migrating from C.
Both languages are quite easy for the beginners, and people who have never programed can do interesting things in the first or second day.

···

On Feb 13, 2005, at 11:08 PM, Navindra Umanee wrote:

Richard Dale <Richard_Dale@tipitina.demon.co.uk> wrote:

The Ruby user would think "Who puts?" :slight_smile:

Michael

···

On Mon, 14 Feb 2005 07:42:57 +0900, Anders Engström <aengstrom@gnejs.net> wrote:

On Mon, Feb 14, 2005 at 07:08:53AM +0900, Navindra Umanee wrote:
> Richard Dale <Richard_Dale@tipitina.demon.co.uk> wrote:
> > I'd like to try ruby on non-programmers teaching them using why's amazing
> > guide, to see how it works as a beginner's language. I showed some ruby
> > code to my 45 year old lodger who has never used a computer or seen a
> > computer program. He said "it looks like English, I thought computer
> > programming was maths". And he is especially impressed with the cartoon
> > foxes in Chapter 3, they have got to be the killer feature..
>
> Oh you think Ruby might be suitable for a total beginner?
>

I think Ruby would be a great language for a 'total' beginner. First -
the syntax and "wording" makes look and feel very natural IMO. Second -
all you need is a text editor and Ruby itself - no confusing steps where
you have to "make", "compile" or "build" anything. Just "run" your
program (this is of course true for all scripting languages). Third -
there is no need to introduce object oriented concepts such as classes
and objects before the user is ready for them. Compare the standard
Hello World example in Ruby with one in java:

Ruby:

(hello.rb)
puts "Hello World"

$> ruby hello.rb

Java:

(Hello.java)
public class Hello {
    public static void main(String args) {
        System.out.println("Hello World");
    }
}

$>javac Hello.java
$>java Hello

The java example prints out the same stuff as the Ruby example, but the
novice user would think: "What is a class?", "What is 'public'?", "What
is 'static'?", "What about that 'args' stuff?", "Where did that
Hello.class file come from, and why do I run 'java Hello' and not 'java
Hello.class'?" etc.

//Anders
--
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. Anders Engström aengstrom@gnejs.net
. http://www.gnejs.net PGP-Key: ED010E7F
. [Your mind is like an umbrella. It doesn't work unless you open it.]

How is a total beginner going to learn Ruby? By reading Pickaxe? I'm
not talking about a CS student here. My dad lives half-way around the
world from me.

Besides, Python is a more restricted and syntactically uniform
language. Ruby is more flexible and expressive, but IMHO to really
understand the code you have to know more CS concepts and have a
deeper understanding of the syntax than some people like to admit.

Even though in Ruby you can abuse the syntax or treat it glibly --
which makes it look like a nice thing for experienced programmers -- I
think it is better to understand what you are doing first. Python
forces you to understand these issues.

I prefer Ruby but I think Python will be easier for a beginner to
grasp at the beginning, and it has less hurdles as well
documentation/book-wise -- I even saw one of the beginner books
describe how to implement a neat graphical game in a few steps.

And yeah, VB has wizards and stuff on top of plenty of documentation.
Like I said, quicker gratification can be a good thing. Someone used
to fancy windows and GUI stuff probably isn't going to be happy stuck
at the command-line level. Joao makes a good point, of course.

Cheers,
Navin.

···

Alexander Kellett <ruby-lists@lypanov.net> wrote:

i'm really puzzled by this.
why python? or even worse. vb??!!

I agree that Ruby would make a good "first" language, but I have to admit that _why's book probably won't be the best guide for your Dad. It's a great book, don't get me wrong, but it's way too, ah, avant-guarde for Dad-type people. Unless your dad is an IPod-dancing Halo II champion that likes to party all night, that is. :slight_smile:

···

On 2005-02-13 17:17:44 -0500, Alexander Kellett <ruby-lists@lypanov.net> said:

i'm really puzzled by this.
why python? or even worse. vb??!!

Alex

On Feb 13, 2005, at 11:08 PM, Navindra Umanee wrote:

Richard Dale <Richard_Dale@tipitina.demon.co.uk> wrote:

I'd like to try ruby on non-programmers teaching them using why's amazing
guide, to see how it works as a beginner's language. I showed some ruby
code to my 45 year old lodger who has never used a computer or seen a
computer program. He said "it looks like English, I thought computer
programming was maths". And he is especially impressed with the cartoon
foxes in Chapter 3, they have got to be the killer feature..

Oh you think Ruby might be suitable for a total beginner?

I have the same problem. My dad wants to learn programming. I
thought maybe Python or even Visual Basic (or one of the KDE
implementations) might be more suitable. He's going to be pretty much
learning on his own, so a suitable book and references must be
available. With something like Visual Basic, he'll probably be able
to get immediate and more gratifying results as well, which should
help keep up the motivation.

Alexander Kellett wrote:

i'm really puzzled by this.
why python? or even worse. vb??!!

Why do you think they are easier to learn than ruby? I'd just like to try
teaching non-programmers programming and find out what it is they don't
know. Or if they don't know much can they get started and learn
incremently?

From Alan Kay's recent interview:

http://acmqueue.org/modules.php?name=Content&pa=showpage&pid=273

"Basically what happened is this vehicle became more and more a programmer’s
vehicle and less and less a children’s vehicle—the version that got put
out, Smalltalk ’80, I don’t think it was ever programmed by a child. I
don’t think it could have been programmed by a child because it had lost
some of its amenities, even as it gained pragmatic power."

I don't think Why's is the first in the line of 'cartoon computer science
books'. I have 'Think about [TLC] Logo - A Graphic Look at Computing with
Ideas' by John R. Allen, Ruth E. Davis and John F. Johnson. It has great
cartoons, and is written by serious people (I believe why is very serious
too - that's why he's so funny).

People don't seem to want teach computer programming to children anymore (or
45 year old beginners)..

-- Richard

I prefer ruby, but am not convinced it is "better for learning" than python. Python and ruby are so similar linguistically that until you get to the nuances (preferring internal iteration, passing ~functions around is as common as in lisp, etc) they may as well be the same (to a newcomer to programming).

If you have trouble explaining blocks, though, wait until you go for list comprehensions!

Seriously, Python, Ruby, C, Java, Smalltalk, etc are all *great* languages. The *best* learn-to-program language/environment is probably Squeak, it is pretty much designed just for that, and oh yeah, is a pretty good Smalltalk implementation too :wink:

-Brian

···

On Feb 14, 2005, at 1:10 PM, James G. Britt wrote:

As a noob to Ruby who was convinced to try it after reading why's
wonderful work, i will say that i find Ruby "harder" than Python. To
call Python a "joke of a language" is pretty harsh by the way.

why the lucky stiff wrote:

Raphael Bauduin wrote:

Richard Dale wrote:

But it would be great to be able to print the guide out as a PDF. Is
there a
version with markup available, so it can translated to a PDF to make it
easier to print?

http://www.htmldoc.org/

Nice. Well, it's not a great conversion. And I turned off the Table of
Contents, as it was paginating the sidebars. At any rate, the sidebars
are flowed into the main text.

But, hey, it's a PDF:

<http://rubyforge.org/frs/download.php/3073/why.s.poignant.guide-0.5.pdf&gt;

_why

Thanks _why - just what I wanted! I look forward to trying it out teaching a
beginner programmer. I've downloaded it and it looks great - I've just
started my friend with looking at 'Thinking About [TLC] Logo' (from 1984)
as an intro anyway. Hmm, he says: 'they went on too many christian summer
camps' his first comment - I guess hackers all had beards in those days..

-- Richard

> As a noob to Ruby who was convinced to try it after reading why's
> wonderful work, i will say that i find Ruby "harder" than Python. To
> call Python a "joke of a language" is pretty harsh by the way. It is
>
> I did go and find a used copy of Learn Ruby in 21 Days and it does
> seem to be a bit easier to get through so far, but the Ruby syntax is
> a bit more work for me whereas in Python I feel like I'm writing
> pseudo code that actually works. But that's just me, your average
> newbie (or maybe to you I'm an idiot) , and it of course in no way

Thanks Marcus, I have to admit some of the comments are making me lose
my cool here. The profanity, and accusations of trolling (with
simultaneous attacks on Python) as well as my unfortunate lack of
sleep are all adding up.

Please take into account that most folks here do not look down on
Python on Python developers. We just don't care for it, finding Ruby
to be a better personal choice. Though some would express their
tastes using stronger terms ...

Of course there are some very good points in this thread too. The
matter of teaching programming to a complete newbie is no trivial
matter either way.

I honestly think things like blocks are not a trivial matter.

Why:

5.times { print "hello " }

instead of:

5 times print hello

There is so much going on in '5.times { print "hello" }'. The more
experienced may not give a second thought, but to the enquiring newbie
it's a different matter.

Sure, but this is a poor example for teaching the use of a block.

It may make more sense to introduce newbies to blocks after showing
the creation of many methods that are essentially the same, save for
some bit of loop logic. Then explain that a block can be passed in
and used in place of that loop logic, eliminating the code redundancy.

It can be hard to devise good examples and demo scenarios. Most books
and tutorials give rather trivial examples, which makes it hard to get
a sense of why one would go to much trouble to learn something. Yet
if the examples are too hard, the user gets distracted by all the
expository scaffolding needed to set up the scenario.

Examples should both demonstrate some bit of syntax as well as provide
a reasonable motivation for learning this new syntax. I tend to
believe that when people see how they can abstract common behavior
among multiple methods and simplify their code using blocks, they get
interested enough to make the extra effort to really understand them.

James

···

On Tue, 15 Feb 2005 03:07:18 +0900, Navindra Umanee <navindra@cs.mcgill.ca> wrote:

Marcus Sharp <brothermarcus@gmail.com> wrote: