Programming is one of the best things you can be doing at this time. Both money- and self-development-wise. Have you ever wondered what implications on an everyday life this has — or may have? It’s quite fascinating.
PROBLEM-SOLVING & DECISION-MAKING
An Endurance in problem-solving: Code issues will never (ever!) fix themselves and simply need to be tracked down and dealt with. This is a great way of creating a habit to give up hoping that a particular problem in your daily life will just disappear, and face the fact, that you will have to resolve it. Sure, some problems go away, but don’t count on each and every one of the to do so.
Problem perception: Your way of seeing most kinds of problems changes, as with programming experience you learn that no problem is as complex as it seems, once you get your teeth into it. This also promotes improvement in situations analysis.
Anticipating mistakes: Whether you’re a beginner or an expert programmer, you are fully aware and prepared for making mistakes. In a job as precise as this, it is simply unavoidable. You quickly learn to anticipate yours and others’ future mistakes. This more often than not extends to being ready for the unexpected. Great attitude to have, when you think about it.
Weighing facts: When faced with a difficult choice to make, programmers tend to use a graphic aid of a simple table with pros and cons. Often, doing this helps to eliminate the emotional factors and speed the process up.
Logic: Because of the way computers and code operate (strict causality), there is no way to remove logic from most of a programmer’s days work. Therefore, chances are, they will take this approach to home and play environments too, which is great.
Abstract: Thanks to spending x hours of the day in a non-existing plane of programming code, most programmers are able to transpose this into viewing the reality. You may see this as wrong, but think about it. For as long as visualizing the everyday life, people, communication, problems, work etc. ad something that can be understood and managed in a simple way, helps them to function and make a good job of it — where is the problem?
Development: Since the speed of change in computer sciences is so great, one thing each and every programmer has to take for granted is the value of an “always ready to learn more” approach. It is not only a necessity here, it’s the best opportunity to grow — and a fantastic approach to all things in life.
Processes optimization: In dealing with processes and charts all day long see software development tools, one gets used to thinking in shortening wait time, maximizing output and waste reduction terms. Programmers optimize all the things they do, try to get the most out of all endeavours and have been known to balance their energy levels even. Working strict processes — one gets to see and better them in all aspects of a day (like checking for numbers of items in trolleys queued to the checkout, rather than seeing the trolley number alone).
Maintaining order: Just as code will not work when certain strings are missing or out of place, neither will a real life. Some of the smartest programmers have this figured out ;)
Seeing is believing: So many of us think we know something for sure and will stand by this. One way to recognize a programmer is by observing that when they say they know something, they are making sure this is true at the same time. Learning from plentiful mistakes in the meticulous work they do, it’s a given that in order to know something to be true, one must go to the source and ensure it.
Less is more: With the way a piece of code can get complicated, best lesson is that the simpler a path or way of getting somewhere, the better the result.
Daily commentary: When writing code, it’s not so efficient to leave it comment-less — you do know what things are today, but how about in 2 years? The same can be said for what you do in everyday life. Not having to remember everything you do and say, but keeping it in a calendar or log of sorts can free up a lot of room in your mind for more interesting things.
PERCEPTION OF PEOPLE & THINGS
Priorities: Sitting in the realm of code, one learns quickly what bits are important and which are not. Great skill to take into the real life.
Confusion: Just as a misplaced piece of code makes no sense and brings confusion, the same happens in life. Having to face confusion indicates that there is an underlying issue that needs addressing. Sounds obvious, but being aware of this is not as common as one might think. Programmers have a way of knowing this is how it works, that in order to understand all things confusing, they just need to dig deep enough. Sometimes this benefits them with a skill to look at things more deeply than others. Very beneficial at times!
Patience: Working with inanimate objects always benefits with learning to stay calm and composed in face of a problem. No amount of madness and rage is going to help resolve a bug — or a real-life problem, for that matter.
Fist posted on Shore Labs Blog.