But it is possible to take someone with no experience and turn him/her into a code monkey in only 2 years.
And I think that that is the point with this. They aren't looking to educate new "engineers". They want cheap, fast labour. Code monkeys.
If one of those people goes on to learn more, on their own, so much the better.
If not, well the CxO's of those companies will claim that it is the fault of the workers.
Depends on what you mean by "no experience". Do you mean "no professional experience" of any kind whatsoever, or simply "no programming experience".
I ask because I know first hand of several schools (a new trend I'm witnessing) where they take professionals (teaches, business people, nurses, fine arts, and what have you), put them on a 10-week bootcamp, 8AM to 8PM, monday through saturday, going through the grind of software development topics (sans theoretical CS such as diving into the purely mathematical analysis of algorithms or automata theory).
And I've seen them making a good transition into competent software developers (junior level, but still very much competent), certainly not code monkeys.
And what I see is that people with a 4-year degree (but could also be a 2-year degree) and some professional experience of any kind already have grit to dive into things and get proficient. They already know how to study, internalize and categorize things. They already know how to divide and conquer problems, and they already know how to see patterns of work.
That is the stuff a degree, be it 2 or 4 gets you. Those people already went through that, regardless of the degree. So for them, taking a 10-week, 6-days-a-week workshop from dusk to dawn is just another do-or-die project, which they complete.
So yes, you can take anyone without prior experience and turn them into software developers in short order, provided they have educational maturity.
A lot of people complain that half of the classes in a BS, AS or AA degree is not related to the main topic of graduation. And they are missing the point. Unless you are exceptionally gifted, you need to go through the grind of things, to learn how to study, how to apply yourself. The actual subjects of graduation come on top of it.
This is no different from a craftsman apprenticeship program. A master plumber just doesn't learn from books. He gets hands-on practice on a medium that is fundamental to the type of work he is expected to perform.
Same with a person hoping to work on the subject of a 2 or 4 year degree. What people call "irrelevant" curricula is that medium.
On another note, I agree that we do not need a 4-year degree to do software development. I got my first job with just a 2-year AA degree, and it served me well. I did get my 4-year degree in CS while working as a developer (and then went to grad school). But for 90% of my work, what I learned in the 2-year AA degree was more than fine.
It was only on the areas of large scale software engineering and algorithm complexity (which I did end up having to confront) that I relied on my seniors. And that area of lacking got resolved once I got my 4-year degree.
We insist too much not just on having a 4-year degree, but a 4-year CS degree, when most programming jobs can be done with just a 2-year AS program, or an apprenticeship program for people coming from other professions. There are a lot of jobs that do require a 4-year CS degree, but they are not the majority. And I think we are doing a disservice to the industry in insisting to fill every programming job with 4-year CS graduates.