From: Kyle Schmitt Date: 2008-05-29T03:36:30+09:00 Subject: Re: Should I Learn Ruby as a First Language? Since nobody's posted it... http://xkcd.com/409/ 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 them :) I 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. --Kyle