Learn how to program

Hi!, i want to learn how to program.Is ruby a good option?. Thanks.

Wyatt G. wrote:

On Jan 30, 4:30 pm, “[email protected] [email protected]
[email protected] wrote:

Hi!, i want to learn how to program.Is ruby a good option?. Thanks.

Posted viahttp://www.ruby-forum.com/.

Absolutely! Based on my experience as both a programmer and a
teacher, I would recommend Ruby as a first language. (I would not
recommend C++ or Scheme.) A good Ruby book for a first-time
programmer is Learn to Program by Chris P.:
Learn to Program, by Chris Pine

Thanks!!!.

On Jan 30, 4:30 pm, “[email protected] [email protected]
[email protected] wrote:

Hi!, i want to learn how to program.Is ruby a good option?. Thanks.

Posted viahttp://www.ruby-forum.com/.

Absolutely! Based on my experience as both a programmer and a
teacher, I would recommend Ruby as a first language. (I would not
recommend C++ or Scheme.) A good Ruby book for a first-time
programmer is Learn to Program by Chris P.:
http://pine.fm/LearnToProgram/

[email protected] [email protected] wrote:

Hi!, i want to learn how to program.Is ruby a good option?. Thanks.

I would not choose it as a first language. I recommend python.

Wyatt G. wrote:

Absolutely! Based on my experience as both a programmer and a
teacher, I would recommend Ruby as a first language. (I would not
recommend C++ or Scheme.) A good Ruby book for a first-time
programmer is Learn to Program by Chris P.: Learn to Program, by Chris Pine

You’re right about C++ … I don’t think it should be anyone’s first
language. In fact, I don’t think it should be used at all. :slight_smile:

But I think Scheme is a good first language as long as you have the
support tools, like “Dr Scheme”. Raw Scheme is … well … too raw. :slight_smile:

But I think Scheme is a good first language as long as you have the
support tools, like “Dr Scheme”. Raw Scheme is … well … too raw. :slight_smile:

Also, DrScheme was created with an educational intention in mind.
MzScheme is really powerful and the JIT can be quite fast.

@OP
But with respect to learning how to program: I’d rather go to the
local library or the next bookstore and check out a book (bundled
paper) that you like and that seems appropriate (if there is no
teacher or friend recommending one) and choose whatever language is
used in that book (with the exception of anything Basic-like or Perl
(if such a book exists); C and C++ could be less than optimal too).

On Jan 30, 4:30 pm, “[email protected] [email protected]
[email protected] wrote:

Hi!, i want to learn how to program.Is ruby a good option?. Thanks.

Posted viahttp://www.ruby-forum.com/.

I don’t think I would recommend a dynamically typed language like
Ruby. Maybe something like C#, Java, or VB.NET as a first language.

On Thu, Jan 31, 2008 at 8:09 PM, longint [email protected]
wrote:

I don’t think I would recommend a dynamically typed language like
Ruby. Maybe something like C#, Java, or VB.NET as a first language.

Yeah, start with Java or C#, you will be in heaven when you get back to
Ruby :wink:
Fun aside, I think Ruby is a good language to get started. You don’t
have to create too much boilerplate code, you can solve a simple
problem simply and the community is awesome. Nearly all questions on
the list here are answered quite quickly. There’s no “Eww, a n00b!”

On Thu, Jan 31, 2008 at 11:55 PM, Thomas W.
[email protected] wrote:

Yeah, start with Java or C#, you will be in heaven when you get back to Ruby :wink:
Fun aside, I think Ruby is a good language to get started. You don’t
have to create too much boilerplate code, you can solve a simple
problem simply and the community is awesome. Nearly all questions on
the list here are answered quite quickly. There’s no “Eww, a n00b!”

Another great side of Ruby is that it embraces different programming
paradigms. You can start out with procedural programming,enjoy the
power of object-oriented techniques and you can use functional ideas
to solve your problems.
_why’s Poignat Guide showed me how much fun it is: it’s a comic, it’s
a novel, it’s a book to teach you programming, it’s a lot of fun!
http://poignantguide.net/ruby/

IMHO,

