Why is programming important?
Programming is one of greatest skills everybody could be learn, skill of dividing problem to smaller problems and solving each of them in few simple steps, skill of not trying to be using your mental power to solve a single problem but to solve a problem in general form, and skill of connecting with abstract mathematical logic and language. Our living style are changing after development of internet and access to computers as PC, laptop, smart phones, etc. All of this devices from supercomputers or severs or a single smart phone are based on same architecture and same logic, hardware which is running a program. So what make each of them responsible for certain task additional than their hardware (like any other machine) is their software, which only material for creating them is not any physical substance but it is idea and thinking right about its implementation.
All of us having big goals and dreams which is made by our desires, experiences and values. Some of them are simple as having an ice cream and some of them are big as traveling to Mars and discovering new worlds. What is important to reaching to each of these goals are we have to learn solve the problem. Usually person disappoints their goals because they see them unreachable for them. Because you didn't learn in eating a big cake you should divide it to peaces and eating each piece with bites. First thing programming will teach the people is each big program is made of several peaces and each peace could be solved by few steps. I believe the explosive development of computer science and information system is because computer science experts and programmers adapt this idea not as only working style but as a culture. So every new brilliant simple idea like search engine, social network, online marketing, etc., makes very successful result for innovator and society. One of first benefit of learning programming is finding ability of thinking systematically simple to solving difficult problems.
One of other skills which programming will develop is ability of thinking ones and trying it for several time. In order to righting a successful and useful program you should begin to understand the nature of problem and what could be different uses and situations around it. Generally in computer programming, it is expected to the program should be solve all of similar problems and it is the difference between certain calculation and a program. So this idea of finding a solution for every similar problem and solving it once is next thing could be change personal way of thinking.
Another skill programming have positive effect on it is mathematical thinking. Mathematical thinking is power of mind to map real world problems or mental dreams to mathematical format which is not dependent of regional culture or believe system. It is a common language could be used to communicate over shared problems. If a people learn to impress their idea in mathematical language their is no ambiguity in their word. One of easiest form of mathematical thinking is computational modeling of ideas, which is ability of programming.
Finally, in my perspective learning programming like learning reading and writing is essential for anybody in new era of information.