We should all learn some programming

Programming is a world in itself. There is no common sense in computers, no emotion and no assumptions. Everything is analytical and logically derived. The things that you start to learn right from your first Hello World will change the way you think and make decisions in real life. Here are a few of them.
  1. There are zillions of assumptions, extrapolations that our brain makes each day. Some of these assumptions can be misleading and this habit of overlooking small things often keeps us short of our goals. This is not how programming works. When you write codes, you get an eye for details. A very intelligently written algorithm cannot be executed as a program if you miss a single semicolon. 
  2. Algorithm design is an inseparable part of programming. This develops our ability to see the whole picture. It challenges our imagination. Our thought process becomes more streamlined. 
  3. There are times when we feel that we did everything right and if still we do not get the desired result, then our stars are at fault. It is a luxury. The absolute rationality of programming process takes away this comfort. It helps us realize that most of the time it is simply us shedding our responsibilities. If we do not get the desired results, we must revisit our code. You can never be wronged by your stars. 
  4. Writing an efficient program helps us learn art of managing our limited resources. Every person on earth has one or more resources that limits his state- time, money, attention etc. The basic principle of reusing, reclaiming that we learn in programming can be utilized in life as well. Acknowledgement of the fact that there will always be scarcity of some things in life is the first step to efficiency. 
  5. Good programming habits go a long way in helping us be better organized. A wellDocumented and Commented code increases readability and re-usability of that module. The same lesson is good with life and career. 
  6. Adaptability. When we solve a problem with a script, we have to go over all the the possible input that a nasty user, who is bent on crashing your program, might enter. We test the solution with various inputs and eventually build a solid fool proof program that will run everywhere giving the desired result. This teaches us to analyze ourselves, our plans and schemes, dry run them, before we let them out in the harsh and unpredictable real world. 
  7. We learn to reuse the result of our efforts. Modules of a program can be ported to do various tasks which we did not even imagine while designing that module. We learn to tackle the problems at multiple levels rather than nose diving into it and frustrating ourselves. 
There is so much we take for granted in our lives. Oxygen, water, food, warmth, love. We simply cannot ignore the fundamentals in programming. If we forget to put that semicolon or make the slightest syntax mistake, it kills our program.

In making assumptions, taking things for granted and blaming it on our fates, we keep lying to ourselves. Well, a programming language is an ingenious language in which you can not lie.