what you're having, thinking in C++, is one good source. I do not specifically have a favourite C++ book on hand, and i usually improvise whenever i need something. the best is start a modestly scaled project and get cracking your skull on it.
I got my job as a software programmer during the dot com boom, so even though i was not trained specifically for programming (I graduated an electrical engineer) I did land the job. (BTW I've since moved on into another, more interesting industry.)
the situation is alot different now. Go get a degree if u can. it matters. there're tons of graduates from computer science each year. there's no reason why employer employ you over someone who's professionally trained. Sure there're exceptions (you read tons of those on the net), but keep in mind those cases are exceptions, not the norm. I've worked with programmers who're not professionally trained and it's fustrating working with them. I imagine it's the same what my fellow colleagues thought of me when i started out.
also, are you sure programming is what u trully enjoy? some of it can be fun, but most of it can be dull, too. you may not be involved in creative algorithm writing (how many industry needs that?) but mundane GUI writing or DB access and stuff like that. The creative part is mostly system designing, hardly the actual coding.