Here is the tip,
1) Start with C/C++ Basic, do some practise programs (Books or Online whatever you prefer) [Duration 2 months]
2) Learn Basic Java [Duration 2 months]
while doing 1 & 2 you will find many new things that aren't explained well in Books or Online material that you are reading, make note of all such things (Closures, Recursion, Dynamic Programming et. al)
3) Learn advance C/C++ (this is real thing) [Duration 1-2 months depending upon how much you grasped from 1 & 2]. Here most of the CONCEPTS should be clear about programming.
5) Decide which of the following you want to take as initial career step,
[*]Java based stuff (JSP or Android
) learn it [Duration 2 months]
[*]Core C/C++ stuff (Graphic C, System Programming etc) [Duration 2 months]
[*]Online Scripting [PHP, Python, Ruby on Rails (choose ONE for a start)] [Duration 2 months]
[/list]6) Till now you don't know what is DBMS, so learn some basic SQL [Duration 2 months]
Now you are industry level programmer with Good skills, Get a Job or do Freelance
7) Learn Node.js & MongoDB or how BigData and what is Cloud Computing [3 months]. Initially you might find these things difficult but as time progresses you would be more clear with CONCEPTS.
8) You know what to do next.
Most important thing over here is CONCEPTS must be clear and practise good number of programs (UNDERSTAND how they actually work).
Hope this helps.
PS: Time-lines given are based on my assumption that you want to Learn something and can spend atleast good 3-4 hours a day for weekdays and as much as possible on Weekends.
I have been doing freelance since my 10th Grade and was earning well in Engineering days. At present I work with Paytm
and earn quite decent money.