Kyle Schmitt wrote:
> 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.

This is exactly why we chose C as the first language for electronic 
engineering and information systems engineering students. Previously the 
course had been given in Algol 68 (!), then Pascal, but it was decided 
that C would be a much better foundation, and useful in the real world 
too.

C is very hard to learn. Almost everybody comes unstuck on pointers and 
memory allocation. But this trains your mind, and once you've learnt C, 
you realise what other languages are protecting you from, and how they 
work internally (since most are written in C, like Ruby).

Recently some ex-students of mine contacted me via a social networking 
site to thank me, saying that C had been very valuable to them in their 
careers.

If the OP wants a good foundation in programming, C will provide it. But 
Ruby would be gentler. :-)

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