I totally agree
I totally agree with everything said here. Unfortunately IT within schools is usually focused on using computers only as a glorified calculator or typewriter, so even though computers are used a lot more widely than they used to be they are also used in a lot more narrow ways. When I was at school in the 90s we were all taught LOGO which is a great beginning into computer programming and the logic needed for understanding algorithms.
By the time I came to my GCSE & A levels I personally had dropped IT as an official subject, as it was by then more about using computers than really understanding them. At university I studied electrical engineering which did have a fair amount of programming, as well as requiring understanding of the underlying principles of computers, namely how logic works.
I feel your pain and frustration in finding people to fill IT roles. It can be very hard to find someone to fit an open position, regardless of the level of salary being offered. Formal education is quite a poor indicator of suitability as I find many great candidates have never studied IT/CS formally, but instead have done engineering or mathematical degrees. Equally a lot of those with CS degrees just don't understand the subject well enough and have only learned very narrow skills, such as programming in a particular language (and then generally only well enough to pass coursework assignments) rather than having the much wider understanding and skills which are a lot more useful.
I would much rather employ a "general" programmer who has sufficient breadth of understanding & drive, who can learn the specifics of the language/environment I'm needing than someone who only knows Java or PHP and would be totally lost if you asked them to look at something written in a different language.