I'm going to spend the next few months getting acquainted with programming, but I'm not the type who learns best by "just doing it". I am only productive if I can understand things from a more structural, high level overview type context.
Every one of you will no doubt want to just reply "Seriously dude, just start coding!" and I appreciate the sentiment, but I gotta start this my way.
I've REALLY enjoyed some programming podcasts, where they tend to discuss structure and theory, strategies and abstractions. I'm not completely new to coding, so I know enough to get something out of it.
So, what books or podcasts would you recommend? Almost any topic is welcome, functional programming to databases to networking or whatever.