Learn how to program

W

Wyatt Greene

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

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/
 
M

M. Edward (Ed) Borasky

Wyatt said:
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. :)

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

tho_mica_l

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

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

longint

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

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

Jeremy McAnally

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

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
http://www.manning.com/mcanally/

My free Ruby e-book
http://www.humblelittlerubybook.com/

My blogs:
http://www.mrneighborly.com/
http://www.rubyinpractice.com/
 
T

Thomas Wieczorek

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 ;)
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!"
 
T

Thomas Wieczorek

Yeah, start with Java or C#, you will be in heaven when you get back to Ruby ;)
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/
 
M

Michael Bevilacqua-Linn

[Note: parts of this message were removed to make it a legal post.]

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
 
C

Chad Perrin

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

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

Eivind Eklund

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

Eivind.
 
H

Hrvoje Blazevic

Wyatt said:
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
 
D

Damjan Rems

Michael said:
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 ;-)

by
TheR
 
L

Lloyd Linklater

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
 
C

Chad Perrin

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

Lloyd Linklater

Chad said:
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.
 
T

tho_mica_l

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

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
474,282
Messages
2,571,404
Members
48,096
Latest member
Kenkian2628

Latest Threads

Top