My experience is that all/most of the programming books are based on trivial examples and solving dull problems, which is perfectly fine when you know nothing and you are just starting the programming adventure, but when you are getting your second or third language and you want something more serious, then all the 50-150 loc examples are just... not enough. So I'd love to see more books when you are given something in the range of 10k< loc and the examples and tasks being more complicated. Traditional publishing did not allow that, because you could not provide long code base. But today there are no such limits.
Especially GUI guides are ratcher simplistic, you don't want to draw just triangles and squares on the screen. There are no really good resources for Direct3D or OpenGL, WGL, SDL etc. It's like learning architecture by looking at bricks and not at finished buildings. This is also the reason why people recommend working on open-source projects, because this is where the real thing happens. But I would say it's an intimidating experience. There should be something in the middle.
(And it would be nice if there was a mentoring site where you could pick a language, pick your level, and be mached either with a person/team to work on something together or with a mentor who could just guide you twice a month. Say, you pay 100 bucks for registration, the website owner gets $10, and the mentor $90. Even if you get just a couple of "students" it's still a safier bet than much more risky SaaS/e-book business. And how to start it - make a web site about one language that is your stronges and focus on that. If you get others interested in mentoring, check their stack and then expand the offering. If you have 10 deals a month, there will be 100 passive bucks more to your name. Has anyone tried that? And to get the initial traction combine it with some publishing, blog, some language-specific, industry-informed (not necessary programing related, but project-management, team integration, tasks division, feedback, code reviewing) problems that would prove your expertise.
PS: One difficult project you could explore is business process modelling - there are a couple of different notation standards, such as BPMN. The project would be to create one program (like Bizagi) in which you can design processes but in different notations, smoothly (that's the most difficult) convert between them, and then integrate with industry class software such as Appian, IBM BPM, Amodit, SharePoint, Alfresco etc. It's a million dollar project, but f* hard to solve.