If I see another commercial, read another article, or hear another politician or tech cheerleader lecture me about the importance of learning to code I think I may commit genocide. Enough already please, I get it, learning to code is awesome, the greatest thing ever, the A number one bestest coolest most important thing since brushing and flossing your teeth. I also realize that I will be a giant loser forever, with no job prospects, no girlfriend, no friends at all, and no future if I do not learn to code.
If only more people knew how to code we might finally end the scourge of lack of access to porn, insufficient outlets for shallow social interactions, and almost zero opportunities to meet random persons of the opposite sex for dating and/or casual sexual encounters. The lack of skilled coders is the sole reason we currently have only around 5000 different weather and weather related apps in the Apple app store. How will I know if I should put my umbrella by the door the night before I have to go to work? Who will tell me the average high and low temperatures for that particular day in that particular geographic location if not the weather app? Will you tell me? Fuck no you won’t for you are a douche who doesn’t even know how to code.
Obviously I am being a bit of a douche myself and highlighting only the negative aspects of our modern compu-tech era. Of course coding is a critically important skill and modern computer software has done amazing things for the betterment of society as a whole in addition to all that horrible shit. I might even go so far as to say the good outweighs the bad, if I am in a generous mood. That said, the emphasis on coding and its attendant career paths has a dark side too. For every talented, logically minded, technically competent, intelligent student that studies coding one potential scientist is lost. Moreover, the skill set that coding teaches, while valuable for the person learning it in terms of their career activities, I contend is much less valuable overall then training in science or even engineering would be for that person’s development as a whole person. Specifically I worry that coding, by it’s very nature, neglects the absolutely most important skill any human being needs to survive and thrive in the world today, critical thinking.
In contrast to coding an education in science is built on a foundation of critical thinking. The scientific method itself can be read as an exercise in critical thinking applied to a specific problem. Unfortunately, unlike science, coding has no inherent critical thinking aspect built in. I can already here the moans and the objections. You are crazy Dan, coding is all about critical thinking, it is essentially a series of logic problems. Logic is a branch of philosophy and philosophy is a discipline of critical thinking. While I do agree that logic is a branch of philosophy the particular tree on which that branch grows is the one called analytic philosophy. Analytic philosophy as traditionally described includes logic as a core sub discipline and its’ logic is a mathematical logic of hard and fast rules with yes and no answers, right and wrong decisions, true or false statements. In the logic of analytic philosophy truth or falsity is really a mathematical construct and, while analogous to how we normally think of truth and falsehood, it has key differences. For example, the concept of telling a lie is not one about which that logic has anything to say. Critical thinking is simply not needed for there is nothing to criticize. The answer, the equation, the formula is either correct or it is not. It is either logically consistent or it is not. Coding uses this form of logic, the form of equations, statistics, and rules which are built up into algorithms which execute programs. If they are coded correctly the program runs to a successful completion and the “correct” output is achieved, if not it doesn’t.
Life, unlike coding, simply does not work that way. A scientific education trains one how to cope with life’s many obstacles and uncertainties, how to tell the truth from a lie, and how to argue a position but still accept that modifications might be needed if new information is learned. In contrast a coding education teaches one only that if your first try does not succeed your math must be wrong. Their is no uncertainty only incorrect or correct, telling a truth from a lie is of no value since code never lies, it either works or it doesn’t. The only new information of any value is additional information pertaining to the truth condition of the various statements of logic that make up the code.
Finally, I could make a similar series of arguments around the concept of problem solving. Troubleshooting faulty code, while it may look like a form of problem solving, is really no such thing. Science, on the other hand, requires that one become the ultimate problem solver for the problems of science are the problems of the universe. Code has nothing to say about those problems and if it did would have no way of commenting on them.