We are currently in the first evolution of computer programming. But we are seeing the beginnings of the second. The first evolution was based on humans learning to program. Many industries have been revolutionized by technology, many more than once. But there are still many to go. Part of the problem is that people in technology are not as heterogeneous as society and that leaves gaps in knowledge. Over time those gaps grow smaller but it can take awhile. Being able to program is powerful because it allows you to build solutions for yourself. Every industry has problems which can be solved or improved by software.
When I was coaching/playing for the MIT Graduate Men’s soccer team I got to meet a lot of really bright people who had the opportunity to travel, study and innovate in important industries. Many of the post grad students, especially in the science field, had learned to program out of necessity. Their main response was similar to, “i am so much more productive and/or thorough with my work”. Most of these guys had learned it very late in their academic career, but I realized that this type of training will make it into many more career tracks. Steve Jobs once said in an interview that he believed everyone should learn to program. He believed that programming should be a required skill to learn in school.
Everyone will not become a programmer. But I believe many more people will have the ability and access to program. There are many examples today and it is trending upward. There are high level language frameworks being created to allow non-programmers to program systems. Services like CodeSchool are enjoying a big bump in traffic from people wanting to learn to program. It should become a core class in high schools if it hasn’t begun already. Programming is a versatile tool. It is not like a mathematical formula that you learn and apply in certain situations. It is not a war that you learn about and recount later.
Programming is a tool to solve problems.
Don’t get me wrong. Programming well is hard. Especially when you are trying to architect large systems. But in many circumstances that is not needed. Small programs for repetitive tasks or calculations don’t need much design. But they can be extremely useful. Once people in various industries start to learn programming early in their careers, that is when we will see another step function in change in those industries. The best problems to solve are the ones you have yourself.
Technology has always been about revolutionizing industries. Many industries come later than others and some have been changed more than once already. Once we can arm everyone with the proper tools to solve their own problems, is when we will see another large return on investment into programming.