I see Blum's advice as very misleading and a disservice to all concerned.

Here is my view (worked for me):

Note that the main goal is the Ph.D. A second goal is, if you wish, a start on capabilities in research.

Okay, for both, especially the first, there is a condition that is essentially both necessary and sufficient: PUBLISH.

Right: F'get about the 'dissertation' for now. Instead, just PUBLISH.

Why? At many of the best research universities, the official criterion for a Ph.D. dissertation is "an original contribution to knowledge worthy of publication". So, publish (did I mention that before?) and remove all doubt.

Note: Typically just publishing is easier than slogging through all the nonsense of dissertation proposal, research on a problem from a dissertation advisor, getting the dissertation approved by a committee, etc.

Now, what to publish?

Pick a problem and solve it. The usual criteria for publication are "new, correct, and significant".

Pick your own problem. Try hard to avoid a problem given by a prof.

How to solve it? First remember that in essentially all fields, the most admired research presents a mathematical solution. So, get one.

How to do that? Study appropriate mathematics. For the 'computing', mostly f'get about CS because for computing problems, compared with the math, it's next to junk.

How to pick a problem? To help meet the 'significant' part, pick a problem with some obvious practical importance. Typically find this problem off campus. E.g., maybe do something in server farm monitoring, performance, cost, response to load uncertainty, etc.

Broad solution direction: Find 'optimal' means for attacking the ubiquitous uncertainty.

How to say that your solution is significant? Get a solution that is provably 'optimal' in some sense. In particular, don't try to plow ground in some theoretical direction starting where all the profs broke their plows. Especially, f'get about P versus NP.

To get a math solution, start by studying, guess what, right, math.

Summary: Pick a practical problem that is clearly of importance. Use math to get 'new, correct, significant' solution. Publish the solution.

If one such paper is enough, fine. Else publish about three papers, likely on the same problem, that is, as one 'research stream', stack up the papers, put on a title page, put a staple in the UL corner, and submit it. Your profs have to admit that your work has been judged 'new, correct, and significant' and definitely is 'worthy of publication'.

For a better start on research, do the same thing but just do it a little deeper, especially in the math.

What math? Linear algebra -- through Halmos. Modern algebra -- pick something, maybe old Birkhoff and Mclane, Herstein, or Lang or something newer. Advanced calculus -- through Rudin. Measure theory and functional analysis -- the real half of Rudin's R&CA and Royden. Optimization -- linear programming, linear programming on networks (often get integer programming for free -- looks NP-complete but it's not), nonlinear programming (especially the Kuhn-Tucker conditions). Probability based on measure theory -- Breiman, Chung, Neveu, Loeve, Chow and Teicher. The above is a bit minimal; more could be from important up to really valuable.

Generally you are trying to find tools in math not yet well exploited for problems in computing. So, if find something relatively new in math, then almost certainly it has not yet been well exploited.

Under no circumstances take seriously anything in math done by any CS prof; in particular, totally flush 'machine learning, artificial intelligence, and data mining' -- good problems but total puke for work. Stay with math from names such as I listed: You'll be flying in luxury at Mach 3 at 40,000 feet while the CS profs are still slogging in mud and covered in puke.

Study some mathematical statistics -- hold your nose at how badly they do the math.

Good way to get tight bounds: Use the martingale inequality, fairly easy to apply and one of the strongest in math. See examples of Talagrand and Rhee. Yes, they got a lot of nice papers getting some tight bounds on, right, even NP-complete problems.

Generally the key is the math, and in the math, especially if go to seminars by the best people, can find 'themes' and 'directions' that can result in research 'paradigms' and lots of papers.

Then get on with making money!