Java, C# and VB.NET are horrible teaching languages. You’re neither
close
enough to the machine to learn much about how a computer actually works,
nor
at a high enough level to learn a lot of the fancy, abstract ways of
thinking that seem to help make good programmers.

Ruby and Python are pretty decent choices, I think.

MBL

On Thu, Jan 31, 2008 at 06:36:42PM +0900, 7stud – wrote:

[email protected] [email protected] wrote:

Hi!, i want to learn how to program.Is ruby a good option?. Thanks.

I would not choose it as a first language. I recommend python.

I disagree.

On Thu, Jan 31, 2008 at 07:25:00PM +0900, tho_mica_l wrote:

teacher or friend recommending one) and choose whatever language is
used in that book (with the exception of anything Basic-like or Perl
(if such a book exists); C and C++ could be less than optimal too).

Is this another example of the common (mis)conception that Perl is a
“write-only” language? It’s not, and in fact it’s an excellent language
for learning to program. It just may not be the best for learning OOP,
in particular.

I disagree. Languages like that make you focus more on what the deuce
the syntax is making you do rather than the algorithms and structures
beneath it. Something like Python or Ruby is perfect for learning the
important parts of programming that you can carry with you elsewhere.

(Note: I learned to program using Visual Basic and then moved to C#.
I know that approach works but I think I would’ve been much happier if
I’d started with something that had a cleaner syntax)

–Jeremy

On Jan 31, 2008 2:09 PM, longint [email protected] wrote:

On Jan 30, 4:30 pm, “[email protected] [email protected]
[email protected] wrote:

Hi!, i want to learn how to program.Is ruby a good option?. Thanks.

Posted viahttp://www.ruby-forum.com/.

I don’t think I would recommend a dynamically typed language like
Ruby. Maybe something like C#, Java, or VB.NET as a first language.


http://www.jeremymcanally.com/

My books:
Ruby in Practice

My free Ruby e-book

My blogs:

http://www.rubyinpractice.com/

On Feb 1, 2008 7:09 AM, Chad P. [email protected] wrote:

Is this another example of the common (mis)conception that Perl is a
“write-only” language? It’s not, and in fact it’s an excellent language
for learning to program. It just may not be the best for learning OOP,
in particular.

Too arcane syntax, too many special cases, bad handling of error
conditions, no built in parameter passing, etc.

It isn’t that’s impossible to read Perl - I find Perl reasonably easy
to read - but there’s a lot of gotchas in it, and I wouldn’t want them
on a beginner. There are, to my mind, only four things that might
have redemptive value in using Perl as beginner’s language:

  • Sigils might be useful to make the beginner remember the differences
    between types
  • The “softness” of string/number typing in perl (they’re
    automatically converted to each other depending on context) might be
    easier for a beginner to start with ("It’s a number already, why do I
    have to call .to_i ?)
  • The language is well enough known that it might be easier to find a
    friend that use it to help out than in more unusual languages
  • The language is full enough of traps that the new programmer may
    learn “BE ALERT! TRUST NO ONE! THE LANGUAGE IS YOUR ENEMY AND MUST
    BE BEATEN INTO SUBMISSION!”

Of course, I happen to like code, and I think you can end up being
fairly friendly with Perl after a short while - say, ten years of Perl
experience - so it’s not a total loss…

If you’ve got other redeeming features of Perl for beginners, I’m
eager to hear them - if somebody can convince me I’m wrong, I’ve
learned something, so I’m always in favour :slight_smile:

Eivind.

Wyatt G. wrote:

Strange? I agree about C++, but Scheme???
IMHO, the best way to start is DrScheme + HtDP book.

– Hrvoje

Michael Bevilacqua-Linn wrote:

IMHO,

Java, C# and VB.NET are horrible teaching languages. You’re neither
close
enough to the machine to learn much about how a computer actually works,
nor
at a high enough level to learn a lot of the fancy, abstract ways of
thinking that seem to help make good programmers.

Ruby and Python are pretty decent choices, I think.

MBL

The only Ruby drawback IMHO is I never want to program in any other
language no more :wink:

by
TheR

