We are doing programming wrong. We all know it. Sure, if you sweat and scrub and shine and polish and pray to the gods of TDD you can get stuff done, but in the back of your mind you will always hear Zed Shaw's voice whispering "This is bullshit!". We cannot build the world on a foundation of bullshit.
There was a time when no-one learned to write. What was the point? Learning to write took decades of practice and was not useful for anything. If you did need to send a letter you could just get the village scribe to write it for you.
Today if you cannot write you cannot take part in modern society.
Like writing and mathematics, computers have the potential to make humanity more intelligent. Civilization advances by extending the number of important operations which we can perform without thinking about them. Computers are not a specialist tool for solving a particular problem, they are universal machines that can carry out any thought process you know how to express, leaving your brain free to concentrate on the problem at hand. The fact that programming is not useful to the average person today reflects only on our failure as a profession to create usable tools.
I'm joining Kodowa and we are going to put a dent in this mountain of bullshit.