I doubt you can pick up a solid understanding of just the first 15 or so chapters of CLRS in a few months, let alone days.
I'm extremely skeptical about your claim. Just reading through the chapters will take the better part of a day. Working through the exercises and thinking about what each of these algorithms will take much longer.
There are a few other things to consider. One is that it's probably not necessary to go through all of the material to be able to manage interview-type questions. (It would obviously be best to undertand CLRS from cover to cover for the purpose of becoming a better engineer, but that's not what's under discussion.)
Second, it's really questionable whether someone can effectively work for 10 hours per day on this sort of material. My guess is that people fall into two categories - those who are not used to algorithmic thinking, and those who are. People from the first category would not be able to absorb that much new information that quickly, so for them, what I said is inaccurate. However, people in the second category would not only be able to process CLRS in large batches, but would need much less than 140 hours to work through half the book; someone familiar with the underlying concepts (basic programming, probability, etc.) and with a background in proofwriting could very well get through enough information to answer interview questions twice as fast or faster, so in about a week or less.
I don't doubt your claims about the amount of the work the two courses at MIT require. However, you're forgetting that for some of those 140 hours you're being lectured by the top professors in the area. You're unlikely to have a question that they can't answer. Other parts of those 140 hours are spent talking with some of the smartest students on the planet. Some more of those 140 hours are spent solving problems carefully designed to maximize understanding. If you can't figure something out, you have fellow students, TAs and professors to harass. Somebody studying alone at home doesn't have this environment.
And then you need to take into account the fact that if you're undergrad at MIT you're already smarter than 95% or so of the population. Basically, the takeaway here is that your 70/140 hour number applies to something like 0.1% of the population under the assumption that they're studying CLRS at home.
You need to see this in context. This is advice for CS undergrads looking for jobs. This advice is being given out on reddit. Anybody who needs this advice (and CS undergrads from MIT certainly don't) will not be able to work through CLRS in a week.
This coincidentally depresses the marketability (for a certain class of job) of older workers and demographics less likely to achieve a degree from a top N computer science program.
Certainly you could read between the lines and say that observably favoring e.g. Stanford 2012 CS majors effectively disadvantages some protected minorities (age, gender, race). By placing the emphasis on a particular credential rather than on demographics a hiring company gets a level of plausible deniability from such claims.
Disclaimer: I have an MSci in CS and I'm only 30, so I'm not too worried about the things implied above. Yet.
If those older workers and others are equally or more skilled than the younger ones implied by your question, smart companies will realize the discrepancy and hire them.
In addition, if older workers know that firms place a "high value on undergraduate-level CS theory," they should probably spend some time learning. . . undergraduate-level CS theory.
You can in fact see this in action in other areas—for example: http://www.economist.com/node/17311877 .
The invisible hand of self-interest only works if smarter contenders actually appear in the marketplace. If there is some invisible hand of stupidity (and groupthink) that affects all companies above a certain size, then we are hosed.
Why is it that all big organizations are almost universally dilbertesque? There must be some anti-nootropic effect that occurs above a certain threshold of organizational complexity.
http://www.ribbonfarm.com/2009/10/07/the-gervais-principle-o...
Personally, I find it terribly unlikely that any such filtering is intentional on any level.
- What little experience they have is effectively all relevant to the job and hence easier to justify paying for. If a neophyte can do 80% of a veteran's work for 50% of the pay, it's a tempting tradeoff. A software veteran's second decade of experience may not be worth the increased sticker price if you're asking them to perform low- and mid-level tasks.
- They are less likely to have personal entanglements (kids, family, medical).
- They are an easily appraised and substituted commodity: standard salary scales apply.
- They are less likely to know their market value and hence less likely to negotiate for increased compensation or time off.
The neophyte may be able to do 80% of the veteran's job, but that's the easily-replaceable 80%. If I'm hiring for a position that requires experience, I know that the last 20% is worth paying for. Someone is going to have to do that 20% and if it's not the new hire, then why are we hiring him?
Personal entanglements? I have never had any idea about the family status of anyone I've hired unless they were wearing a wedding ring. I don't need to know and I'm certainly not going to open the firm up to a lawsuit by asking. HR is the only one who will know, and HR does not get to veto what the software dev. interviewers say unless the candidate wants more $$ than the position offers. And even then, they'll come back to us and ask if we think he's worth it.
Compensation? Again, the interviewers don't care or know. And really does any company with half a brain care? If you're being hired, it's because we expect that you will make the company orders of magnitude more than we pay you. In that light, trying to push for the maximum salary in the pay band is really not a big deal. It's in the budget after all.
Sadly, not everyone shares your view. Many seem to forget about that last 20% and just focus on the 50% savings. I've seen it happen to more than one senior dev...
I'm far from an expert, but I have had to take classes in Employment Law and interviewing practices. This is not the kind of thing they would forget to mention!
Knowledge on these subjects is easy to pick up, taking you a few days of study at the most. Knowing this stuff doesn't mean you can program for shit (see: academic coding horror). Best to build a portfolio as dpritchett said, with a few "lessons I learned from experience when working on this project" anecdotes ready to go.
That's just personal experience though, and I competed in the ICPC during my university career so I never worry about the problem solving questions.