You need real world experience!!. No book can teach you that!
You have to learn how to read others code, how to maintain it, how to hate them ( both the code and the coder ) how to improve it, how to think you can do it better and a few months later shout out loud I'll kill who ever wrote this pieces of code!!! Only to find out in the source version control it was you!
You have to understand books are very specific and some times for people who already know how to develop software.
So I would suggest you to find some programming job. If needed, apply for the most basic entry level. Probably you won't earn as much as you think you deserve, but use a few months to learn how software is developed in the real-world ( and it is not always as perfect and with all those beautiful best practices we read in the web, many times, code quality is very low, depending on where do you work, but that's part of the experience )
Keep reading your books, you'll find out, every year you understand a little bit more ( or differently ) the same topic, because you can see it know with the glass of experience.
If you manage to get a job with talented developers, much better. Learn from them, don't be afraid to make mistakes.
Until you have to fix your first live-production urgent bug, you won't know what software bug is!
:)