Now that I've attended this school, I can pick up books about code and not feel completely overwhelmed. For this reason, I believe that if it's an option, a bootcamp is the way to go.
I also believe that the only requirement for 'fitting in' to one of these schools is to be easy to get along with, and be able to take the stress without becoming a jerk. This is more difficult than it would seem, as the course is pretty intense.
---it's an online book that lets you run code right in the book
---it's the language of the REPL that everyone has access to (in the browser)
---js is dynamically typed, which I think is easier for people to grok (I learned Java first, and for months I was puzzled by this "public static void main (String args[])" that I had to start everything with. Public? static? main? void? JS has none of these, and while it's debatable whether that's a good thing or a bad thing, it's an unqualified good thing when first learning to code.)
My main point is that in my opinion books, interactive or not, are still the best source for learning to program for many, if not most new programmers.
if you want to learn to program, open Terminal, type ipython and go from there. When lost google stackoverflow, repeat. Forget books, there are way better, more up to date online resources.
Also, learning git isn't something that a novice programmer should need to struggle with. It's hard enough figuring out the concepts of programming without having to add on all sorts of other stuff. You don't need git to write a 100-line program.
Finally, the whole list is very skewed toward web development, which not everyone is interested in. People who work in science or business might be more interested in learning how to write programs that manipulate data (e.g., using Python to automate what they would otherwise do with Excel). Others might want to learn how to write games for PCs or iPads. Web apps written in Rails might appeal to the startup crowd, but they're hardly fundamental steps toward learning programming.
If you're a dev school graduate I'd love to meet up with you over coffee and understand how we can improve the experience with Campendo.
Find the best book ever written for your language of choice, its Crockford's book for js I imagine - don't know about other languages.
I would NOT learn to write code from random web resources. A good portion of the code on sites is horrible. There's alot of horrific PHP code floating around out there.
Except, find someone on Github who is blowing your mind with their stuff and read through their gists and projects. Succinct and easy to understand code is best. I did this for two hours last night and got more out of it than a month reading weak stuff and the more mediocre books..
a) Buy a C-64, TI-99/4A, TRS-80, etc.
b) Turn it on
c) start programming.
a) Buy a Raspberry Pi ($25 vs $hundreds (converted to today) when those were released)
b) Turn it on
c) Start programming (since it starts up into a programming environment of some kind, IIRC)
If anything it's easier now, and much much much more available to people who don't have $1400 to drop on the new C64 hotness: http://en.wikipedia.org/wiki/Commodore_64
If getting a class isn't an option, there's always something like Learn Python the Hard Way, or if they have issues following just text, Land of Lisp is pretty gentle and friendly, if not as immediately applicable to say, mobile development.
Not being able to use Ctrl/Cmd-F to quickly locate code snippets in your text editor. Not using keyboard shortcuts...the seconds it takes to move from task to task quickly build up, and so does the frustration and urge to quit.
Everyone wants coding to be about amazing creations and The Future...but a lot of proper coding is just hard work and good habits. When that routine is in place, learning AND producing code is significantly easier.
Moving quickly and freely (in any direction) at the beginning helps keep interest levels up, where an 800 page book on Java might squash their energy. Plus, if you only have the basic-basics of web stuff you start to chafe pretty quickly, and that's great motivation.
Usually, I ask them what they want to do with code and go from there. Sometimes, I realize that all they really want to learn is HTML and CSS. Other times, I really do feel like the "hardcore" approach would be more fulfilling, albeit slower.
http://docs.python.org/2/tutorial/
Offer to answer questions when they have them.
If they get through that, talk about what kind of programming they'd like to do, and point them toward their first resource. Offer to help. If they actually still want to code, they'll go from there.
https://github.com/karan/Projects has a good set of first projects, ranging from straight algorithm practice to actual app and full project work. My younger brother is following something very similar, and it's working quite well so far.
But what if you want to make a chart maker?