Just do it ...
Quit wasting time and waiting for someone to tell you what to do or hold your hand...
There is no best language...
There is no best operating system ...
There is no best book on how to learn ...
Just pick a language, pick and OS, and go with it... You can expand your horizons (different language and/or OS) later when you master the first one.
What to program? That's easy. Go find all the stocks listed on Yahoo Finance, scrape the important info (Symbol, Name, Exchange, Sales, Shares Outstanding, etc.) and put it into a file.
Second project - automatically download all the historical quotes for each symbol, and put it into a separate CSV file with the following fields: Symbol

ate:Open:High:Low:Close:Volume:Adj_Close.
Third project - parse each price data file, and determine the 52-week and All-Time highs and lows, adjusting for splits and dividends (hint, that's what the adj_close field is for).
Fourth project - parse the price data, and create moving averages of various lengths.
Fifth project - use PHP to feed your price data to HighStocks (highcharts.com) so you can draw pretty graphs of your data and moving averages.
Then write these five projects in another language and see which one you like better.
This will teach you most of the fundamentals of programming. You can now take this knowledge to tackle other projects.