Suppose then there are really two markets here: one for "good" programmers and one for "mediocre" ones. My rejoinder still holds if it is really the case that they can only do with good programmers and not mediocre ones (doubtful). And since it is presumably possible to transition from non-programmer to mediocre to good with effort, the fact that "not enough" people are doing so still implies the price is not high enough.
I am mainly taking umbrage at your use of "shortage". The preferences of the market participants themselves are certainly not an external force. I think we should not concede to them that there is a shortage when there is not because then they go on to use that as justification for all kinds of counterproductive legislative proposals.
BTW, more than half of Keynes' GTEIM is about employment. The original question impelling modern economics is "how do we get to full employment? and what does that mean anyway"? Of course the model is an approximation. But don't use "economics" to justify an argument and then turn around and say economics doesn't model the real world.