Learn how to program

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

···

--
Posted via http://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 Pine: http://pine.fm/LearnToProgram/

···

On Jan 30, 4:30 pm, "Reg...@argentina.com Reg...@argentina.com" <reg...@argentina.com> wrote:

Hi!, i want to learn how to program.Is ruby a good option?. Thanks.
--
Posted viahttp://www.ruby-forum.com/.

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

···

Regnum@argentina.com Regnum@argentina.com wrote:

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

--
Posted via http://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 Jan 30, 4:30 pm, "Reg...@argentina.com Reg...@argentina.com" <reg...@argentina.com> wrote:

Hi!, i want to learn how to program.Is ruby a good option?. Thanks.
--
Posted viahttp://www.ruby-forum.com/.

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

···

Regnum@argentina.com Regnum@argentina.com wrote:

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

--
Posted via http://www.ruby-forum.com/\.

Wyatt Greene wrote:

···

On Jan 30, 4:30 pm, "Reg...@argentina.com Reg...@argentina.com" > <reg...@argentina.com> 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 Pine:
http://pine.fm/LearnToProgram/

Thanks!!!.
--
Posted via http://www.ruby-forum.com/\.

Wyatt Greene 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 Pine: http://pine.fm/LearnToProgram/

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:

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 <michael.mello@gmail.com> wrote:

On Jan 30, 4:30 pm, "Reg...@argentina.com Reg...@argentina.com" > <reg...@argentina.com> 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/

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 8:09 PM, longint <michael.mello@gmail.com> 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.

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 Jan 31, 2008 2:09 PM, longint <michael.mello@gmail.com> wrote:

On Jan 30, 4:30 pm, "Reg...@argentina.com Reg...@argentina.com" > <reg...@argentina.com> 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.

I disagree.

···

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

Regnum@argentina.com Regnum@argentina.com 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.

--
CCD CopyWrite Chad Perrin [ http://ccd.apotheon.org ]
Brian K. Reid: "In computer science, we stand on each other's feet."

Wyatt Greene wrote:

···

On Jan 30, 4:30 pm, "Reg...@argentina.com Reg...@argentina.com" > <reg...@argentina.com> 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 Pine: http://pine.fm/LearnToProgram/

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

-- Hrvoje

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).

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/

···

On Thu, Jan 31, 2008 at 11:55 PM, Thomas Wieczorek <wieczo.yo@googlemail.com> 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!"

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

···

--
Posted via http://www.ruby-forum.com/\.

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 Fri, Feb 01, 2008 at 09:31:21AM +0900, Michael Bevilacqua-Linn wrote:

--
CCD CopyWrite Chad Perrin [ http://ccd.apotheon.org ]
Marvin Minsky: "It's just incredible that a trillion-synapse computer could
actually spend Saturday afternoon watching a football game."

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.

···

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

> 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).

--
CCD CopyWrite Chad Perrin [ http://ccd.apotheon.org ]
John Kenneth Galbraith: "If all else fails, immortality can always be
assured through spectacular error."

Chad Perrin 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.

···

--
Posted via http://www.ruby-forum.com/\.

I'm mystified at the notion that Java, C#, or VB.NET would be good as a
teaching language.

Well, since Java is used at many schools/university for introductory
courses, there are some good text books around for beginners. The
good
books also cover oo design and data structures and the like.

Use something that encourages curiosity,
experimentation, and wonder -- not something that is bureaucratic and
frustrating for a beginner.

Where is this article that was recently flying through the
blogosphere
about java being a bad choice as a first language? IIRC the main
argument was that its graphics libraries are too much fun. I
personally
actually think it's funny how opinions can differ. :slight_smile: You're right
of
course that it should be fun in order to keep up the interest in the
subject. BTW I think Squeak, which offers a nice interactive
environment, wasn't mentioned yet.

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.

···

On Feb 1, 2008 7:10 PM, Chad Perrin <perrin@apotheon.com> 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.