Cookie Notice

As far as I know, and as far as I remember, nothing in this page does anything with Cookies.

2012/05/15

Please Code Responsibly.

Jeff Atwood of Coding Horror and Stack Exchange has offended some people by saying "Please Don't Learn To Code". My vector on this is that he's wrong, or at least pointing at the wrong metaphor.
Look, I love programming. I also believe programming is important … in the right context, for some people. But so are a lot of skills. I would no more urge everyone to learn programming than I would urge everyone to learn plumbing. That'd be ridiculous, right?
Yeah, it would be ridiculous. It would be downright silly. There certainly isn't any market for people gearing up and taking care of their plumbing themselves.


Clearly, if you are not a plumber, there are jobs too big for you, or too complex. But if rain, a failed sump pump and the previous owner not installing a check valve on the sump-to-septic-tank pipe have caused a flood of water and some sewage to flood your basement, the cost of replacing and repairing stuff is high enough, and with a little knowledge (which my friend Mike had), sump pumps and check valves are easy enough to install, leaving your money free to purchase bleach and a new mop and to hire a dumpster to hold all the ruined things.

So, it would not be ridiculous to learn something about plumbing. If you wanted to do something more advanced, you'd want to go to a professional, but certainly it is fine for me to learn enough to switch out shower heads and faucets and to fix the disaster in my basement, right?

I think the same thing about computing, although it's more positive than the basement-disaster story. Someone may want to collect and graph their monthly bills to determine if it's time to cut the cord and watch only Hulu and Netflix or something, or one of many other things, or connect things so one email texts all their children and tells them to come to dinner. Or something else. There are wonderful tools to make these things easier for people, like Yahoo! Pipes and iftt, but even then, it helps to have some sense of data structures and algorithms. Not much, but something. Just as there's room between real hackers who write low-level things and people like Jeff and me who write things that sit above them that people use, there's room between us and the people at home who want to connect a new sprayer to the Internet pipe.

Are they going to be professional programmers? Probably not. And are there dangers here? Yes, there are, like there was a danger of a previous owner to not install a check valve, which allowed the septic tank to drain into my basement. But there are worse dangers.