And by "frequently" I mean either (1) asked of me enough that I'm creating a stable public reference for it or (2) not asked of me very often, but I think more people should be asking it..
Q. Should I attend a bootcamp?
Bootcamps are largely useful as a commitment device. A good portfolio project has as much signaling value as a bootcamp--much of the job-market value of the bootcamp simply is whatever project or portfolio piece you create in it--and needn't carry the negative signal a bootcamp can (pegging you as very junior).
So: maybe, depending on how you work best, but almost certainly not if the bootcamp isn't a very good one.
Q. What book should I read to learn programming?
You probably shouldn't base your learning around a book. It's more effective to pick a project (initially something very small) and try to see it through, doing Web searches for help along the way. If you need some other sort of structure around your learning, a good MOOC relevant to your interests (search "MIT OpenCourseWare" on YouTube) is a good option.
Q. I want to learn fundamental algorithms and data structures. What should I study?
Tim Roughgarden's MOOC (lectures available on YouTube) is a good place to start. MIT OCW (also largely available on YouTube) is usually my first YouTube search to learn about or brush up on some particular CS topic. I find it handy to have CLRS around, and Skiena's book is a nice complement to it. But you don't need any books.