they are generic and poor filters. for example do you read person x. If person X isn't a household name (e.g. Bill Gates) Then it says nothing about them other than none ever introduced them to that person. I'm willing to bet there are a significant number of good C++ programmers that don't/can't care or know who Bjarne Stroustrup is. I had to look up the spelling of his name (although I don't consider myself a good c++ programmer).
The ability to write blogs is irrelevant here too as what we most likely care about is the ability to program. Hence, the programming test.
Take the group of programmers who have written more than 30 blog posts about programming. X% of them are good hires, and 100-X% are bad hires.
Now take the group of programmers who have written less than 30 blog posts about programming. Y% of them are good hires, and 100-Y% are bad hires.
Is X > Y, or X == Y, or X < Y?
That is the issue.
And that is the way degrees are used (when used rationally). The claim with degrees is that X is more than Y, not that most good programmers have degrees or anything else. That may be so. Then someone defended using degrees by saying there is a lack of alternative tests that are sufficiently cheap. That's not true. There are lots of cheap tests, and I have suggested 2 for which I believe X>Y is likely, and which, if studied, might turn out to have a higher X than the degree test.
to a degree I did. Maybe not to the degree you desired.
My point was is that even though it filters out many of the worst programmers it would also filter out all of the really great programmers. I'd rather have my search take longer and cost more to have those great programmers on my team than end up with just good programmers.
You still haven't told us who Ayn Rand is.