Unless you have a strong, raw intellectual motivation in the endeavor, start by learning whatever allows you to accomplish tasks of interest to you.  This is a strong motivating factor.  If you like it, you'll keep learning more in order to accomplish more.<p>Tasks that save you time and effort are a good place to start.  Tasks that entertain you are another.<p>In this regard, a scripting language with a good interface to your system (file access, graphics/presentation support, network support) is often cited as a good place to start.  Many people suggest Python.<p>As you move to tackling larger problems, and/or growing your previous work, you'll find it beneficial to learn more about designs and techniques that aid in staying organized, keeping your work maintainable and efficient, etc.  At that point, you'll want to look beyond the references for the language you started in and learn more general principles.  (But even when you start, look for the BEST references in the language of your choice.  The best references incorporate some of this context and explain it well, giving you a head start and helping you to avoid "bad" practices you may latter have to "unlearn".)<p>P.S.  Perhaps implied in the above, the environment you want to work in / control will influence your choice.  For "general" programming -- freestanding programs running on your machine -- you might find e.g Python the best starting point.  If you mostly want to control things in your browser, then Javascript (along with HTML, CSS, and the DOM model -- which is already incorporating a quantity of semi-arbitrary detail that frustrates some people).  If you were trying to ease administering a UNIX-flavor environment, you might consider Perl.  If you spend most of your time in Microsoft Office documents, then Visual Basic for Applications (VBA) or whatever it is these days.<p>How long it takes depends largely on you.  Some people, particularly with a strong motivation to accomplish specific things, learn quite a lot in a couple of months.  On the other hand, I've worked with people having technology degrees who nonetheless seem fairly clueless.