[email protected] [email protected] wrote:

Hi!, i want to learn how to program.Is ruby a good option?. Thanks.

The answer to this is, as with so many things, in the eye of the
beholder. What you want is a language where your efforts in programming
are as unhampered as possible. The C-like family (C/C++/C#/Java) have
linguistic complexities that are an addition layer of learning beyond
just the programming. On the other hand, there are libraries that
simplify things a great deal in those languages. You can get netbeans
and have a java app running with pushbuttons and text boxes in no time.
It is even easier in Delphi but that is expensive. Netbeans and Java
are free.

Ruby is a far easier language in a great many ways. If there is a
difficult aspect to it that is at all analogous it is that you need to
know what ruby already has done FOR you. There are so many calls that
do the job that the other guys just have to know how to do themselves
that just learning them all can seem daunting. Even just the regex is
an art form that still gets questions. For getting things done, ruby is
far simpler. myarray.sort is an easy answer and I have no idea how any
times that I wrote my own sorting methods. /sigh

If you want to learn a language from scratch and get things done in it,
ruby is just fine. If you want the ins and outs of algorithms, you
might try Java. Whichever you choose, stick with it until you have it
mastered. Once you have that done, you can learn other languages with
greater ease and to a greater extent. As a matter of fact, when you
have learned your first language well, you should learn others. It
will sharpen your skills.

IMHO

Chad P. wrote:

Probably even worse, though, they’re discouraging. The last thing you
want when trying to teach something is to use a teaching aid that
discourages students. Use something that encourages curiosity,
experimentation, and wonder – not something that is bureaucratic and
frustrating for a beginner.

I agree wholeheartedly. Avoid whatever is discouraging. Even the test
projects should be fun, interesting, and challenging. If you are not
having fun then figure out what it is that is taking the fun out of it.
If it is a boring project then find another. If it is the language you
chose, find another. Acquiring programming expertise will fill you and
change who you are. If it is not fun, then it will not happen because
you cannot truly embrace it.

Find a way to make it fun or open a rib joint.

On Fri, Feb 01, 2008 at 09:31:21AM +0900, Michael Bevilacqua-Linn wrote:

Java, C# and VB.NET are horrible teaching languages. You’re neither close
enough to the machine to learn much about how a computer actually works, nor
at a high enough level to learn a lot of the fancy, abstract ways of
thinking that seem to help make good programmers.

I’m mystified at the notion that Java, C#, or VB.NET would be good as a
teaching language. The only thing I think they’re good for, in terms of
teaching, is teaching how to use those languages in particular. The
complexity of their use gets in the way of learning good programming
practice, problem solving, and algorithm development early on, and their
levels of abstraction from the underlying technology (as you point out)
introduces problems as well.

Probably even worse, though, they’re discouraging. The last thing you
want when trying to teach something is to use a teaching aid that
discourages students. Use something that encourages curiosity,
experimentation, and wonder – not something that is bureaucratic and
frustrating for a beginner.

Ruby and Python are pretty decent choices, I think.

To the list of high-level dynamic languages for teaching programming,
I’d
add Logo (specifically UCBLogo), Perl, and probably DrScheme.

Depending on your needs with regard to subject matter, I think for
static
languages a good lineup might include Assembly, C, OCaml, and Pascal. C
and especially Assembly might be pushing it for an initial introduction
to programming, but some people subscribe to a “learn the hard stuff
first” philosophy, and both of these languages would at least present a
lot more interesting learning opportunity than something like Java or
VB.NET, in my opinion.

Just one man’s opinion, based on experience.

On Feb 1, 2008 7:10 PM, Chad P. [email protected] wrote:

Ruby and Python are pretty decent choices, I think.

To the list of high-level dynamic languages for teaching programming, I’d
add Logo (specifically UCBLogo), Perl, and probably DrScheme.

Why Perl? I know Perl fairly well, unfortunately having done most of
my programming in it over the last 12 years, but I don’t see why it
would be appropriate for teaching. I’d think all the weird
irregularities would get in the way, but if you actually have
experience with it, I’d like to hear why I’m wrong (if I’m wrong).

Eivind.