Start by picking an entry level langauge (Java, C#, or some other random one people will recommend) then start by writing simple programs like taking in 2 inputs and doing addition, subtraction, multiplication, and division, then showing the result. Then expand to larger programs. Read examples of code then change them to see what happens, see if you can alter the code to do what you want thats close to what its doing.
Over time you'll start understanding concepts like input, output, data types, conditional statements, functions with and with out return values, loops, then learn larger concepts like object oriented programming, encapsulation, polymorphism, overloading functions, casting, and so on.
There's always more things to learn. There are plenty of beginners guides online where they will walk you through several programs then make suggestions of "try on your own" style programs. Ultimately though its a lot of learning while doing and experimenting till you figure it out.
stop telling newfags to start with scripting languages, it turns them into retards who will never know what's really going on
I agree, I think its best to start on a console compiling language before going to web shit with interpreted languages.
I know its harder for people to "get into it" when they can't see something flashing happening visually but i think it results in a better foundational experience.