Before you start, read these:
http://www.blackhatworld.com/blackh...r-blogs-group-pay-programmer.html#post3715462
http://www.blackhatworld.com/blackh...r-blogs-group-pay-programmer.html#post3715814
http://www.blackhatworld.com/blackh...r-blogs-group-pay-programmer.html#post3715976
Then, before you even think about learning a programming language, learn algorithms and data structures - stacks, lists, linked lists, graphs, trees, binary trees, etc. This will give you a good foundation to start on. This is because before you even think about learning a programming language you have to learn how to think as a programmer otherwise you will be another one of those
lame-ass programmers who build shit code.
Then after you covered all that, you have to decide what you want to code. There are general-purpose programming languages that can do anything (like Java, C#, etc.) specialized ones (e.g. PHP for web development) etc. Go and read about them what their strengths and weakneses are. You need to learn with a purpose. Don't just learn for the sake of it. Once you decided on a programming language, go and read about Design Patterns in general and for that language together with common usage scenarios. Do that before you learn the language but don'ttry to learn the actual implementation of the design patterns because you won't be able to at this stage. Instead just learn what they are and what they do and when you should use them. That will teach you how to think in terms of software design and architecture.
This will likely take you a month and you have no idea how to code. Then, start to actually write code. Learn the language basics (control flow, variables, functions, etc.) and also look over the libraries available and what they're for. Then start to practice as much as you can. Do look at good source code too to learn how others did it. When you do this, in case you chose PHP as your preferred language, stay the fuck away from WordPress source code or you will grow up into a retarded coder.
For programming languages to start with - JavaScript is not a good choice. That's something mainly for browsers and once you know other language you can get shit done in JS in 15minutes without learning it. To start with I'd suggest:
Python - good overall, extremely elegant, so elegant that you might have a hard time learning a less elegant language like PHP or Java later.
PHP - NOT a good language to start with unless your main purpose is web development. It is a very very ugly language with bad design.
Java - great to start with as will teach you design patterns from the beginning and is very well designed and consistent. However it is a bit bloated and has a steeper learning curve - while in PHP might take you 1 month to learn it enough to get something practical done in Java will take you 6 months just to learn the basics.
C or C++ - if you learn this first, anything you learn after it will seem easy. Only recommended if you're a bit hardcore and you need to write very fast programs.
C# - Same as Java basically.
VisualBasic - don't like it personally, will be hard to switch to C/C++, C#, Java, PHP or Python from it.
Languages that are similar to a certain extent and once you know one is easy to learn the others: Java, C#, C, C++, PHP, Python, JavaScript. PHP and Python are not quite as similar with Java and the C family but similar enough. The harder and better designed the language you start with it, the longer it will take you to become decent at using it but at the same time you will be a good coder from the begining and not develop bad coding habits as it is likely to happen if you start with PHP for example.