Pick a problem, a tool set and get experienced. You will not gain as much if you simply read across multiple applications and disciplines.
For a focus on the academics, and not the practical, I would not suggest going it alone unless you are really that strange type of person that gets math intuitively.
Its very easy to learn the syntax of any language, you can probably do 5-10 a day. But to really learn a language, you must use it. Try to solve problems and try reinventing the wheel a couple of times.
Once you are familiar with little bits of code, pick something big that you want to make. My first big program was a metasearch engine (given a search query, issue queries to several search engines, parse the results, and combine them into one set).
Once you are happy with it, maybe 5-6 months in, write the same program in another language, say Ruby or Javascript. This is now called a "kata", I think. I wrote the same metasearcher in 5 different languages over the course of about 14 months. Attacking the same problem gives you a good vantage point from which to compare languages and techniques.
Here is his rant about it: http://oppugn.us/posts/1272050135.html
Here is the hn discussion of his rant: http://news.ycombinator.com/item?id=1289186
Like an writer or a painter, the best way to learn programming is to learn by doing.
It does help to work with others, so find a friend and work on a project with them and try to learn as much as possible if you can.
Regardless of how you do it, you will be blown away by how much your skills improve after 270 days.
If you already know how to program, then nine months might be a decent timeframe for adding a new tool (or two) to your toolbelt. If you do not already know how to program, then nine months will be just enough to make you dangerous.
If you don't pick a project you really really care about then learning programming and finishing your project is going to be twice as difficult.
Good luck! Check back in in a couple months to let us know how it went!
Even typing in examples verbatim from books will force you to start paying at least a little attention to what the code is doing. If that's too boring, try re-implementing examples without referring back to how they did it in the book.