Sunday, September 6, 2015

The Future of Coding Knowledge

"In the near future, knowing a programming language will be just as important, if not more so, than knowing a foreign language"

I've heard variations of this phrase from at least 5 people in the past month, all of whom I consider to be quite tech savvy. However, as I look at the state of the tech world today, I only see us moving farther and farther away from this ideal. It's easy to see why this idea looks true: Computers are getting more and more integrated into our everyday lives, and everything from watches to TVs to refrigerators are getting computer integrated into them, so clearly people would need to know how to code to interact with all of these devices. But the reality is that modern software is designed to be so user-friendly that the user has no reason to ever look under the hood, much less modify it. Everything is wrapped nicely in a GUI so that the user doesn't have to think about what's actually going on in the devices that they use. 

Think about it: when's the last time you've had to write even a single line of code to get a device to work properly, not just because you wanted to, but actually HAD to? For most people, the answer is either never or not in the past decade. Software nowadays is written to appeal to as many people as possible, so it naturally has to become easier to use over time to appeal to the lowest common denominator. And since usage of the software no longer requires the ability to modify it, companies can safely license their software to disallow reverse engineering, modification, or redistribution, thus allowing them to charge exorbitant fees for what used to be simple maintenance tasks. In short, as computer usage goes up, the proportion of users who actually know how they work goes down, and thus software, and the industry around it, has to be designed to make up for that deficit. 

The exact same thing happened to the automobile throughout it's evolution. During the early days of the automobile, if you owned a car, you needed to know how it worked and how to fix it when  it broke. The knowledge required to do so was fairly specialized, so if you couldn't fix your own car then getting someone else to do it would be a long, expensive procedure. Even driving a car used to require pretty specialized knowledge of how it works, including when to shift gears, how to properly apply the brakes, and how to manually steer the car. However, as cars got more popular and more necessary for day to day life, they became simpler for the average user. Systems such as automatic transmission, ABS, and power steering abstracted away the subtleties of how the car works in favor of making it easier to drive. Auto shops popped up in every city, so driving a car no longer requires knowing how to fix it, so only the professionals and some serious hobbyists can actually do it. And, to put the icing on the cake, most high-end car manufacturers will void the warranty if anyone other than a Registered Company Technician™ attempts to fix it.

I predict that the future of programming knowledge will be the same as the future of every other technical skill: it will be limited to a select few technicians, who everyone else will turn to when their mysterious black boxes stop working.

No comments:

Post a Comment