I *strongly* disagree with this opinion. If the goal is to start
closer to the hardware, then why isn't assembly language even better?
It's like saying to learn sociology you first need to learn
psychology, but before that neurology, preceded by neurochemistry, but
only after biochemistry, which of course follows chemistry, but which
can only come after physics....
Just as there are useful concepts and abstractions within sociology, a
high level programming language provides you with abstractions (loops,
objects, exceptions, iterators, closures, etc.) that are useful in
their own right. You do not have to learn what's happening behind the
scenes first to understand or leverage these concepts.
You can't learn everything at once. You have to learn things
incrementally, and given human psychology, it tends to work best if
along the way you are able to do useful and interesting things.
Now does learning C or assembly language at some point make you a
better programmer? Absolutely! But it doesn't have to be first, or
even second or third. Why make learning unnecessarily painful when it
can be coincidentally fun?
Eric
···
On May 28, 2:36 pm, Kyle Schmitt <kyleaschm...@gmail.com> wrote:
Since nobody's posted it...xkcd: Electric Skateboard (Double Comic)
Ruby is an awesome language, highly abstracted from the hardware,
incredibly flexible and fluid, and probably not a good first language
just for those reasons alone.Learn C first.
To really get programming, to understand what's going on, you need to
go deep. All the way down to C (though some say assembler).C is the lingua franca of computers. It doesn't make things easy for
you, it doesn't make things pretty, or necessarily intuitive, but it
does bring you right down to the metal in the end.It isn't flexible, when you have to tell it to do something, you have
to tell it exactly what to do, And C will do it, even if it's not a
good idea, even if it crashes.
You grab your own memory, and are responsible for putting it back.
You make and move pointers to access the memory: if you point to the
wrong place, you'll get the wrong data, corrupt your own program, and
probably crash it.
You've got to link your own binaries, and link them to the right libraries.And doing all that makes you a better programmer, makes you understand
what really is going on behind the scenes. Not to mention makes you
appreciate languages like ruby, perl, python and java so much more
when you get to themI don't think you necessarily should program your first projects in C,
but you should learn C as a first language, even if you don't use it
for your first projects. Even if you never use it outside of studying
it.
====
LearnRuby.com offers Rails & Ruby HANDS-ON public & ON-SITE
workshops.
Ruby Fundamentals Wkshp June 16-18 Ann Arbor, Mich.
Ready for Rails Ruby Wkshp June 23-24 Ann Arbor, Mich.
Ruby on Rails Wkshp June 25-27 Ann Arbor, Mich.
Ruby Plus Rails Combo Wkshp June 23-27 Ann Arbor, Mich
Please visit http://LearnRuby.com for all the details.