In order to accelerate learning, I believe it is best to try to learn one concept at a time.  That's why I like to introduce people to the LOGO programming language if it's their very first programming language.  It introduces many basic concepts that we programmers take for granted, for example:<p>* the fact that a computer will take everything you do literally and can't read your mind<p>* commands<p>* sequential iteration of commands<p>* loops<p>* conditionals<p>It's also easy to get quick results which keeps an early learner from getting discouraged.  Once the learner is bored with LOGO, then you take them to a more powerful language.  Ruby is nice because--even though it can get complex--you can start off very simple.<p>I would recommend this book for learning Ruby as a first language:  <a href="http://www.amazon.com/Learn-Program-Second-Facets-Ruby/dp/1934356360/" rel="nofollow">http://www.amazon.com/Learn-Program-Second-Facets-Ruby/dp/19...</a>