While I agree that coding boot-camps and all these fast-track programs can't produce a skilled, well-rounded developer in their own right, I don't think they're necessarily bad as long as expectations are managed (and the blog author seems to agree with this, I just want to discuss it a little more).<p>I think the hardest part of programming learning to "think like a computer," which isn't just learning how to use something, but really adapting the way you think, and takes a while to develop. Something you can't do through a boot-camp (luckily you can learn learn this in many ways other than programming, and many people encounter it throughout their lives). Until you can get past that hump, a lot of programming is spent just learning why the computer is "choosing" to do what it does, and is really wasted in the context of learning to build applications. Once that happens though, things get rather quick, and it's more about handling a lot of breadth, rather than depth. (This is ignoring more advanced CS concepts, which are a whole different beast than just making products).<p>I have been mentoring a friend who wants to learn to build mobile and web apps. Same situation the author proposes, an English major who realized he doesn't really like his options. It has been less than a month, but he's surprisingly good already, better than any of the undergraduate CS students I've tutored (however, the CS undergrads who write great code don't need tutoring, heh). We haven't touched web/mobile yet, but we've begun building programs together. A flappy-bird clone using PyGame for example, that we later plan to rewrite as an app. I think working so quickly towards making full-fledged finished products keeps it very fun, and you get to see how ideas work when combined with other ideas, something universities don't often do outside of end of the semester projects.<p>I've been focusing more on teaching him to teach himself, rather than outright learning languages or frameworks. In 6 months he won't be a rockstar, but I fully believe he'll be able to make his own projects from scratch, and be able to jump into any teams projects with a reasonable amount of time to familiarize himself.<p>I think what really helps is that he already has a great grasp on concepts in programming that are so foreign to newbies. I don't know how, maybe all the experience we have playing pen-and-paper RPGs. It only took me an hour or so to teach him about classes for example, and he was able to understand the difference between a class, an instance, static and non-static methods, or structuring conditional statements. When I tutored, I spent 90% of my time just trying to drill in these concepts. And if he had needed a ton of time to fully grasp the difference between references and objects, inheritance, or even a for loop, he just could not have progressed so quickly, and even if he did, I feel he would not fully understand what is going on in the code, and would take it away with an understanding more like taming magic, rather than a tool and a science.<p>(long comment, haha. Spent quite a bit of time in the back of a meeting slowly writing this out, so it may feel fragmented/rambly).