I'd like some insight as to what path is normally followed while learning programming. Using python as an example, I was looking around for some solid books to learn from and I came up with the following categories.
General language books - basics of programming/python language
Intermediate books - intermediate language/real world programming concepts/larger projects
Specialized books - GUI/web/network/Game programming using python
Mathematics - Mathematical programming
Algorithm/Data Structures - Algorithm and data structure programming
Reference - Complete language reference
I'm sure I could just go from language books to intermediate and then do whatever I feel like, but I tend to thrive on structure so I would like some core themes to follow as I learn programming. With subjects like programming there doesn't seem to be any standard progression to follow. I tend to get overwhelmed because I have no idea what programming can do or how to do them, all I've learned thus far are languages and basic programming concepts. I have a hard time understanding how I can go from basic programming to writing my very own program. What exactly are the next steps?
Progression examples followed by book recommendations for those examples would be greatly appreciated.